]> git.donarmstrong.com Git - infobot.git/blobdiff - src/CommandStubs.pl
cleanup dict
[infobot.git] / src / CommandStubs.pl
index 1deef1401b194191ce84aa629f013c1e167a0657..ec45ff7ef406f78e6a11657ab5609e7b4f437f7b 100644 (file)
@@ -3,7 +3,8 @@
 # WARN: this file does not reload on HUP.
 #
 
-# use strict;  # TODO
+# TODO:
+# use strict;
 
 use vars qw($who $msgType $conn $chan $message $ident $talkchannel
        $bot_version $babel_lang_regex $bot_data_dir);
@@ -13,14 +14,13 @@ use vars qw(%channels %cache %mask %userstats %myModules %cmdstats
 # FIX THE FOLLOWING:
 use vars qw($total $x $type $i $good);
 
-$babel_lang_regex = "fr|sp|es|po|pt|it|ge|de|gr|en|zh|ja|jp|ko|kr|ru";
+$babel_lang_regex = "de|ge|gr|el|sp|es|en|fr|it|ja|jp|ko|kr|nl|po|pt|ru|zh|zt";
 $w3search_regex   = "google";
 
 ### COMMAND HOOK IMPLEMENTATION.
 # addCmdHook("SECTION", 'TEXT_HOOK',
-#      (CODEREF        => 'Blah', 
+#      (CODEREF        => 'Blah',
 #      Forker          => 1,
-#      CheckModule     => 1,                   # ???
 #      Module          => 'blah.pl'            # preload module.
 #      Identifier      => 'config_label',      # change to Config?
 #      Help            => 'help_label',
@@ -184,20 +184,20 @@ sub parseCmdHook {
 &addCmdHook("extra", 'd?find', ('CODEREF' => 'Debian::DebianFind',
        'Forker' => 1, 'Identifier' => 'debian',
        'Cmdstats' => 'Debian Search', 'Help' => "find" ) );
-#&addCmdHook("extra", 'insult', ('CODEREF' => 'Insult::Insult',
-#      'Forker' => 1, 'Identifier' => 'insult', 'Help' => "insult" ) );
+&addCmdHook("extra", 'insult', ('CODEREF' => 'Insult::Insult',
+       'Forker' => 1, 'Identifier' => 'insult', 'Help' => "insult" ) );
 &addCmdHook("extra", 'kernel', ('CODEREF' => 'Kernel::Kernel',
        'Forker' => 1, 'Identifier' => 'kernel',
        'Cmdstats' => 'Kernel', 'NoArgs' => 1) );
 &addCmdHook("extra", 'listauth', ('CODEREF' => 'CmdListAuth',
-       'Identifier' => 'search', Module => 'factoids', 
+       'Identifier' => 'search', Module => 'factoids',
        'Help' => 'listauth') );
 &addCmdHook("extra", 'quote', ('CODEREF' => 'Quote::Quote',
        'Forker' => 1, 'Identifier' => 'quote',
        'Help' => 'quote', 'Cmdstats' => 'Quote') );
-&addCmdHook("extra", 'countdown', ('CODEREF' => 'Countdown',
+&addCmdHook("extra", 'countdown', ('CODEREF' => 'countdown',
        'Module' => 'countdown', 'Identifier' => 'countdown',
-       'Cmdstats' => 'Countdown') );
+       'Cmdstats' => 'countdown') );
 &addCmdHook("extra", 'lart', ('CODEREF' => 'lart',
        'Identifier' => 'lart', 'Help' => 'lart') );
 &addCmdHook("extra", 'convert', ('CODEREF' => 'convert',
@@ -212,8 +212,8 @@ sub parseCmdHook {
        'Identifier' => 'rootWarn', 'Module' => 'rootwarn') );
 &addCmdHook("extra", 'seen', ('CODEREF' => 'seen', 'Identifier' =>
        'seen') );
-&addCmdHook("extra", 'dict', ('CODEREF' => 'Dict::Dict',
-       'Identifier' => 'dict', 'Help' => 'dict',
+&addCmdHook("extra", 'Dict', ('CODEREF' => 'Dict::Dict',
+       'Identifier' => 'Dict', 'Help' => 'dict',
        'Forker' => 1, 'Cmdstats' => 'Dict') );
 &addCmdHook("extra", 'slashdot', ('CODEREF' => 'Slashdot::Slashdot',
        'Identifier' => 'slashdot', 'Forker' => 1,
@@ -228,12 +228,18 @@ sub parseCmdHook {
 &addCmdHook("extra", 'weather', ('CODEREF' => 'Weather::Weather',
        'Identifier' => 'weather', 'Help' => 'weather',
        'Cmdstats' => 'weather', 'Forker' => 1) );
+&addCmdHook("extra", 'metar', ('CODEREF' => 'Weather::Metar',
+       'Identifier' => 'weather', 'Help' => 'weather',
+       'Cmdstats' => 'weather', 'Forker' => 1) );
 &addCmdHook("extra", 'bzflist', ('CODEREF' => 'BZFlag::list',
-       'Identifier' => 'bzflag', 'Cmdstats' => 'BZFlag',
+       'Identifier' => 'BZFlag', 'Cmdstats' => 'BZFlag',
+       'Forker' => 1) );
+&addCmdHook("extra", 'bzflist17', ('CODEREF' => 'BZFlag::list17',
+       'Identifier' => 'BZFlag', 'Cmdstats' => 'BZFlag',
        'Forker' => 1) );
 &addCmdHook("extra", 'bzfquery', ('CODEREF' => 'BZFlag::query',
-       'Identifier' => 'bzflag', 'Cmdstats' => 'BZFlag',
-       'Forker' => 1, 'Help' => 'bzflag') );
+       'Identifier' => 'BZFlag', 'Cmdstats' => 'BZFlag',
+       'Forker' => 1) );
 &addCmdHook("extra", 'zfi', ('CODEREF' => 'zfi::query',
        'Identifier' => 'zfi', 'Cmdstats' => 'zfi',
        'Forker' => 1) );
@@ -248,7 +254,18 @@ sub parseCmdHook {
        'Forker' => 1) );
 &addCmdHook("extra", '(botmail|message)', ('CODEREF' => 'botmail::parse',
        'Identifier' => 'botmail', 'Cmdstats' => 'botmail') );
-
+&addCmdHook("extra", 'HTTPDtype', ('CODEREF' => 'HTTPDtype::HTTPDtype',
+       'Identifier' => 'HTTPDtype', 'Cmdstats' => 'HTTPDtype',
+       'Forker' => 1) );
+&addCmdHook("extra", 'rss', ('CODEREF' => 'Rss::Rss',
+       'Identifier' => 'rss', 'Cmdstats' => 'rss',
+       'Forker' => 1, 'Help' => 'rss') );
+&addCmdHook("extra", 'wiki(pedia)?', ('CODEREF' => 'wikipedia::wikipedia',
+       'Identifier' => 'wikipedia', 'Cmdstats' => 'wikipedia',
+       'Forker' => 1, 'Help' => 'wikipedia') );
+&addCmdHook("extra", 'page', ('CODEREF' => 'pager::page',
+       'Identifier' => 'pager', 'Cmdstats' => 'pager',
+       'Forker' => 1, 'Help' => 'page') );
 ###
 ### END OF ADDING HOOKS.
 ###
@@ -260,7 +277,7 @@ sub Modules {
        return;
     }
 
-    # babel bot: Jonathan Feinberg++
+    # babelfish bot: Jonathan Feinberg++
     if ($message =~ m{
                ^\s*
                (?:babel(?:fish)?|x|xlate|translate)
@@ -273,13 +290,13 @@ sub Modules {
     }xoi) {
        return unless (&hasParam("babelfish"));
 
-       &Forker("babelfish", sub { &babel::babelfish(lc $1, lc $2, $3); } );
+       &Forker("babelfish", sub { &babelfish::babelfish(lc $1, lc $2, $3); } );
 
        $cmdstats{'BabelFish'}++;
        return;
     }
 
-    my $debiancmd       = 'conflicts?|depends?|desc|file|d?info|provides?';
+    my $debiancmd       = 'conflicts?|depends?|desc|file|(?:d)?info|provides?';
     $debiancmd         .= '|recommends?|suggests?|maint|maintainer';
 
     if ($message =~ /^($debiancmd)(\s+(.*))?$/i) {
@@ -296,7 +313,7 @@ sub Modules {
     }
 
     # google searching. Simon++
-    if ($message =~ /^(?:search\s+)?($w3search_regex)\s+for\s+['"]?(.*?)["']?\s*\?*$/i) {
+    if ($message =~ /^(?:search\s+)?($w3search_regex)\s+(?:for\s+)?['"]?(.*?)["']?\s*\?*$/i) {
        return unless (&hasParam("wwwsearch"));
 
        &Forker("wwwsearch", sub { &W3Search::W3Search($1,$2); } );
@@ -642,6 +659,7 @@ sub lart {
     my ($target) = &fixString($_[0]);
     my $extra  = 0;
     my $chan   = $talkchannel;
+    my ($for);
 
     if ($msgType eq 'private') {
        if ($target =~ /^($mask{chan})\s+(.*)$/) {
@@ -654,6 +672,10 @@ sub lart {
            return;
        }
     }
+    if ($target =~ /^(.*)(\s+for\s+.*)$/) {
+       $target = $1;
+       $for    = $2;
+    }
 
     my $line = &getRandomLineFromFile($bot_data_dir. "/blootbot.lart");
     if (defined $line) {
@@ -662,6 +684,7 @@ sub lart {
        } else {
            $line =~ s/WHO/$target/g;
        }
+       $line .= $for if ($for);
        $line .= ", courtesy of $who" if ($extra);
 
        &action($chan, $line);
@@ -847,7 +870,7 @@ sub do_text_counters {
     if (!defined $arg or $arg =~ /^\s*$/) {
        # this is way fucking ugly.
 
-       # TODO convert $where to hash
+       # TODO: convert $where to hash
        my %hash = &sqlSelectColHash("stats", "nick,counter",
                        { },
                        $where." ORDER BY counter DESC LIMIT 3", 1
@@ -875,7 +898,7 @@ sub do_text_counters {
            &pSReply("zero counter for \037$type\037.");
        }
     } else {
-       # TODO convert $where to hash and use a sqlSelect
+       # TODO: convert $where to hash and use a sqlSelect
        my $x = (&sqlRawReturn("SELECT SUM(counter) FROM stats".
                        " WHERE $where AND nick=".&sqlQuote($arg) ))[0];
 
@@ -885,7 +908,7 @@ sub do_text_counters {
        }
 
        # defined.
-       # TODO convert $where to hash
+       # TODO: convert $where to hash
        my @array = &sqlSelect("stats", "nick", undef,
                        $where." ORDER BY counter", 1
        );
@@ -959,7 +982,7 @@ sub textstats_main {
        return;
     }
 
-    # TODO add nick to where_href
+    # TODO: add nick to where_href
     my %hash = &sqlSelectColHash("stats", "type,counter",
                $where_href, " AND nick=".&sqlQuote($arg)
     );
@@ -972,7 +995,7 @@ sub textstats_main {
     foreach (keys %hash) {
        &DEBUG("_stats: hash{$_} => $hash{$_}");
        # ranking.
-       # TODO convert $where to hash
+       # TODO: convert $where to hash
        my @array = &sqlSelect("stats", "nick", undef,
                $where." ORDER BY counter", 1);
        $good = 0;
@@ -1006,7 +1029,11 @@ sub textstats_main {
     &pSReply("\002$arg\002 has said \037$type\037 \002$x\002 times (\002$pct1\002 %)$xtra");
 }
 
-sub nullski { my ($arg) = @_; return unless (defined $arg);
-       foreach (`$arg`) { &msg($who,$_); } }
+sub nullski {
+    my ($arg) = @_;
+    return unless (defined $arg);
+    # big security hole
+    #foreach (`$arg`) { &msg($who,$_); }
+}
 
 1;