#!/usr/bin/perl -wusestrict;# binmodes$|=1;binmodeSTDOUT,':utf8';binmodeSTDERR,':utf8';die"USAGE: $0 botnum taskfile editlimit\n"if@ARGV!=3;die"editlimit must be a positive integer\n"unless($ARGV2=~/^\d+$/&&$ARGV2>0);useCwd;useFile::Basename;uselibFile::Basename::dirname(Cwd::realpath(__FILE__));useAnomieBOT::API;my$task='';open(X,'<:utf8',$ARGV1])ordie("Could not open task file: $!\n");while(<X>){$task=$1if/^package (.*);$/;}close(X);die"Invalid task file"unless$taskne'';AnomieBOT::API::load($ARGV1]);$task=$task->new();my$api=AnomieBOT::API->new('conf.ini',$ARGV0]);$api->{'nopause'}=1;$api->{'editlimit'}=$ARGV2];$api->{'assert_edit'}='user'if$api->{'assert_edit'}eq'bot';$api->DEBUG(-1);$api->login();while(1){my$wait=60;# maximum wait timewarn"Starting task (".ref($task).")\n"if$api->DEBUG;my$w=$task->run($api);if(!defined($w)){die"Task returned undef\n";}else{warn"Task returned $w\n"if$api->DEBUG;$wait=$wif$w<$wait;}warn"Sleeping for $wait seconds\n"if($wait>0&&$api->DEBUG);sleep($wait)if$wait>0;}