Wikiprojekt:Sprzątanie kodu/post

Z Wikipedii, wolnej encyklopedii

Początek oryginalnego kodu:

sub post
{
    my ($bot,$form) = @_;

Wstawiany nowy kod:

    $text = $form->value("wpTextbox1");
    $summary = $form->value("wpSummary");

    $text =~ s/\[\[\s*(:?)\s*[Ii]mage\s*:\s*/\[\[$1Grafika:/g;
    $text =~ s/\[\[\s*(:?)\s*[Gg]rafika\s*:\s*/\[\[$1Grafika:/g;
    $text =~ s/\[\[\s*(:?)\s*[Cc]ategory\s*:\s*/\[\[$1Kategoria:/g;
    $text =~ s/\[\[\s*(:?)\s*[Kk]ategoria\s*:\s*/\[\[$1Kategoria:/g;
    $text =~ s/\[\[\s*:?\s*[Tt]emplate\s*:\s*/\[\[Szablon:/g;
    $text =~ s/\[\[\s*:?\s*[Ss]zablon\s*:\s*/\[\[Szablon:/g;
    $text =~ s/\[\[\s*:?\s*[Ss]pecial\s*:\s*/\[\[Specjalna:/g;
    $text =~ s/\[\[\s*:?\s*[Ss]pecjalna\s*:\s*/\[\[Specjalna:/g;

    $text =~ s/\[\[\s*:?\s*[Dd]yskusja([ _][a-z]*)\s*:\s*/\[\[Dyskusja$1:/g;

    $text =~ s/\{\{\s*msg\s*:\s*/\{\{/g;
    $text =~ s/\{\{\s*[Ss]zablon\s*:\s*/\{\{/g;

    $text =~ s/\s*\n\s*\n'''?\s*(Zobacz|Patrz) (też|także):?\s*'''?\s*\n?/\n\n== Zobacz też ==\n/;
    $text =~ s/\s*\n\s*\n(===?)\s*(Zobacz|Patrz) (też|także):?\s*===?\s*\n/\n\n$1 Zobacz też $1\n/;

    $text =~ s/\s*\n\s*\n'''?\s*(Linki [Zz]ewnętrzne|Łącza|Linki|Link [Zz]ewnętrzny|Łącza [Zz]ewnętrzne|Zewnętrzne [Ll]inki):?\s*'''?\s*\n?/\n\n== Linki zewnętrzne ==\n/g;
    $text =~ s/\s*\n\s*\n(===?)\s*(Linki [Zz]ewnętrzne|Łącza|Linki|Link [Zz]ewnętrzny|Łącza [Zz]ewnętrzne|Zewnętrzne [Ll]inki):?\s*===?\s*\n/\n\n$1 Linki zewnętrzne $1\n/g;

    $text =~ s/([0-9]) (%|‰|°)/$1$2/g;

    $text =~ s/\[\[\s*:\s*pl\s*:\s*/\[\[/g;
    $text =~ s/\[\[\s*pl\s*:\s*[^\]]*\]\]\s*\n?//g;

    $text =~ s/(\[\[Grafika:[^\]]*)\.\]\]/$1\]\]/g;

# tu jest problem z linkami typu [[WARS S.A.]]
#    $text =~ s/\.\]\]\./\]\]\./g;
#    $text =~ s/\.\]\]/\]\]\./g;

    $summary .= " + [[WP:SK]]";

    $form->value("wpTextbox1", $text);
    $form->value("wpSummary", $summary);

Poniżej ciąg dalszy oryginalnego kodu:

    my $req = $form->click("wpSave");
    # 5 attempts
    my @SLEEP = (0, 1, 5, 30);
    for my $n(0..4) {
        my $res = $bot->request($req);
        last if($res->is_success);
        # It's almost as good
        last if($res->message eq "Moved Temporarily");
        print STDERR "Can't post: ", $res->message, "\n";
        # Sleep some time
        unless($n == 4) {
            print "(retrying)\n";
            sleep $SLEEP[$n];
        }
    }
}