NAME
Bot::Cobalt - IRC darkbot-alike plus plugin authoring sugar
SYNOPSIS
## Set up example confs and a simple ~/.cobalt2rc :
sh$ cobalt2-installer
## Get some assistance:
sh$ cobalt2 --help
## Launch in foreground:
sh$ cobalt2 --nodetach
## Launch in background:
sh$ cobalt2
DESCRIPTION
Bot::Cobalt is the second generation of the (previously not released on
CPAN) cobalt IRC bot.
Cobalt was originally a Perl reimplementation of Jason Hamilton's
darkbot (darkbot's last release was in 2001). Bot::Cobalt is a
much-improved (and CPAN-able!) revision, providing a pluggable IRC bot
framework coupled with a core set of plugins replicating classic darkbot
and Cobalt behavior.
The included plugin set provides a wide range of functionality; see
"Included plugins" below.
IRC connectivity and protocol details are handled via
POE::Component::IRC; the bot can comfortably manage multiple
servers/networks (referred to as "contexts").
Bot::Cobalt tries to be friendly to developers. The bridge to
POE::Component::IRC exists as a plugin and can be easily subclassed or
replaced entirely; see Bot::Cobalt::IRC.
Plugin authoring is intended to be as easy as possible. Modules are
included to provide simple frontends to IRC-related utilities, logging,
plugin configuration, asynchronous HTTP sessions, data serialization and
on-disk databases, and more. See Bot::Cobalt::Manual::Plugins for more
about plugin authoring.
Initializing a new instance
A Cobalt instance needs its own *etc/* and *var/* directories. With the
default frontend ("cobalt2"), these are specified in a simple 'rcfile'
for each particular instance.
sh$ cobalt2-installer
"cobalt2-installer" will ask some questions, initialize a new rcfile for
an instance and try to create the relevant directory layout with some
example configuration files.
You can, of course, run multiple instances with the default frontend;
each just needs its own rcfile:
sh$ cobalt2-installer --rcfile=${HOME}/cobalts/mycobalt.rc
sh$ cobalt2 --rcfile=${HOME}/cobalts/mycobalt.rc
After reviewing/editing the example configuration files, you should be
ready to try starting your Cobalt instance:
## Launch in foreground with verbose debug output:
sh$ cobalt2 --nodetach --debug
## Launch in background with configured log options:
sh$ cobalt2
Included plugins
The example "etc/plugins.conf" installed by "cobalt2-installer" has most
of these:
Bot::Cobalt::Plugin::Alarmclock -- IRC highlight timers
Bot::Cobalt::Plugin::Auth -- User authentication
Bot::Cobalt::Plugin::Games -- Simple IRC games
Bot::Cobalt::Plugin::Info3 -- Flexible text-triggered responses
Bot::Cobalt::Plugin::Master -- Simple bot control from IRC
Bot::Cobalt::Plugin::PluginMgr -- Load/unload plugins from IRC
Bot::Cobalt::Plugin::RDB -- "Random stuff" databases for quotebots or
randomized chatter on a timer
Bot::Cobalt::Plugin::Extras::CPAN -- Query MetaCPAN and Module::CoreList
Bot::Cobalt::Plugin::Extras::DNS -- DNS lookups
Bot::Cobalt::Plugin::Extras::Karma -- Karma bot
Bot::Cobalt::Plugin::Extras::Money -- Currency conversion via
WebServiceX
Bot::Cobalt::Plugin::Extras::Relay -- Cross-network relay
Bot::Cobalt::Plugin::Extras::Shorten -- Shorten URLs via Metamark
Bot::Cobalt::Plugin::Extras::TempConv -- Temperature units conversion
Extensions on CPAN
There are a few externally-distributed plugin sets available via CPAN:
Bot::Cobalt::Plugin::Calc -- Simple calculator
Bot::Cobalt::Plugin::RSS -- RSS feed aggregator
Bot::Cobalt::Plugin::Silly -- Very silly plugin set
For debugging or playing with Bot::Cobalt::DB databases, you may want to
have a look at Bot::Cobalt::DB::Term.
SEE ALSO
Bot::Cobalt::Manual::Plugins
Bot::Cobalt::Core
Bot::Cobalt::IRC
The core pieces of Bot::Cobalt are essentially sugar over these two POE
Components:
POE::Component::IRC
POE::Component::Syndicator (and Object::Pluggable)
Consult their documentation for all the gory details.
AUTHOR
Jon Portnoy
Licensed under the same terms as Perl.