]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/RootWarn.pl
- added top3 irctextcounter stats
[infobot.git] / src / Modules / RootWarn.pl
index 1cdae16abe68fbdd14126e2357162d3b85fb4cd1..6944b196583c8215ea37a28bdd3d58e839829895 100644 (file)
@@ -5,19 +5,19 @@
 #     Created: 19991008
 #
 
-use strict;
+### use strict;
 
 sub rootWarn {
     my ($nick,$user,$host,$chan) = @_;
-    my $attempt = &dbGet("rootwarn", "attempt", "nick='.lc($nick)."'") || 0;
+    my $attempt = &dbGet("rootwarn", "attempt", "nick='".lc($nick)."'") || 0;
     my $warnmode       = &getChanConf("rootWarnMode");
 
     if ($attempt == 0) {       # first timer.
-       if ($warnmode =~ /aggressive/i) {
-           &status(">>> Detected root user; notifying nick and channel.");
-           rawout("PRIVMSG $chan :R".("O" x int(rand 80 + 2))."T has landed!");
+       if (defined $warnmode and $warnmode =~ /quiet/i) {
+           &status("rootwarn: Detected root user; notifying user");
        } else {
-           &status(">>> Detected root user; notifying user");
+           &status("rootwarn: Detected root user; notifying nick and channel.");
+           rawout("PRIVMSG $chan :ROO".("O" x int(rand 68))."T has landed!");
        }
 
        if ($_ = &getFactoid("root")) {
@@ -35,7 +35,9 @@ sub rootWarn {
        }
 
     } else {                   # >3rd time occurrance.
-       if ($warnmode =~ /aggressive/i) {
+
+       # disable this for the time being.
+       if (0 and $warnmode =~ /aggressive/i) {
            if ($channels{$chan}{'o'}{$ident}) {
                &status("RootWarn: $nick... sigh... bye bye.");
                rawout("MODE $chan +b *!root\@$host");  # ban
@@ -46,15 +48,24 @@ sub rootWarn {
 
     $attempt++;
     ### TODO: OPTIMIZE THIS.
-    &dbSet("rootwarn", "nick", lc($nick), "attempt", $attempt);
-    &dbSet("rootwarn", "nick", lc($nick), "time", time());
-    &dbSet("rootwarn", "nick", lc($nick), "host", $user."\@".$host);
-    &dbSet("rootwarn", "nick", lc($nick), "channel", $chan);
+    # ok... don't record the attempt if nick==root.
+    if (1 and $nick ne "root") {       # old
+       &dbSet("rootwarn", { nick => lc($nick) }, { attempt => $attempt });
+       &dbSet("rootwarn", { nick => lc($nick) }, { time => time() });
+       &dbSet("rootwarn", { nick => lc($nick) }, { host => $user."\@".$host });
+       &dbSet("rootwarn", { nick => lc($nick) }, { channel => $chan });
+    } else {   # new. replace. TODO
+       &dbSet("rootwarn", "nick", lc($nick), "attempt", $attempt);
+       &dbSet("rootwarn", "nick", lc($nick), "time", time());
+       &dbSet("rootwarn", "nick", lc($nick), "host", $user."\@".$host);
+       &dbSet("rootwarn", "nick", lc($nick), "channel", $chan);
+    }
 
     return;
 }
 
 # Extras function.
+# todo: support arguments to get info on a particular nick?
 sub CmdrootWarn {
     my $reply;
     my $count = &countKeys("rootwarn");
@@ -65,7 +76,7 @@ sub CmdrootWarn {
     }
 
     # reply #1.
-    $reply = "there ".&fixPlural("has",$count) ." been \002$i\002 ".
+    $reply = "there ".&fixPlural("has",$count) ." been \002$count\002 ".
                &fixPlural("rooter",$count) ." warned about root.";
 
     if ($param{'DBType'} !~ /^mysql$/i) {