Cobalt
cobalt
| |
---|---|
Author(s): | avenj |
Programming language: | Perl |
Platform: | Unix |
Status: | Active/Development |
License: | GNU General Public License v2 |
Homepage: | http://www.cobaltirc.org/dev/bots |
Cobalt is a pluggable IRC bot framework, tying a multi-server IRC interface into a plugin pipeline, configuration manager, database and serialization interfaces, and other useful tools.
The core Cobalt plugin set includes most of the functionality of Jason Hamilton's abandoned DarkBot, with a vast number of improvements.
It's written from the ground up using POE::Component::IRC and POE::Component::Syndicator.
The original cobalt (1.x) is deprecated and no longer documented here. Conversion tools for cobalt1 data sets are bundled with 2.00_18 and newer.
As of this writing (17 Feb 2012), the 2.00 series is not considered release-ready.
Documentation
Documentation lives in "POD" embedded within the Cobalt distribution itself.
See: http://www.cobaltirc.org/docs/wiki/doku.php?id=bots:cobalt:docs:filelist
Features
Cobalt::Plugin::Info3
The Info3 plugin largely emulates DarkBot's 'info2' text triggers; triggers can be written using simple glob syntax. Responses can include variables or randomized responses (via Cobalt::Plugin::RDB).
With Info3 enabled, your bot can be used as an IRC help bot, a humanoid chatter-bot, a method of storing interesting bits of information, etc.
Cobalt::Plugin::RDB
RDBs provide databases of 'random stuff' that can be triggered on a timer or via Cobalt::Plugin::Info3 topic triggers.
The main RDB acts much like DarkBot's randstuff functionality.
Other Plugins
- Alarmclock.pm - Timed highlights/reminders
- Auth.pm - Flexible Auth system
- Games.pm - Interface a collection of silly games (!roll, !magic8, !rr, !rps ...)
- PluginMgr.pm - Plugin management via IRC
Cobalt::Plugin::Extras::
The core plugin set also includes a handful of useful modules in the Extras:: namespace, including:
- Karma.pm - Karma-bot
- Money.pm - Convert currencies
- Relay.pm - Multiplex chatter between IRC channels
- Shorten.pm - Shorten URLs on IRC via Metamark
- TempConv.pm - Convert temperatures between C, F, K
(List current as of Cobalt2.00_22)
Developer Tools
Cobalt::DB
Store and retrieve deep data structures.
Cobalt::Serializer
Easy object-oriented frontend to various serialization formats.
Cobalt::Utils
A collection of useful functions covering glob syntax manipulation, string formatting, secure password hashing via bcrypt, and others.
Cobalt::Plugin::WWW
Easy asynchronous HTTP support for plugins seeking to make Web requests without blocking.
Obtaining cobalt
As of this writing cobalt is in rapid development and primarily available via the development repository tool git
Most of the core set is in testing stages as of Cobalt 2.00_22.
Development discussion takes place on #eris (Blackcobalt)