Content deleted Content added
Updating published sources: OnThisDayTagger: * Sorting bugfix. |
Updating published sources: OnThisDayTagger: * Don't make null edits. * Don't duplicate dates in the parameters. |
||
Line 1:
{{ombox|type=notice|text=
<source lang="perl">
package tasks::OnThisDayTagger;
Line 31:
use vars qw/@ISA/;
@ISA=qw/AnomieBOT::Task/;
my
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
=cut
Line 172 ⟶ 175:
}
my $
my $
if($
$res=$api->
sleep(10);
redo;
}
}
}
Line 336 ⟶ 342:
}
my $
my $
if($
$res=$api->
$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){
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);
|