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. Logging facilities are provided by Log::Handler. AUTHOR Jon Portnoy Licensed under the same terms as Perl.