X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FProcess.pl;h=36cffd423054a12cfaebfdb9fb5a5c2d1da70a76;hb=b77d6bde1cfdb1a1f6868dfa1d0e6d70bcb8c60c;hp=286215b1a273cd60b902ed8795521f5d4181f6e7;hpb=73555fc86ddc2021610ab944855b11d1c19816e6;p=infobot.git diff --git a/src/Process.pl b/src/Process.pl index 286215b..36cffd4 100644 --- a/src/Process.pl +++ b/src/Process.pl @@ -27,7 +27,7 @@ sub process { $learnok = 1 if ($addressed); if ($param{'learn'} =~ /^HUNGRY$/i) { $learnok = 1; - $addressed = 1; + $addrchar = 1; $talkok = 1; } @@ -48,7 +48,7 @@ sub process { &msg($who, "give me an unlobotomy.") if ($delta_time > 60*60); $cache{lobotomy}{$who} = time(); } - return 'LOBOTOMY'; + return 'LOBOTOMY' unless IsFlag("A"); } # talkMethod. @@ -65,36 +65,34 @@ sub process { if ($message =~ /^join(\s+(.*))?\s*$/i) { return 'join: not addr' unless ($addressed); - $2 =~ /^($mask{chan})(,(\S+))?/; - my($thischan, $key) = (lc $1, $3); - my $chankey = lc $thischan; - $chankey .= " $key" if (defined $key); + $2 =~ /^($mask{chan})(\s+(\S+))?/; + my($joinchan, $key) = (lc $1, $3); - if ($thischan eq "") { + if ($joinchan eq "") { &help("join"); return; } - if ($thischan !~ /^$mask{chan}$/) { - &msg($who, "$thischan is not a valid channel name."); + if ($joinchan !~ /^$mask{chan}$/) { + &msg($who, "$joinchan is not a valid channel name."); return; } if (&IsFlag("o") ne "o") { - if (!exists $chanconf{$thischan}) { - &msg($who, "I am not allowed to join $thischan."); + if (!exists $chanconf{$joinchan}) { + &msg($who, "I am not allowed to join $joinchan."); return; } - if (&validChan($thischan)) { - &msg($who,"warn: I'm already on $thischan, joining anyway..."); + if (&validChan($joinchan)) { + &msg($who,"warn: I'm already on $joinchan, joining anyway..."); } } - $cache{join}{$thischan} = $who; # used for on_join self. + $cache{join}{$joinchan} = $who; # used for on_join self. - &joinchan($chankey); - &status("JOIN $chankey <$who>"); - &msg($who, "joining $chankey"); + &status("JOIN $joinchan $key <$who>"); + &msg($who, "joining $joinchan $key"); + &joinchan($joinchan, $key); &joinNextChan(); # hack. return; @@ -106,7 +104,7 @@ sub process { my @array = split / /, $message; if ($who =~ /^_default$/i) { - &pSReply("you are too eleet."); + &performStrictReply("you are too eleet."); return; } @@ -118,25 +116,25 @@ sub process { my $do_nick = $array[1] || $who; if (!exists $users{$do_nick}) { - &pSReply("nick $do_nick is not in user list."); + &performStrictReply("nick $do_nick is not in user list."); return; } my $crypt = $users{$do_nick}{PASS}; if (!defined $crypt) { - &pSReply("user $do_nick has no passwd set."); + &performStrictReply("user $do_nick has no passwd set."); return; } if (!&ckpasswd($array[0], $crypt)) { - &pSReply("invalid passwd for $do_nick."); + &performStrictReply("invalid passwd for $do_nick."); return; } - my $mask = "*!$user@".&makeHostMask($host); + my $mask = "$who!$user@".&makeHostMask($host); ### TODO: prevent adding multiple dupe masks? ### TODO: make &addHostMask() CMD? - &pSReply("Added $mask for $do_nick..."); + &performStrictReply("Added $mask for $do_nick..."); $users{$do_nick}{HOSTS}{$mask} = 1; return; @@ -148,7 +146,7 @@ sub process { my @array = split ' ', $message; if ($who =~ /^_default$/i) { - &pSReply("you are too eleet."); + &performStrictReply("you are too eleet."); return; } @@ -167,18 +165,18 @@ sub process { } if (!exists $users{$who} and !$first) { - &pSReply("nick $who is not in user list."); + &performStrictReply("nick $who is not in user list."); return; } if ($first) { - &pSReply("First time user... adding you as Master."); - $users{$who}{FLAGS} = "mrsteon"; + &performStrictReply("First time user... adding you as Master."); + $users{$who}{FLAGS} = "aemnorst"; } my $crypt = $users{$who}{PASS}; if (defined $crypt) { - &pSReply("user $who already has pass set."); + &performStrictReply("user $who already has pass set."); return; } @@ -189,13 +187,13 @@ sub process { if (!scalar keys %{ $users{$who}{HOSTS} }) { my $mask = "*!$user@".&makeHostMask($host); - &pSReply("Added hostmask '\002$mask\002' to $who"); + &performStrictReply("Added hostmask '\002$mask\002' to $who"); $users{$who}{HOSTS}{$mask} = 1; } $crypt = &mkcrypt($array[0]); $users{$who}{PASS} = $crypt; - &pSReply("new pass for $who, crypt $crypt."); + &performStrictReply("new pass for $who, crypt $crypt."); return; } @@ -231,7 +229,7 @@ sub process { # User Processing, for all users. if ($addressed) { my $retval; - return 'returned from pCH' if &parseCmdHook("main",$message); + return 'SOMETHING parseCmdHook' if &parseCmdHook($message); $retval = &userCommands(); return unless (defined $retval); @@ -265,7 +263,7 @@ sub process { # customized random message. my $tmp = (rand() < 0.5) ? ", $who" : ""; - &pSReply( &getRandom(keys %{ $lang{'hello'} }) . $tmp ); + &performStrictReply( &getRandom(keys %{ $lang{'hello'} }) . $tmp ); return; } @@ -300,7 +298,7 @@ sub process { # karma. set... if ($msgType =~ /public/i && $message =~ /^(\S+)(--|\+\+)\s*$/ && - $addressed && &hasParam("karma") + $addressed && &IsChanConfOrWarn("karma") ) { # to request factoids such as "g++" or "libstdc++", append "?" to the query. my ($term,$inc) = (lc $1,$2); @@ -331,10 +329,6 @@ sub process { # here's where the external routines get called. # if they return anything but null, that's the "answer". if ($addressed) { - if ( &parseCmdHook("extra",$message) ) { - return 'DID SOMETHING IN PCH.'; - } - my $er = &Modules(); if (!defined $er) { return 'SOMETHING 1'; @@ -342,7 +336,7 @@ sub process { # allow administration of bot via messages (default is DCC CHAT only) if (&IsFlag("A")) { - &loadMyModule( $myModules{'ircdcc'} ); + &loadMyModule('UserDCC'); $er = &userDCC(); if (!defined $er) { return 'SOMETHING 2'; @@ -355,7 +349,7 @@ sub process { } } - if (&IsParam("factoids") and $param{'DBType'} =~ /^(mysql|sqlite|pgsql)/i) { + if (&IsParam("factoids") and $param{'DBType'} =~ /^(mysql|sqlite(2)?|pgsql)$/i) { &FactoidStuff(); } elsif ($param{'DBType'} =~ /^none$/i) { return "NO FACTOIDS.";