User:ImplSearchBot/Code: Difference between revisions
Content added Content deleted
m (ImplSearchBot:0) |
m (ImplSearchBot:0) |
||
Line 64: | Line 64: | ||
closedir(CACHEDIR); |
closedir(CACHEDIR); |
||
&out(scalar @initialcache . " categories initially cached\n", |
&out(scalar @initialcache . " categories initially cached\n", 4); |
||
# Handles interaction with the wiki. |
# Handles interaction with the wiki. |
||
Line 115: | Line 115: | ||
{ |
{ |
||
my $pagename = "Tasks not implemented in $language"; |
my $pagename = "Tasks not implemented in $language"; |
||
&out("Preparing data for:$pagename\n", |
&out("Preparing data for:$pagename\n", 4); |
||
my $hashref = $impldiff{$language}->{'impl'}; |
my $hashref = $impldiff{$language}->{'impl'}; |
||
my %implemented = %$hashref; |
my %implemented = %$hashref; |
||
Line 212: | Line 212: | ||
&postpage("User:ImplSearchBot/Code", "<$tag perl>$botsource</$tag>", 0); |
&postpage("User:ImplSearchBot/Code", "<$tag perl>$botsource</$tag>", 0); |
||
&out("Updating cache\n", |
&out("Updating cache\n", 4); |
||
&commitcache(); |
&commitcache(); |
||
&out("Done\n", |
&out("Done\n", 3); |
||
exit(0); |
exit(0); |
||
Line 287: | Line 287: | ||
$pagename .= ".wikitxt"; |
$pagename .= ".wikitxt"; |
||
&out("Saving: $pagename\n", |
&out("Saving: $pagename\n", 3); |
||
open my $outfile, '>', $pagename |
open my $outfile, '>', $pagename |
||
Line 299: | Line 299: | ||
else |
else |
||
{ |
{ |
||
&out("Posting $pagename\n", |
&out("Posting $pagename\n", 3); |
||
$editor->edit($pagename, $pagedata, "ImplSearchBot:$remark", $minoredit) |
$editor->edit($pagename, $pagedata, "ImplSearchBot:$remark", $minoredit) |
||
Line 323: | Line 323: | ||
my $data = shift; |
my $data = shift; |
||
my $filename = $options{'cachepath'} . &sanitizenamefs($dataname . ".json"); |
my $filename = $options{'cachepath'} . &sanitizenamefs($dataname . ".json"); |
||
unless( exists $options{'post'} ) |
|||
⚫ | |||
{ |
|||
# This is just a test run. Best not to overwrite our cache. |
|||
⚫ | |||
return; |
|||
} |
|||
my $outfile; |
my $outfile; |
||
unless(open $outfile, '>', $filename) |
unless(open $outfile, '>', $filename) |
||
{ |
{ |
||
&out("Failed to open $filename: $!\n", 1); |
&out("Failed to open $filename for caching: $!\n", 1); |
||
return; |
return; |
||
} |
} |
||
Line 333: | Line 338: | ||
print $outfile to_json($data); |
print $outfile to_json($data); |
||
close $outfile; |
close $outfile; |
||
&out(scalar $data . " members cached.\n", |
&out(scalar $data . " members cached to $filename.\n", 5); |
||
} |
} |
||
Line 340: | Line 345: | ||
my $dataname = shift; |
my $dataname = shift; |
||
my $filename = $options{'cachepath'} . &sanitizenamefs($dataname . ".json"); |
my $filename = $options{'cachepath'} . &sanitizenamefs($dataname . ".json"); |
||
&out("Getting cached data for $dataname from $filename...", |
&out("Getting cached data for $dataname from $filename...", 4); |
||
my $infile; |
my $infile; |
||
unless (open $infile, '<', $filename) |
unless (open $infile, '<', $filename) |
||
Line 353: | Line 358: | ||
my $cacheddata = from_json($jsondata); |
my $cacheddata = from_json($jsondata); |
||
&out(scalar @$cacheddata . " members retrieved\n", |
&out(scalar @$cacheddata . " cache members retrieved from $filename\n", 5); |
||
return $cacheddata; |
return $cacheddata; |
||
Line 361: | Line 366: | ||
{ |
{ |
||
my $categoryname = shift; |
my $categoryname = shift; |
||
&out("Getting category contents for $categoryname...", |
&out("Getting category contents for $categoryname...", 4); |
||
my @categorycontents = $editor->get_pages_in_category($categoryname); |
my @categorycontents = $editor->get_pages_in_category($categoryname); |
||
&out(scalar @categorycontents . " members retrieved\n", |
&out(scalar @categorycontents . " members retrieved for $categoryname\n", 5); |
||
my ($removed, $added) = &diffcat(&getcacheddata($categoryname), \@categorycontents); |
my ($removed, $added) = &diffcat(&getcacheddata($categoryname), \@categorycontents); |
||
&out(scalar @$removed . " removed, " . @$added . " added to $categoryname\n", ( |
&out(scalar @$removed . " removed, " . @$added . " added to $categoryname\n", &getloglevelfromdiff(2, $removed, $added)); |
||
&cachedata("$categoryname", \@categorycontents); |
&cachedata("$categoryname", \@categorycontents); |
||
Line 377: | Line 382: | ||
{ |
{ |
||
my $categoryname = shift; |
my $categoryname = shift; |
||
&out("Getting work for $categoryname.\n", |
&out("Getting work for $categoryname.\n",4); |
||
my $olddata = &getcacheddata($categoryname); |
my $olddata = &getcacheddata($categoryname); |
||
my @newdata = &getcategory($categoryname); |
my @newdata = &getcategory($categoryname); |
||
Line 388: | Line 393: | ||
return @work; |
return @work; |
||
} |
|||
sub getloglevelfromdiff |
|||
{ |
|||
my $base = shift; |
|||
my $first = shift; |
|||
my $second = shift; |
|||
return $base |
|||
if((scalar @$first + scalar @$second) > 0); |
|||
return $base + 1; |
|||
} |
} |
||
Line 393: | Line 408: | ||
{ |
{ |
||
my $language = shift; |
my $language = shift; |
||
&out("Getting lang work for $language\n", |
&out("Getting lang work for $language\n", 4); |
||
my %impl; |
my %impl; |
||
foreach my $workitem (&getwork("Category:$language")) |
foreach my $workitem (&getwork("Category:$language")) |
||
Line 418: | Line 433: | ||
# First, find out if we've added any files. |
# First, find out if we've added any files. |
||
my $cachepath = $options{'cachepath'}; |
my $cachepath = $options{'cachepath'}; |
||
print "Cachepath: $cachepath\n"; |
|||
opendir(CACHEDIR, $cachepath); |
opendir(CACHEDIR, $cachepath); |
||
Line 428: | Line 442: | ||
my ($added, $removed) = &diffcat(\@current, \@initialcache); |
my ($added, $removed) = &diffcat(\@current, \@initialcache); |
||
&out("Detected " . scalar @$added . " new cache files and " . scalar @$removed . " removed\n",2); |
&out("Detected " . scalar @$added . " new cache files and " . scalar @$removed . " removed\n",&getloglevelfromdiff(2, $added, $removed)); |
||
if ((scalar @$added + scalar @$removed ) > 0) |
if ((scalar @$added + scalar @$removed ) > 0) |
||
Line 434: | Line 448: | ||
foreach my $cachefile (@$added) |
foreach my $cachefile (@$added) |
||
{ |
{ |
||
print "cachepath: $cachepath, cachefile: $cachefile\n"; |
|||
&svn('add', $cachepath . $cachefile);; |
&svn('add', $cachepath . $cachefile);; |
||
} |
} |
||
Line 440: | Line 453: | ||
foreach my $cachefile (@$removed) |
foreach my $cachefile (@$removed) |
||
{ |
{ |
||
print "cachepath: $cachepath, cachefile: $cachefile\n"; |
|||
&svn('remove', $cachepath . $cachefile);; |
&svn('remove', $cachepath . $cachefile);; |
||
} |
} |
||
Line 459: | Line 471: | ||
$string .= "\n"; |
$string .= "\n"; |
||
&out($string, |
&out($string, 3); |
||
system 'svn', @args |
system 'svn', @args |