User:Polbot/source/Use Polbot 2.pl

From Wikipedia, the free encyclopedia

use strict;
use Q::Polbot;
use Perlwikipedia;

my $soonest_next_op = time;

my $pw=Perlwikipedia->new();
#$pw->{debug} = 1;
$pw->{mech}->agent('Bot/WP/EN/Quadell/polbot');

print "\nStarting polbot, logging in.\n" ;
my $login_status=$pw->login('bot name','bot password');
die "I can't log in." unless ($login_status == 0);

# Get articles that use the wrong template
my @bios = $pw->what_transcludes_here("Template:Bioguide");
print "There are " . scalar(@bios) . " articles using {{bioguide}}.\n\n";

my $i = 0;

foreach my $article_name (sort @bios) {
        my $URL = Polbot::Get_URL_from_name($article_name);
        #print $URL;
        if ($URL =~ m/^http.*=(.......)$/) {
                my $code = $1;
                my $wiki = $pw->get_text($article_name);
                
                $wiki =~ s/(\*\s*)?\{\{bioguide\}\}/{{CongBio|$code}}/i;
                $wiki = Polbot::fix_dates($wiki);
                $wiki = Polbot::replace_unlinked_tokens($wiki);
                
                $|=1;
                print "Waiting " . ($soonest_next_op - time) . " secs... ";
                $|=1;
                while (time < $soonest_next_op) {};                          
                $soonest_next_op = time + 13;

                print "Fixing $article_name\n";
                $pw->edit($article_name, $wiki, "Replacing {{bioguide}} with {{CongBio|$code}}, plus misc fixes");

        } else {
                print "Skipping $article_name\n";
        }
}