Script Information
SphereBot is one of my more ongoing projects, although I haven't had much time for IRC as much lately, so I've taken a break from development for an undetermined amount of time.
SphereBot is an IRC bot written in Perl, designed to be completely modular. Not only is it modular, the modules can be written in any language that can read environment variables (or use the deprecated method of ARGV variables), and write to STDOUT. (Basically a CGI-like interface.)
SphereBot is the successor to
BoxBot. The modules can be bound to any IRC event, usually by use of regexes, but in actuality it can be done with any Perl one-liner.
Various revisions of the bot are known to be actively in use on
AppliedIRC∞ (#snoopy) and
mWtNet∞ (#naughty), amongst other places. Modules for this bot are contributed by several members of
mWtNet∞,
Xelix∞ and
00Net (now part of
AppliedIRC∞). They are written in everything from Perl and PHP to Java (JRE required for use) and C. For information on a specific module, contact me, and I'll be glad to get you the module dev's info (it may also be in the comments for the source of the module itself - newer modules may also have a <modulename>.meta.sphr file with the developer's metadata in it). In addition, some modules may be specific to the channels/networks they are running on, and may never appear in the releases even if you have seen it in operation on a given network or channel.
The latest downloadable release of
SphereBot and the original modules are available - see the link in the box above - however you may see newer versions of this running out on the internet. These are unstable, non-publicly released versions made available to specific people for testing purposes. (Please see the included readme for use & development.)
Backslash bug - I have recently become aware of a bug affecting
SphereBot's escaping when passing data from IRC to modules, that ends up leaving a trailing '\' hanging on the end of the script parameters passed to a module. So far I've only heard about it occurring in default Perl installs under Ubuntu, but it is likely to effect some other configurations as well.
How do you know if it effects you? Easy. Load the 'raw' module and as an administrator for the bot, issue this command:
-raw PRIVMSG #channel :Test message.
(using your channel instead of #channel, and your prefix instead of -, obviously.)
If your response looks like
<SphereBot> Test message., you are
not effected.
If your reponse looks like
<SphereBot> Test message.\, then you are effected by this bug.
To fix it, open
functions/irc_functions.pl and head towards lines 244-247:
$cmd =~
s/\
[\@
(.*?
)\:
(.*?
)\
]/$$
1{$
2}/ig;
$cmd =~
s/\
[\%
(.*?
)\
]/$$
1/ig;
Add beneath the final listed above:
Save the file & restart the bot. Problem should be sorted.
I'll update the tarball at some point with this, but I don't have time right now.
See also:
SphereBotReadme,
SphereBotModules
Categories:
CategoryHiatus,
CategoryStable