Home > bot-gumbynet

bot-gumbynet

Bot-gumbynet is a project mainly written in Perl, it's free.

(perl) The GumbyNET bot code

GumbyNET:

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.

Requirements:

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.

Installation:

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 -p < ./database.sql

Connect to the database, and create an entry in BotConfig table for your bot.

$ mysql -u -p

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 = USER = the user to connect to the dsn as PASS = the password to use to connect to the dsn OWNER = the full identity of the IRC user who will own this pesky bot. Wildcards '' are supported. eq. Jimmy!@*.somenetwork.com BOUNCER = the bindport for the Bouncer plugin CONSOLE = the bindport for the console plugin

Start the bot:

./GumbyNET.pl --nick=

Plugin Usage:

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

  • loads the plugin plugin_del - deletes the plugin plugin_reload - reloads the plugin plugin_list - List all loaded plugins including unmanaged plugins plugin_loaded - Only list managed plugins

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.

Copyright:

(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.

Previous:sabun