Потребител:Stanislav/Stat/скрипт

от Уикипедия, свободната енциклопедия

[редактиране] a.pl

<nowiki>
use LWP;
                                                                                                                                                              
my %ns = (
        'Медия:' => 0,
        'Специални:' => 0,
        'Беседа:' => 0,
        'Потребител:' => 0,
        'Потребител беседа:' => 0,
        'Уикипедия:' => 0,
        'Уикипедия беседа:' => 0,
        'Картинка:' => 0,
        'Картинка беседа:' => 0,
        'МедияУики:' => 0,
        'МедияУики беседа:' => 0,
        'Шаблон:' => 0,
        'Шаблон беседа:' => 0,
        'Помощ:' => 0,
        'Помощ беседа:' => 0,
        'Категория:' => 0,
        'Категория беседа:' => 0
);
my $mainns = 0;
my $total = 0;
                                                                                                                                                              
                                                                                                                                                              
my $wiki = "http://bg.wikipedia.org/w/index.php";
my $wprefx = "$wiki?title=Special:Contributions&limit=3600&target=";
my $url = $wprefx . @ARGV[0];
                                                                                                                                                              
my $browser = LWP::UserAgent->new;
my $response = $browser->get($url, 'User-Agent' => 'Mozilla/4.76 [en] (Win98; U)');
die "Unable to get $url -- ", $response->status_line unless $response->is_success;
die "Wrong content type: ", $response->content_type unless $response->content_type eq 'text/html';
my $content = $response->content;
                                                                                                                                                              
WHILE: while ($content =~ /<li>[0-9].*?title="([^"]*)"/gix) {
        print "$1\n";
        ++$total;
        foreach $namespace (keys %ns) {
                if ($1 =~ /^$namespace/) {
                        ++$ns{$namespace};
                        next WHILE;
                }
        }
        ++$mainns;
}
foreach $namespace (keys %ns) {
        print "$namespace " . $ns{$namespace} . "\n";
}
print ": $mainns\nTOTAL: $total\n";

</nowiki>