&factoidCheck(2); # takes a couple of seconds on a 486. defer it
# TODO: convert to new format... or nuke altogether.
&newsFlush(2);
+ &rssFeeds(2);
# 1 for run straight away
&uptimeLoop(1);
sub ScheduleThis {
my ($interval, $codename, @args) = @_;
- my $waittime = &getRandomInt($interval);
+ # Set to supllied value plus a random 0-60 seconds to avoid simultaneous runs
+ my $waittime = &getRandomInt("$interval-" . ($interval+&getRandomInt(60) ) );
if (!defined $waittime) {
&WARN("interval == waittime == UNDEF for $codename.");
#### LET THE FUN BEGIN.
####
+sub rssFeeds {
+ my $interval = $param{'rssFeedTime'} || 30;
+ if (@_) {
+ &ScheduleThis( $interval*60, 'rssFeeds' ); # minutes
+ return if ( $_[0] eq '2' ); # defer.
+ }
+ &Forker(
+ 'RSSFeeds',
+ sub {
+ my $line = &RSSFeeds::RSS();
+ return unless ( defined $line );
+
+ }
+ );
+}
+
sub randomQuote {
my $interval = &getChanConfDefault('randomQuoteInterval', 60, $chan);
if (@_) {
- &ScheduleThis($interval, 'randomQuote');
+ &ScheduleThis($interval*60, 'randomQuote'); # every hour
return if ($_[0] eq '2'); # defer.
}
my $interval = &getChanConfDefault('randomFactoidInterval', 60, $chan);
if (@_) {
- &ScheduleThis($interval, 'randomFactoid');
+ &ScheduleThis($interval*60, 'randomFactoid'); # minutes
return if ($_[0] eq '2'); # defer.
}
sub logLoop {
if (@_) {
- &ScheduleThis(60, 'logLoop');
+ &ScheduleThis(3600, 'logLoop'); # 1 hour
return if ($_[0] eq '2'); # defer.
}
sub seenFlushOld {
if (@_) {
- &ScheduleThis(1440, 'seenFlushOld');
+ &ScheduleThis(86400, 'seenFlushOld'); # 1 day
return if ($_[0] eq '2'); # defer.
}
sub newsFlush {
if (@_) {
- &ScheduleThis(60, 'newsFlush');
+ &ScheduleThis(3600, 'newsFlush'); # 1 hour
return if ($_[0] eq '2'); # defer.
}
my $mynick=$conn->nick();
if (@_) {
- &ScheduleThis($interval, 'chanlimitCheck');
+ &ScheduleThis($interval*60, 'chanlimitCheck'); # default 10 minutes
return if ($_[0] eq '2');
}
my ($s1,$s2);
if (@_) {
- &ScheduleThis(15, 'netsplitCheck');
+ &ScheduleThis(300, 'netsplitCheck'); # every 5 minutes
return if ($_[0] eq '2');
}
my $who;
if (@_) {
- &ScheduleThis(60, 'floodLoop'); # minutes.
+ &ScheduleThis(60, 'floodLoop'); # 1 minute
return if ($_[0] eq '2');
}
sub seenFlush {
if (@_) {
my $interval = &getChanConfDefault('seenFlushInterval', 60, $chan);
- &ScheduleThis($interval, 'seenFlush');
+ &ScheduleThis($interval*60, 'seenFlush'); # minutes
return if ($_[0] eq '2');
}
my $count = 0;
if (@_) {
- &ScheduleThis(240, 'leakCheck');
+ &ScheduleThis(14400, 'leakCheck'); # every 4 hours
return if ($_[0] eq '2');
}
sub ignoreCheck {
if (@_) {
- &ScheduleThis(60, 'ignoreCheck');
+ &ScheduleThis(60, 'ignoreCheck'); # once every minute
return if ($_[0] eq '2'); # defer.
}
sub ircCheck {
if (@_) {
- &ScheduleThis(15, 'ircCheck');
+ &ScheduleThis(300, 'ircCheck'); # every 5 minutes
return if ($_[0] eq '2'); # defer.
}
sub miscCheck {
if (@_) {
- &ScheduleThis(120, 'miscCheck');
+ &ScheduleThis(7200, 'miscCheck'); # every 2 hours
return if ($_[0] eq '2'); # defer.
}
sub miscCheck2 {
if (@_) {
- &ScheduleThis(240, 'miscCheck2');
+ &ScheduleThis(14400, 'miscCheck2'); # every 4 hours
return if ($_[0] eq '2'); # defer.
}
# return unless &IsParam('Uptime');
if (@_) {
- &ScheduleThis(60, 'uptimeLoop');
+ &ScheduleThis(3600, 'uptimeLoop'); # once per hour
return if ($_[0] eq '2'); # defer.
}
sub slashdotLoop {
if (@_) {
- &ScheduleThis(60, 'slashdotLoop');
+ &ScheduleThis(3600, 'slashdotLoop'); # once per hour
return if ($_[0] eq '2');
}
sub plugLoop {
if (@_) {
- &ScheduleThis(60, 'plugLoop');
+ &ScheduleThis(3600, 'plugLoop'); # once per hour
return if ($_[0] eq '2');
}
sub kernelLoop {
if (@_) {
- &ScheduleThis(240, 'kernelLoop');
+ &ScheduleThis(14400, 'kernelLoop'); # once every 4 hours
return if ($_[0] eq '2');
}
### TODO: ??
sub wingateWriteFile {
if (@_) {
- &ScheduleThis(60, 'wingateWriteFile');
+ &ScheduleThis(3600, 'wingateWriteFile'); # once per hour
return if ($_[0] eq '2'); # defer.
}
sub factoidCheck {
if (@_) {
- &ScheduleThis(720, 'factoidCheck');
+ &ScheduleThis(43200, 'factoidCheck'); # ever 12 hours
return if ($_[0] eq '2'); # defer.
}
return unless (scalar keys %{ $dcc{CHAT} });
if (@_) {
- &ScheduleThis(10, 'dccStatus');
+ &ScheduleThis(600, 'dccStatus'); # every 10 minutes
return if ($_[0] eq '2'); # defer.
}
return $array[int(rand(scalar @array))];
}
-# Usage: &getRandomInt("30-60");
+# Usage: &getRandomInt("30-60"); &getRandomInt(5);
+# Desc : Returns a randomn integer between "X-Y" or 1 and the value passed
sub getRandomInt {
- my $str = $_[0];
+ my $str = shift;
- if (!defined $str) {
- &WARN("gRI: str == NULL.");
- return;
- }
-
- srand();
-
- if ($str =~ /^(\d+(\.\d+)?)$/) {
- my $i = $1;
- my $fuzzy = int(rand 5);
- if ($i < 10) {
- return $i;
+ if ( !defined $str ) {
+ &WARN("getRandomInt: str == NULL.");
+ return undef;
}
- if (rand > 0.5) {
- return ($i - $fuzzy)*60;
+
+ if ( $str =~ /^(\d+(\.\d+)?)$/ ) {
+ return int( rand $str ) + 1;
+ } elsif ( $str =~ /^(\d+)-(\d+)$/ ) {
+ return $1 if $1 == $2;
+ my $min = $1 < $2 ? $1 : $2; # Swap is backwords
+ my $max = $2 > $1 ? $2 : $1;
+ return int( rand( $max - $min + 1 ) ) + $min;
} else {
- return ($i + $fuzzy)*60;
- }
- } elsif ($str =~ /^(\d+)-(\d+)$/) {
- return ($2 - $1)*int(rand $1)*60;
- } else {
- return $str; # hope we're safe.
- }
- &ERROR("getRandomInt: invalid arg '$str'.");
- return 1800;
+ # &ERROR("getRandomInt: invalid arg '$str'.");
+ return undef;
+ }
}
##########