# use strict;
use vars qw($who $msgType $conn $chan $message $ident $talkchannel
- $bot_version $babel_lang_regex $bot_data_dir);
+ $bot_version $bot_data_dir);
use vars qw(@vernick @vernicktodo);
use vars qw(%channels %cache %mask %userstats %myModules %cmdstats
%hooks_extra %lang %ver);
# FIX THE FOLLOWING:
use vars qw($total $x $type $i $good);
-$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',
# Forker => 1,
-# CheckModule => 1, # ???
# Module => 'blah.pl' # preload module.
# Identifier => 'config_label', # change to Config?
# Help => 'help_label',
&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", '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',
'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,
'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',
+ '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) );
'Forker' => 1) );
&addCmdHook("extra", '(botmail|message)', ('CODEREF' => 'botmail::parse',
'Identifier' => 'botmail', 'Cmdstats' => 'botmail') );
-&addCmdHook("extra", 'httpdtype', ('CODEREF' => 'HTTPDtype::HTTPDtype',
- 'Identifier' => 'httpdtype', 'Cmdstats' => 'httpdtype',
+&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') );
+&addCmdHook("extra", '?:babel(?:fish)?|x|xlate|translate', ('CODEREF' => 'babelfish::babelfish',
+ 'Identifier' => 'babelfish', 'Cmdstats' => 'babelfish',
+ 'Forker' => 1, 'Help' => 'babelfish') );
###
### END OF ADDING HOOKS.
###
return;
}
- # babel bot: Jonathan Feinberg++
- if ($message =~ m{
- ^\s*
- (?:babel(?:fish)?|x|xlate|translate)
- \s+
- ($babel_lang_regex)\w* # from language?
- \s+
- ($babel_lang_regex)\w* # to language?
- \s*
- (.+) # The phrase to be translated
- }xoi) {
- return unless (&hasParam("babelfish"));
-
- &Forker("babelfish", sub { &babel::babelfish(lc $1, lc $2, $3); } );
-
- $cmdstats{'BabelFish'}++;
- return;
- }
-
my $debiancmd = 'conflicts?|depends?|desc|file|(?:d)?info|provides?';
$debiancmd .= '|recommends?|suggests?|maint|maintainer';
my ($target) = &fixString($_[0]);
my $extra = 0;
my $chan = $talkchannel;
+ my ($for);
if ($msgType eq 'private') {
if ($target =~ /^($mask{chan})\s+(.*)$/) {
return;
}
}
+ if ($target =~ /^(.*)(\s+for\s+.*)$/) {
+ $target = $1;
+ $for = $2;
+ }
my $line = &getRandomLineFromFile($bot_data_dir. "/blootbot.lart");
if (defined $line) {
} else {
$line =~ s/WHO/$target/g;
}
+ $line .= $for if ($for);
$line .= ", courtesy of $who" if ($extra);
&action($chan, $line);