User:ImplSearchBot/Code: Difference between revisions

m
ImplSearchBot:0
m (ImplSearchBot:0)
m (ImplSearchBot:0)
 
(One intermediate revision by the same user not shown)
Line 24:
# into logical chunks.
#---------------------
 
# Called in a *lot* of places to check the machine for overload.
sub slumber
{
# Snooze.
while(&snooze) {};
}
 
# A reversed snooze buton
sub snooze
{
open my $loadavg, '<', '/proc/loadavg'
or die "Failed to check load average: $!";
my $loadstr = <$loadavg>;
close $loadavg;
 
# Wait one minute for every process in the wait queue.
my @avgs = split / +/, $loadstr, 3;
 
my $sleeptime = 0;
 
# Sleep at least one minute for each process in the wait queue.
$sleeptime = $avgs[0] * 60;
 
 
# If we're currently under notable load
if($sleeptime > 30)
{
print "Calculated sleeptime: $sleeptime\n";
print "Load averages: " . join(' ', @avgs) . " ... Sleeping $sleeptime seconds\n";
sleep 1$sleeptime;
return $sleeptime;
}
 
return 0;
}
 
# Builds a simple hash ref associating a page name with body.
Line 30 ⟶ 66:
sub build_posting
{
&slumber;
my $name = shift;
my $body = shift;
Line 39 ⟶ 76:
sub prep_unimp_posting
{
&slumber;
my $impldiff = shift;
my $language = shift;
Line 75 ⟶ 113:
sub prep_omit_posting
{
&slumber;
my $implediff = shift;
my $language = shift;
Line 102 ⟶ 141:
sub prep_listing_posting
{
&slumber;
my $impldiff = shift;
my $language = shift;
Line 137 ⟶ 177:
sub prep_omit_cat_posting
{
&slumber;
my $implediff = shift;
my $language = shift;
Line 145 ⟶ 186:
sub get_listing_name
{
&slumber;
my $language = shift;
return "Tasks not implemented in $language";
Line 152 ⟶ 194:
sub get_omit_template_name
{
&slumber;
my $language = shift;
return "unimp_omit_body_$language";
Line 159 ⟶ 202:
sub get_unimpl_template_name
{
&slumber;
my $language = shift;
return "unimp_body_$language";
Line 166 ⟶ 210:
sub get_omit_cat_name
{
&slumber;
my $language = shift;
return "Category:$language/Omit";
Line 173 ⟶ 218:
sub process_language
{
&slumber;
my $implediff = shift;
my $language = shift;
Line 194 ⟶ 240:
 
sub wikitxt_pathname {
&slumber;
my $page_name = $_[0];
"test/" . sanitizenamefs($page_name) . ".wikitxt";
Line 201 ⟶ 248:
sub processimplediff
{
&slumber;
my $implediff = shift;
my %work;
Line 221 ⟶ 269:
sub geteditor
{
&slumber;
# If we're not posting, and we're only drawing from cache
# We don't actually need to pull from the wiki.
Line 257 ⟶ 306:
sub out
{
&slumber;
my $string = shift;
my $loglevel = shift;
Line 282 ⟶ 332:
sub sanitizenamefs
{
&slumber;
my $pagename = shift;
$pagename =~ tr/:\//__/;
Line 290 ⟶ 341:
sub diffcat_simple
{
&slumber;
my $first = shift;
my $second = shift;
Line 308 ⟶ 360:
sub diffcat
{
&slumber;
my $first = shift;
my $second = shift;
Line 316 ⟶ 369:
 
sub slurp_file {
&slumber;
my $pathname = $_[0];
open(my $stream, "<", $pathname) or do {warn"Can't open '$pathname': $!\n";
Line 332 ⟶ 386:
sub postpage
{
&slumber;
my $pagename = shift;
my $pagedata = shift;
Line 380 ⟶ 435:
sub cachedata
{
&slumber;
my $dataname = shift;
my $data = shift;
Line 404 ⟶ 460:
sub getcacheddata
{
&slumber;
my $dataname = shift;
my $filename = $options{'cachepath'} . &sanitizenamefs($dataname . ".json");
Line 429 ⟶ 486:
sub reportcatchanges
{
&slumber;
my $category = shift;
my $old = shift;
Line 454 ⟶ 512:
sub getcategory
{
&slumber;
my $categoryname = shift;
&out("Getting category contents for $categoryname...", 4);
Line 471 ⟶ 530:
$new = [$editor->get_pages_in_category($categoryname)];
++$categorypulls;
sleep 1;
}
Line 486 ⟶ 544:
sub getwork
{
&slumber;
my $categoryname = shift;
&out("Getting work for $categoryname.\n",4);
Line 519 ⟶ 578:
sub getloglevelfromdiff
{
&slumber;
my $base = shift;
my $first = shift;
Line 530 ⟶ 590:
sub getlangwork
{
&slumber;
my $language = shift;
&out("Getting lang work for $language\n", 4);
Line 562 ⟶ 623:
sub commitcache
{
&slumber;
# First, find out if we've added any files.
my $cachepath = $options{'cachepath'};
Line 596 ⟶ 658:
sub svn
{
&slumber;
return
if(exists $options{'nosvn'});
Line 613 ⟶ 676:
 
sub getopt {
&slumber;
#I don't care to pollute my global scope.
my $wiki = 'rosettacode.org';
Line 689 ⟶ 753:
sub main {
&slumber;
 
unless (@ARGV) { @ARGV = @_; }