]> git.donarmstrong.com Git - infobot.git/blobdiff - src/IRC/Schedulers.pl
case
[infobot.git] / src / IRC / Schedulers.pl
index 932dd941e4fa2e953eb36acd350a02cec3f3e041..aa0a450ad59a6233eb51709f14a4061422e47d65 100644 (file)
@@ -29,7 +29,7 @@ sub setupSchedulersII {
 
 sub queueTask {
     my($codename, $chanconfdef, $intervaldef, $defer) = @_;
-    my $t = &getChanConfDefault($chanconfdef, $intervaldef);
+    my $t = &getChanConfDefault($chanconfdef, $intervaldef, $chan);
     my $waittime = &getRandomInt($t);
 
     if (!defined $waittime) {
@@ -125,7 +125,7 @@ sub ScheduleThis {
 ####
 
 sub randomQuote {
-    my $interval = &getChanConfDefault("randomQuoteInterval", 60);
+    my $interval = &getChanConfDefault("randomQuoteInterval", 60, $chan);
     if (@_) {
        &ScheduleThis($interval, "randomQuote");
        return if ($_[0] eq "2");       # defer.
@@ -151,7 +151,7 @@ sub randomFactoid {
     my ($key,$val);
     my $error = 0;
 
-    my $interval = &getChanConfDefault("randomFactoidInterval", 60);
+    my $interval = &getChanConfDefault("randomFactoidInterval", 60, $chan);
     if (@_) {
        &ScheduleThis($interval, "randomFactoid");
        return if ($_[0] eq "2");       # defer.
@@ -165,7 +165,7 @@ sub randomFactoid {
            ($key,$val) = &randKey("factoids","factoid_key,factoid_value");
            &DEBUG("rF: $key, $val");
 ###        $val =~ tr/^[A-Z]/[a-z]/;   # blah is Good => blah is good.
-           last if ((defined $val) and ($val !~ /^</) and ($key !~ /\#DEL\#/) and ($key !~ /^CMD:/));
+           last if ((defined $val) and ($val !~ /^</) and ($key !~ /\#DEL\#/) and ($key !~ /^cmd:/));
 
            $error++;
            if ($error == 5) {
@@ -259,7 +259,7 @@ sub seenFlushOld {
     return unless (&IsChanConf("seenFlushInterval") > 0);
 
     # global setting. does not make sense for per-channel.
-    my $max_time = &getChanConfDefault("seenMaxDays", 30) *60*60*24;
+    my $max_time = &getChanConfDefault("seenMaxDays", 30, $chan) *60*60*24;
     my $delete   = 0;
 
     if ($param{'DBType'} =~ /^(pgsql|mysql|sqlite)/i) {
@@ -296,7 +296,7 @@ sub newsFlush {
        return if ($_[0] eq "2");       # defer.
     }
 
-    if (!&ChanConfList("news")) {
+    if (!&ChanConfList('News')) {
        &DEBUG("newsFlush: news disabled? (chan => $chan)");
        return;
     }
@@ -369,7 +369,8 @@ sub newsFlush {
 }
 
 sub chanlimitCheck {
-    my $interval = &getChanConfDefault("chanlimitcheckInterval", 10);
+    my $interval = &getChanConfDefault("chanlimitcheckInterval", 10, $chan);
+    my $mynick=$conn->nick();
 
     if (@_) {
        &ScheduleThis($interval, "chanlimitCheck");
@@ -411,7 +412,7 @@ sub chanlimitCheck {
            next;
        }
 
-       if (!exists $channels{$chan}{'o'}{$ident}) {
+       if (!exists $channels{$chan}{'o'}{$mynick}) {
            &status("chanlimit: dont have ops on $chan.") unless (exists $cache{warn}{chanlimit}{$chan});
            $cache{warn}{chanlimit}{$chan} = 1;
            &chanServCheck($chan);
@@ -522,7 +523,7 @@ sub floodLoop {
     }
 
     my $time           = time();
-    my $interval       = &getChanConfDefault("floodCycle",60);
+    my $interval       = &getChanConfDefault("floodCycle",60, $chan);
 
     foreach $who (keys %flood) {
        foreach (keys %{ $flood{$who} }) {
@@ -542,7 +543,7 @@ sub floodLoop {
 
 sub seenFlush {
     if (@_) {
-       my $interval = &getChanConfDefault("seenFlushInterval", 60);
+       my $interval = &getChanConfDefault("seenFlushInterval", 60, $chan);
        &ScheduleThis($interval, "seenFlush");
        return if ($_[0] eq "2");
     }
@@ -678,6 +679,7 @@ sub ircCheck {
     $cache{statusSafe} = 1;
     foreach (sort keys %conns) {
        $conn=$conns{$_};
+       my $mynick=$conn->nick();
        &DEBUG("ircCheck for $_");
        my @join = &getJoinChans(1);
        if (scalar @join) {
@@ -697,7 +699,7 @@ sub ircCheck {
            } else {
                &status('ircCheck: possible lost in space; checking.'.
                    scalar(gmtime) );
-               &msg($ident, "TEST");
+               &msg($mynick, "TEST");
                $cache{connect} = time();
            }
        }
@@ -841,11 +843,11 @@ sub getNickInUse {
 
 sub uptimeLoop {
     return if (!defined &uptimeWriteFile);
-#    return unless &IsChanConf("uptime");
+#    return unless &IsParam('Uptime');
 
     if (@_) {
-       &ScheduleThis(60, "uptimeLoop");
-       return if ($_[0] eq "2");       # defer.
+       &ScheduleThis(60, 'uptimeLoop');
+       return if ($_[0] eq '2');       # defer.
     }
 
     &uptimeWriteFile();
@@ -854,14 +856,14 @@ sub uptimeLoop {
 sub slashdotLoop {
 
     if (@_) {
-       &ScheduleThis(60, "slashdotLoop");
+       &ScheduleThis(60, 'slashdotLoop');
        return if ($_[0] eq "2");
     }
 
-    my @chans = &ChanConfList("slashdotAnnounce");
+    my @chans = &ChanConfList('slashdotAnnounce');
     return unless (scalar @chans);
 
-    &Forker("slashdot", sub {
+    &Forker('slashdot', sub {
        my $line = &Slashdot::slashdotAnnounce();
        return unless (defined $line);
 
@@ -877,14 +879,14 @@ sub slashdotLoop {
 sub plugLoop {
 
     if (@_) {
-       &ScheduleThis(60, "plugLoop");
+       &ScheduleThis(60, 'plugLoop');
        return if ($_[0] eq "2");
     }
 
-    my @chans = &ChanConfList("plugAnnounce");
+    my @chans = &ChanConfList('plugAnnounce');
     return unless (scalar @chans);
 
-    &Forker("plug", sub {
+    &Forker('Plug', sub {
        my $line = &Plug::plugAnnounce();
        return unless (defined $line);
 
@@ -906,7 +908,7 @@ sub kernelLoop {
     my @chans = &ChanConfList("kernelAnnounce");
     return unless (scalar @chans);
 
-    &Forker("kernel", sub {
+    &Forker("Kernel", sub {
        my @data = &Kernel::kernelAnnounce();
 
        foreach (@chans) {
@@ -922,14 +924,14 @@ sub kernelLoop {
 }
 
 sub wingateCheck {
-    return unless &IsChanConf("wingate");
+    return unless &IsChanConf('Wingate');
 
     ### FILE CACHE OF OFFENDING WINGATES.
     foreach (grep /^$host$/, @wingateBad) {
        &status("Wingate: RUNNING ON $host BY $who");
-       &ban("*!*\@$host", "") if &IsChanConf("wingateBan");
+       &ban("*!*\@$host", "") if &IsChanConf('wingateBan');
 
-       my $reason      = &getChanConf("wingateKick");
+       my $reason      = &getChanConf('wingateKick');
 
        next unless ($reason);
        &kick($who, "", $reason)
@@ -943,21 +945,21 @@ sub wingateCheck {
        &DEBUG("Already scanned $host. good.");
     }
 
-    my $interval = &getChanConfDefault("wingateInterval", 60); # seconds.
-    return if (defined $forked{'wingate'});
+    my $interval = &getChanConfDefault('wingateInterval', 60, $chan); # seconds.
+    return if (defined $forked{'Wingate'});
     return if (time() - $wingaterun <= $interval);
     return unless (scalar(keys %wingateToDo));
 
     $wingaterun = time();
 
-    &Forker("wingate", sub { &Wingate::Wingates(keys %wingateToDo); } );
+    &Forker('Wingate', sub { &Wingate::Wingates(keys %wingateToDo); } );
     undef @wingateNow;
 }
 
 ### TODO: ??
 sub wingateWriteFile {
     if (@_) {
-       &ScheduleThis(60, "wingateWriteFile");
+       &ScheduleThis(60, 'wingateWriteFile');
        return if ($_[0] eq "2");       # defer.
     }
 
@@ -965,7 +967,7 @@ sub wingateWriteFile {
 
     my $file = "$bot_base_dir/$param{'ircUser'}.wingate";
     if ($bot_pid != $$) {
-       &DEBUG("wingateWriteFile: Reorganising!");
+       &DEBUG('wingateWriteFile: Reorganising!');
 
        open(IN, $file);
        while (<IN>) {
@@ -979,7 +981,7 @@ sub wingateWriteFile {
        @wingateNow = sort keys %hash;
     }
 
-    &DEBUG("wingateWF: writing...");
+    &DEBUG('wingateWF: writing...');
     open(OUT, ">$file");
     foreach (@wingateNow) {
        print OUT "$_\n";
@@ -994,7 +996,7 @@ sub factoidCheck {
     }
 
     my @list   = &searchTable("factoids", "factoid_key", "factoid_key", " #DEL#");
-    my $stale  = &getChanConfDefault("factoidDeleteDelay", 14) *60*60*24;
+    my $stale  = &getChanConfDefault("factoidDeleteDelay", 14, $chan) *60*60*24;
     if ($stale < 1) {
        # disable it since it's "illegal".
        return;