Benutzer:Pberndt/Algorithmensammlung Harvester/Quellcode
Erscheinungsbild
#!/usr/bin/perl
use LWP::UserAgent;
sub get {
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/8.0");
$req = HTTP::Request->new(GET => $_[0]);
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if ($res->is_success) {
return $res->decoded_content;
}
else {
print ("Error: " . $res->status_line . "\n");
die;
}
}
my $seitenliste = get("http://de.wikibooks.org/w/index.php?title=Spezial%3APr%C3%A4fixindex&prefix=Algorithmensammlung%3A");
my @seiten;
while($seitenliste =~ m#/wiki/Algorithmensammlung:[^:"]+:[^"]+#g) {
push @seiten, $&;
}
my %progs;
my %implement;
for $seite (@seiten) {
$implement{$seite} = {};
my $content = get("http://de.wikibooks.org" . $seite);
while($content =~ m#mw-headline"[^>]+>(.+?)</span></h3>#g) {
my $lang = $1;
$lang =~ s/<[^>]+>//g;
chomp $lang;
$implement{$seite}{$lang} = 1;
$progs{$lang} = 1;
}
}
print <<EOF
{| class="wikitable"
! Seite
EOF
;
print "! $_\n" for (keys %progs);
for $seite (keys %implement) {
$link = $seite;
$link =~ s#/wiki/##;
$seite =~ m/:_([^:]+)$/;
print "|-\n| [[$link|$1]]\n";
for $prog (keys %progs) {
if ($implement{$seite}{$prog}) {
print "|X\n";
}
else {
print "|\n";
}
}
}
print "|}\n";
print "\n";
print "Aktualisiert: ";
system("date");
print "\nZum Aktualisieren siehe [[Benutzer:Pberndt/Algorithmensammlung_Harvester/Quellcode]]";