Fra Wikipedia, den frie encyklopædi
#!/usr/local/bin/perl -w
use strict;
use MediaWiki::Bot;
use Date::Calc qw(:all);
my $user = 'Hebbot';
my $pass = '********';
# create and initialize editor
my $WPDa = MediaWiki::Bot->new();
$WPDa->set_wiki({
protocol => 'http',
host => 'da.wikipedia.org',
path => 'w',
});
$WPDa->login({
username => $user,
password => $pass,
});
# action!
my @infiles;
my $final;
my @artikler;
my @kategori;
my @brugere;
my @filer;
my @wikipedia;
my @skabelon;
my @diskussion;
my $countartikler = 0;
my $countfiles = 0;
my $countbrugere = 0;
my $countfiler = 0;
my $countwikipedia = 0;
my $countskabelon = 0;
my $countdiskussion = 0;
my $countkategori = 0;
my $headtext = $WPDa->get_text("Bruger:Hebbot/Slet/Setting:Header");
sub getfilesa($) {
my @catx = $WPDa->get_pages_in_category(shift);
foreach my $catf (@catx) {
if (index($catf, 'Kategori') > -1) {
if ($catf ne 'Kategori:Kategorisletningsforslag') {
getfilesb($catf);
}
} else {
push @infiles, $catf;
}
}
}
sub getfilesb($) {
my @catx = $WPDa->get_pages_in_category(shift);
foreach my $catf (@catx) {
if (index($catf, 'Kategori') > -1) {
if ($catf ne 'Kategori:Kategorisletningsforslag') {
getfilesa($catf);
}
} else {
push @infiles, $catf;
}
}
}
sub getsletcat($) {
my @catx = $WPDa->get_pages_in_category(shift);
foreach my $catf (@catx) {
push @infiles, $catf;
}
}
getfilesa("Kategori:Sletningsforslag");
getsletcat("Kategori:Kategorisletningsforslag");
@infiles = sort @infiles;
$final .= qq{==Sletningsmarkerede emner==
$headtext
};
foreach my $exitfile (@infiles) {
if (index($exitfile, 'Bruger') == "0") {
if (@brugere == 0) {
push @brugere, $exitfile;
$countbrugere++;
} elsif ($exitfile ne $brugere[-1]) {
push @brugere, $exitfile;
$countbrugere++;
}
} elsif (index($exitfile, 'Kategori') == "0") {
if (@wikipedia == 0) {
push @kategori, $exitfile;
$countkategori++;
} elsif ($exitfile ne $kategori[-1]) {
push @kategori, $exitfile;
$countkategori++;
}
} elsif (index($exitfile, 'Wikipedia') == "0") {
if ((index($exitfile, 'Skabeloner/Generelle') == -1) && (index($exitfile, 'Skabeloner/Ophavsret og kilder') == -1) && (index($exitfile, 'Skabeloner/S¯stersider') == -1) && (index($exitfile, 'Wikipedia:Sletningsforslag') == -1)) {
if (@wikipedia == 0) {
push @wikipedia, $exitfile;
$countwikipedia++;
} elsif ($exitfile ne $wikipedia[-1]) {
push @wikipedia, $exitfile;
$countwikipedia++;
}
}
} elsif (index($exitfile, 'Skabelon') == "0") {
if (index($exitfile, 'NowCommons') == -1) {
if (@skabelon == 0) {
push @skabelon, $exitfile;
$countskabelon++;
} elsif ($exitfile ne $skabelon[-1]) {
push @skabelon, $exitfile;
$countskabelon++;
}
}
} elsif (index($exitfile, 'Diskussion') == "0") {
if (@diskussion == 0) {
push @diskussion, $exitfile;
$countdiskussion++;
} elsif ($exitfile ne $diskussion[-1]) {
push @diskussion, $exitfile;
$countdiskussion++;
}
} elsif (index($exitfile, 'Brugerdiskussion') == "0") {
if (@diskussion == 0) {
push @diskussion, $exitfile;
$countdiskussion++;
} elsif ($exitfile ne $diskussion[-1]) {
push @diskussion, $exitfile;
$countdiskussion++;
}
} elsif (index($exitfile, 'Fil') == "0") {
if (@filer == 0) {
push @filer, $exitfile;
$countfiler++;
} elsif ($exitfile ne $filer[-1]) {
push @filer, $exitfile;
$countfiler++;
}
} else {
if (@artikler == 0) {
push @artikler, $exitfile;
$countartikler++;
} elsif ($exitfile ne $artikler[-1]) {
push @artikler, $exitfile;
$countartikler++;
}
}
}
$final .= "===Oversigt over sletningsmarkerede artikler ($countartikler)===\n\n";
foreach my $exitfile (@artikler) {
$final .= "# [[$exitfile]] ([[Wikipedia:Sletningsforslag/$exitfile|sletningsforslag]])\n";
}
$final .= "\n\n===Oversigt over sletningsmarkerede kategorier ($countkategori)===\n\n";
foreach my $exitfile (@kategori) {
$final .= "# [[:$exitfile|$exitfile]] ([[Wikipedia:Sletningsforslag/$exitfile|sletningsforslag]])\n";
}
$final .= "\n\n===Oversigt over sletningsmarkerede skabeloner ($countskabelon)===\n\n";
foreach my $exitfile (@skabelon) {
$final .= "# [[:$exitfile|$exitfile]] ([[Wikipedia:Sletningsforslag/$exitfile|sletningsforslag]])\n";
}
$final .= "\n\n===Oversigt over sletningsmarkerede filer ($countfiler)===\n\n";
foreach my $exitfile (@filer) {
$final .= "# [[:$exitfile|$exitfile]] ([[Wikipedia:Sletningsforslag/$exitfile|sletningsforslag]])\n";
}
$final .= "\n\n===Oversigt over sletningsmarkerede emner i Wikipedia-navnerummet ($countwikipedia)===\n\n";
foreach my $exitfile (@wikipedia) {
$final .= "# [[$exitfile]] ([[Wikipedia:Sletningsforslag/$exitfile|sletningsforslag]])\n";
}
$final .= "\n\n===Oversigt over sletningsmarkerede emner i brugeromrÂderne ($countbrugere)===\n\n";
foreach my $exitfile (@brugere) {
$final .= "# [[$exitfile]] ([[Wikipedia:Sletningsforslag/$exitfile|sletningsforslag]])\n";
}
$final .= "\n\n===Oversigt over sletningsmarkerede diskussionssider ($countdiskussion)===\n\n";
foreach my $exitfile (@diskussion) {
$final .= "# [[$exitfile]] ([[Wikipedia:Sletningsforslag/$exitfile|sletningsforslag]])\n";
}
# print $final;
my $counttotal = $countartikler+$countskabelon+$countfiler+$countwikipedia+$countbrugere+$countdiskussion;
$WPDa->edit({
page => "Bruger:Hebbot/Slet",
text => $final,
summary => "Opdatering af oversigt over ".$counttotal." sletningsmarkerede emner (".$countartikler."-".$countkategori."-".$countskabelon."-".$countfiler."-".$countwikipedia."-".$countbrugere."-".$countdiskussion.")",
});