User:AnomieBOT/source/tasks/OnThisDayTagger.pm: Difference between revisions

Content deleted Content added
AnomieBOT (talk | contribs)
Updating published sources: OnThisDayTagger: * Sorting bugfix.
AnomieBOT (talk | contribs)
Updating published sources: OnThisDayTagger: * Don't make null edits. * Don't duplicate dates in the parameters.
Line 1:
{{ombox|type=notice|text= ApprovalPartially requestedapproved<br />[[Wikipedia:Bots/Requests for approval/AnomieBOT 30]]}}
<source lang="perl">
package tasks::OnThisDayTagger;
Line 31:
use vars qw/@ISA/;
@ISA=qw/AnomieBOT::Task/;
 
my '(?:@months=qw/January| February| March| April| May| June| July| August| September| October| November|December) \d{1,2}',December/;
my $monthre="(?:".join("|",@months).")";
 
my $skip_links_re=join('|',
"$monthre \\d{1,2}",
'(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}',
'\d{4}',
'List of historical anniversaries',
Line 60 ⟶ 63:
 
=for info
ApprovalPartially requestedapproved<br />[[Wikipedia:Bots/Requests for approval/AnomieBOT 30]]
 
=cut
Line 172 ⟶ 175:
}
 
my $txtintxt=$self->tag($api, $tok->{'revisions'}[0]{'*'}, %dates);
my $resouttxt=$apiself->edittag($tokapi, $txt, "Adding/updating {{OnThisDay}}. $screwup", 0intxt, 1%dates);
if($res->{'code'}intxt ne 'success'$outtxt){
$res=$api->warnedit("Write failed on $title:tok, $res->outtxt, "Adding/updating {error{OnThisDay}\n}. $screwup", 0, 1);
sleepif(10$res->{'code'} ne 'success');{
redo $api->warn("Write failed on $title: $res->{error}\n");
sleep(10);
redo;
}
}
}
Line 336 ⟶ 342:
}
 
my $txtintxt=$self->tag($api, $tok->{'revisions'}[0]{'*'}, $fday => $revid);
my $resouttxt=$apiself->edittag($tokapi, $txtintxt, "Adding/updating {{OnThisDay}}. $screwup",fday 0,=> 1$revid);
if($res->{'code'}intxt ne 'success'$outtxt){
$res=$api->warnedit("Write failed on $title:tok, $res->txt, "Adding/updating {error{OnThisDay}\n}. $screwup", 0, 1);
returnif($res->{'code'} 60;ne 'success'){
$api->warn("Write failed on $title: $res->{error}\n");
return 60;
}
}
}
Line 593 ⟶ 602:
 
return unless exists($redir{"Template:$name"});
 
@$params=grep(/^\s*(?:oldid|date)\d+\s*=/, @$params);
# Read existing parameters
my %p=();
my $mx=0;
foreach (@$params){
@ $paramsmx=grep$1 if(/^\s*(?:oldid|date|oldid)(\d+)\s*=/, @&& $mx < $params1);
if(/^\s*(date\d+)\s*=\s*(\d{4}-\d{2}-\d{2})\s*$/){
$p{$1}=$2;
} elsif(/^\s*(date\d+)\s*=\s*((?i)$monthre)\s+(\d{1,2})(?:\s*,)?\s+(\d{4})\s*$/){
my $m; for($m=0; $m<@months; $m++){ last if lc($months[$m]) eq lc($2); }
$p{$1}=sprintf("%04d-%02d-%02d", $4, $m+1, $3);
} elsif(/^\s*(date\d+)\s*=\s*(\d{1,2})\s+((?i)$monthre)(?:\s*,)?\s+(\d{4})\s*$/){
my $m; for($m=0; $m<@months; $m++){ last if lc($months[$m]) eq lc($3); }
$p{$1}=sprintf("%04d-%02d-%02d", $4, $m+1, $2);
} elsif(/^\s*(oldid\d+)\s*=\s*(\d+)\s*$/){
$p{$1}=$2;
}
}
@$params=();
for(my $i=1; $i<=$mx; $i++){
$dates{$p{"date$i"}}=$p{"oldid$i"} if(exists($p{"date$i"}) && exists($p{"oldid$i"}) && !exists($dates{$p{"date$i"}}));
}
 
# (Re-)insert parameters
my $i=1;
$i++ while grep(/^\s*oldid$i\s*=/, @$params);