X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FModules%2FRootWarn.pl;h=37f7ac17af5052d12cb999afb8466d7879721185;hb=cb81fea9939f349b36e3b5a0cdc0343a6b781da1;hp=cb3d967499637c15df3185a86e56ddd85b3cfe13;hpb=8a79d430aef83402420b5a8378e78cfa01051c93;p=infobot.git diff --git a/src/Modules/RootWarn.pl b/src/Modules/RootWarn.pl index cb3d967..37f7ac1 100644 --- a/src/Modules/RootWarn.pl +++ b/src/Modules/RootWarn.pl @@ -13,49 +13,53 @@ use vars qw($dbh $found $ident); sub rootWarn { my ($nick,$user,$host,$chan) = @_; my $n = lc $nick; - my $attempt = &dbGet("rootwarn", "attempt", "nick=".&dbQuote($n) ) || 0; - my $warnmode = &getChanConf("rootWarnMode"); + my $attempt = &sqlSelect('rootwarn', 'attempt', { nick => $n } ) || 0; + my $warnmode = &getChanConf('rootWarnMode'); if ($attempt == 0) { # first timer. if (defined $warnmode and $warnmode =~ /quiet/i) { - &status("rootwarn: Detected root user; notifying user"); + &status('RootWarn: Detected root user; notifying user'); } else { - &status("rootwarn: Detected root user; notifying nick and channel."); - &msg($chan, "ROO".("O" x int(rand 68))."T has landed!"); + &status('RootWarn: Detected root user; notifying nick and channel.'); + &msg($chan, 'ROO'.('O' x int(rand 8))."T has landed!"); } - if ($_ = &getFactoid("root")) { - &msg($nick, "root is $_"); + if ($_ = &getFactoid('root')) { + &msg($nick, "RootWarn: $attempt : $_"); } else { - &status("root needs to be defined in database."); + &status('"root" needs to be defined in database.'); } } elsif ($attempt < 2) { # 2nd/3rd time occurrance. - &status("RootWarn: not first time root user; msg'ing $nick."); - if ($_ = &getFactoid("root again")) { - &msg($nick, $_); + if ($_ = &getFactoid('root again')) { + &status("RootWarn: not first time root user; msg'ing $nick."); + &msg($nick, "RootWarn: $attempt : $_"); } else { - &status("root again needs to be defined in database."); + &status('"root again" needs to be defined in database.'); } } else { # >3rd time occurrance. - # 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 - &kick($chan,$nick,"bye bye"); + &kick($chan,$nick,'bye bye'); } + } elsif ($_ = &getFactoid('root again')) { + &status("RootWarn: $attempt times; msg'ing $nick."); + &msg($nick, "RootWarn: $attempt : $_"); + } else { + &status("root again needs to be defined in database."); } } $attempt++; ### TODO: OPTIMIZE THIS. # ok... don't record the attempt if nick==root. - return if ($nick eq "root"); + return if ($nick eq 'root'); - &dbSet("rootwarn", { nick => lc($nick) }, { + &sqlSet('rootwarn', { nick => lc($nick) }, { attempt => $attempt, time => time(), host => $user."\@".$host, @@ -66,10 +70,10 @@ sub rootWarn { } # Extras function. -# todo: support arguments to get info on a particular nick? +# TODO: support arguments to get info on a particular nick? sub CmdrootWarn { my $reply; - my $count = &countKeys("rootwarn"); + my $count = &countKeys('rootwarn'); if ($count == 0) { &performReply("no-one has been warned about root, woohoo"); @@ -77,8 +81,8 @@ sub CmdrootWarn { } # reply #1. - $reply = "there ".&fixPlural("has",$count) ." been \002$count\002 ". - &fixPlural("rooter",$count) ." warned about root."; + $reply = 'there '.&fixPlural('has',$count) ." been \002$count\002 ". + &fixPlural('rooter',$count) ." warned about root."; if ($param{'DBType'} !~ /^(pg|my)sql$/i) { &FIXME("rootwarn does not yet support non-{my,pg}sql."); @@ -99,8 +103,8 @@ sub CmdrootWarn { if ($found) { $reply .= " Of which, \002$found\002 ". - &fixPlural("rooter",$found)." ". - &fixPlural("has",$found). + &fixPlural('rooter',$found).' '. + &fixPlural('has',$found). " done it at least 3 times."; } @@ -108,3 +112,5 @@ sub CmdrootWarn { } 1; + +# vim:ts=4:sw=4:expandtab:tw=80