Bot-gumbynet is a project mainly written in Perl, it's free.
(perl) The GumbyNET bot code
GumbyNET is an experimental POE::Component::IRC framework for testing PCI plugins.
The GumbyNET bot provides a controlling session which deals with starting an EasyDBI session, getting the stored configuration from database and then starting the initial connection to the IRC network. Everything else is then dealt with by the PCI plugins.
perl :) POE 1.005 POE::Component::IRC 6.06 Date::Format POE::Component::EasyDBI LWP CGI CGI::Simple XML::RSS Time::HiRes; Acme::POE::Acronym::Generator POE::Component::Server::SimpleHTTP POE::Component::RSSAggregator ( for aggrebot.pl ) MySQL database, for storage.
The bot requires a database for storage. Tested with MySQL 3.23.55, but it hopefully uses fairly standard SQL and PoCo-EasyDBI, so should work with other database backends. Your milage will vary :)
A database dump file is provided, 'database.sql'
Create a database and a user with full rights to that database.
Import the table structures.
$ mysql -u
Connect to the database, and create an entry in BotConfig table for your bot.
$ mysql -u
mysql> insert into BotConfig (NickName,IRCName,IRCServer,IRCPort,IRCUser) values ('LameBOT','LameBOT[tm]','irc.server.org',6667,'lamebot');
mysql> insert into BotChannels values ( 'LameBOT', '#Channel' );
The bot requires a configuration file, create a file called GumbyNET.cfg, values
in this file are specified as 'entry = whatever'
DSN =
Start the bot:
./GumbyNET.pl --nick=
All plugins are loaded via the PlugMan plugin. The specified bot owner can issue the following commands in any channel ( by addressing the bot ) or via privmsg to the bot.
plugin_add
Bouncer - Provides IRC bouncer type functionality. Listens on the specified bindport and emulates an IRC server. When IRC clients connect, the plugin registers them and automatically issues JOIN messages for all the currently active channels. Caveat: all IRC clients must register with the same nickname as the hosting IRC bot.
Has one public command 'bnc' which lists the currently connected sessions.
eq. LameBOT: bnc
Console - This plugin provides a console ( duh! ) to the bot session. Behold the glory of debug information! Issue commands! Caveat: commands must follow the syntax of PoCo-IRC events, ie. 'CTCP #Channel ACTION slaps an operator' Typing QUIT is not a good idea, unless you really mean it.
Connector - This plugin deals with gluing the bot to the specified IRC network. Once the bot has been initially joined to the IRC network, this handles all disconnects and makes sure that bot stays on that network.
Public - Provides a number of commands for people to pester the bot with. The bot must be directly addressed by name for them to work:
version - displays the current version of the running bot.
uptime - some connection information
stats - some vague information
time - the current time where the bot is installed
clock - see what time it is around the world ( uses an RSS source ).
slashdot - Get the latest Slashdot headlines.
Trust - Manages mask based +o, +h and +v of people. Uses Bender's trust system.
DNS - Query dns records.
CTCP - Deals with CTCP requests such as VERSION, etc.
(c)2005 Kidney BinGOs aka Chris Williams
This program may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details.