]> git.donarmstrong.com Git - infobot.git/blobdiff - src/CommandStubs.pl
dunno
[infobot.git] / src / CommandStubs.pl
index ae5c24f69eada9cc29f71d74dc45911d5e38d778..65dc132edcfd77e5913c1ae9eb8e81318aac09e2 100644 (file)
@@ -49,7 +49,7 @@ sub parseCmdHook {
 
     &shmFlush();
 
-    if ( !defined %cmdhooks ) {
+    if ( !%cmdhooks ) {
         &WARN('%cmdhooks does not exist.');
         return 0;
     }
@@ -182,17 +182,16 @@ sub Modules {
         return;
     }
 
-    # google searching. Simon++
-    my $w3search_regex = 'google';
+    # google searching -- thanks Brett Cave
     if ( $message =~
-        /^(?:search\s+)?($w3search_regex)\s+(?:for\s+)?['"]?(.*?)["']?\s*\?*$/i
+        /^(\s+)?google\s+['"]?(.*?)["']?\s*\?*$/i
       )
     {
-        return unless ( &IsChanConfOrWarn('W3Search') );
+        return unless ( &IsChanConfOrWarn('Google') );
 
-        &Forker( 'W3Search', sub { &W3Search::W3Search( $1, $2 ); } );
+        &Forker( 'Google', sub { &Google::GoogleSearch( $2 ); } );
 
-        $cmdstats{'W3Search'}++;
+        $cmdstats{'Google'}++;
         return;
     }
 
@@ -591,8 +590,14 @@ sub do_verstats {
         return;
     }
 
-    &msg( $who, "Sending CTCP VERSION to $chan; results in 60s." );
-    $conn->ctcp( 'VERSION', $chan );
+    &msg( $who,  "Sending CTCP VERSION to $chan; results in 60s." );
+    &msg( $chan, "WARNING: $who has forced me to CTCP VERSION the channel!" );
+
+    # Workaround for bug in Net::Irc, provided by quin@freenode. Details at:
+    # http://rt.cpan.org/Public/Bug/Display.html?id=11421
+    # $conn->ctcp( 'VERSION', $chan );
+    $conn->sl("PRIVMSG $chan :\001VERSION\001");
+
     $cache{verstats}{chan}    = $chan;
     $cache{verstats}{who}     = $who;
     $cache{verstats}{msgType} = $msgType;
@@ -618,7 +623,6 @@ sub do_verstats {
             my $vtotal = 0;
             my $c      = lc $cache{verstats}{chan};
             my $total  = keys %{ $channels{$c}{''} };
-            $chan    = $c;
             $who     = $cache{verstats}{who};
             $msgType = $cache{verstats}{msgType};
             delete $cache{verstats};    # sufficient?
@@ -651,8 +655,7 @@ sub do_verstats {
             }
 
             # hack. this is one major downside to scheduling.
-            $chan = $c;
-            &performStrictReply(
+            &msg($c,
                 &formListReply( 0, "IRC Client versions for $c ", @list ) );
 
             # clean up not-needed data structures.
@@ -669,12 +672,14 @@ sub verstats_flush {
         last unless ( scalar @vernicktodo );
 
         my $n = shift(@vernicktodo);
-        $conn->ctcp( 'VERSION', $n );
+        #$conn->ctcp( 'VERSION', $n );
+        # See do_verstats $conn->sl for explantaion
+        $conn->sl("PRIVMSG $n :\001VERSION\001");
     }
 
     return unless ( scalar @vernicktodo );
 
-    $conn->schedule( 3, \&verstats_flush() );
+    $conn->schedule( 3, \&verstats_flush );
 }
 
 sub do_text_counters {
@@ -780,12 +785,13 @@ sub do_text_counters {
 ###
 ### START ADDING HOOKS.
 ###
-&addCmdHook('(babel(fish)?|x|xlate|translate)', ('CODEREF' => 'babelfish::babelfish', 'Identifier' => 'babelfish', 'Cmdstats' => 'babelfish', 'Forker' => 1, 'Help' => 'babelfish', 'Module' => 'babelfish') );
+&addCmdHook('(x|xlate|translate)', ('CODEREF' => 'translate::translate', 'Identifier' => 'translate', 'Cmdstats' => 'translate', 'Forker' => 1, 'Help' => 'translate', 'Module' => 'translate') );
 &addCmdHook('(botmail|message)', ('CODEREF' => 'botmail::parse', 'Identifier' => 'botmail', 'Cmdstats' => 'botmail') );
 &addCmdHook('bzflist17', ('CODEREF' => 'BZFlag::list17', 'Identifier' => 'BZFlag', 'Cmdstats' => 'BZFlag', 'Forker' => 1, 'Module' => 'BZFlag') );
 &addCmdHook('bzflist', ('CODEREF' => 'BZFlag::list', 'Identifier' => 'BZFlag', 'Cmdstats' => 'BZFlag', 'Forker' => 1, 'Module' => 'BZFlag') );
 &addCmdHook('bzfquery', ('CODEREF' => 'BZFlag::query', 'Identifier' => 'BZFlag', 'Cmdstats' => 'BZFlag', 'Forker' => 1, 'Module' => 'BZFlag') );
 &addCmdHook('chan(stats|info)', ('CODEREF' => 'chaninfo', ) );
+&addCmdHook('conn(stats|info)', ('CODEREF' => 'conninfo', ) );
 &addCmdHook('cmd(stats|info)', ('CODEREF' => 'cmdstats', ) );
 &addCmdHook('convert', ('CODEREF' => 'convert', 'Forker' => 1, 'Identifier' => 'Units', 'Help' => 'convert') );
 &addCmdHook('(cookie|random)', ('CODEREF' => 'cookie', 'Forker' => 1, 'Identifier' => 'Factoids') );
@@ -834,9 +840,10 @@ sub do_text_counters {
 &addCmdHook('slashdot', ('CODEREF' => 'Slashdot::Slashdot', 'Identifier' => 'slashdot', 'Forker' => 1, 'Cmdstats' => 'slashdot') );
 &addCmdHook('tell|explain', ('CODEREF' => 'tell', Help => 'tell', Identifier => 'allowTelling', Cmdstats => 'Tell') );
 &addCmdHook('uc', ('CODEREF' => 'case::upper', 'Identifier' => 'case', 'Cmdstats' => 'case', 'Forker' => 1, 'Module' => 'case') );
+&addCmdHook('upsidedown', ('CODEREF' => 'upsidedown::upsidedown', 'Identifier' => 'upsidedown', 'Cmdstats' => 'upsidedown', 'Forker' => 1, 'Module' => 'upsidedown') );
 &addCmdHook('Uptime', ('CODEREF' => 'uptime', 'Identifier' => 'Uptime', 'Cmdstats' => 'Uptime') );
 &addCmdHook('u(ser)?info', ('CODEREF' => 'userinfo', 'Identifier' => 'UserInfo', 'Help' => 'userinfo', 'Module' => 'UserInfo') );
-&addCmdHook('verstats', ('CODEREF' => 'do_verstats' ) );
+&addCmdHook('verstats', ('CODEREF' => 'do_verstats', 'Identifier' => 'verstats', 'Help' => 'verstats', 'Cmdstats' => 'verstats') );
 &addCmdHook('Weather', ('CODEREF' => 'Weather::Weather', 'Identifier' => 'Weather', 'Help' => 'weather', 'Cmdstats' => 'Weather', 'Forker' => 1, 'Module' => 'Weather') );
 &addCmdHook('wiki(pedia)?', ('CODEREF' => 'wikipedia::wikipedia', 'Identifier' => 'wikipedia', 'Cmdstats' => 'wikipedia', 'Forker' => 1, 'Help' => 'wikipedia', 'Module' => 'wikipedia') );
 &addCmdHook('wtf', ('CODEREF' => 'wtf::query', 'Identifier' => 'wtf', 'Cmdstats' => 'wtf', 'Forker' => 1, 'Help' => 'wtf', 'Module' => 'wtf') );