Difference between revisions of "Cobalt"

From IRC Wiki
Jump to navigation Jump to search
m (URL update)
(large-ish cobalt2 merge)
Line 8: Line 8:
}}
}}


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


'''Cobalt''' is a talkative IRC bot intended as a modern-day replacement for Jason Hamilton's abandoned [[DarkBot]].
The core '''Cobalt''' plugin set includes most of the functionality of Jason Hamilton's abandoned [[DarkBot]], with a vast number of improvements.


'''Cobalt''' can respond to channel chatter with any string you like. By defining 'topics' using a simple wildcard syntax, '''cobalt''' can be made to be whatever you like; an IRC help bot, a human-like chatter bot, a quote-bot, or could perhaps just serve up bits of information you'd like to be able to easily reference on IRC. Topic responses can be randomized (via RDB) and may include a lengthy list of variables.
It's written from the ground up using [http://search.cpan.org/perldoc?POE::Component::IRC POE::Component::IRC] and [http://search.cpan.org/perldoc?POE::Component::Syndicator POE::Component::Syndicator].


It's written from the ground up using [http://search.cpan.org/perldoc?POE::Component::IRC POE::Component::IRC] and borrows no code at all from Darkbot.
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.


==Features==
==Features==
* Can speak in response to chat or randomly; responses can be very flexible (or even randomized)
 
* Online user management
===Cobalt::Plugin::Info3===
* [[DarkBot]] data file compatibility (info2.db, randomstuff.ini, RDBs)
 
* SSL support via POE::Component::SSLify
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'').
* Simple XML-based configuration
 
* Pluggable language sets
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
* 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==
==Obtaining cobalt==
Line 28: Line 74:
As of this writing '''cobalt''' is in rapid development and primarily available via the development repository tool '''git'''
As of this writing '''cobalt''' is in rapid development and primarily available via the development repository tool '''git'''


Snapshots of known-working git tags are made available via the above link.
Most of the core set is in testing stages as of '''Cobalt 2.00_22'''.


Development discussion takes place on '''#eris''' ([[Blackcobalt]])
Development discussion takes place on '''#eris''' ([[Blackcobalt]])

Revision as of 20:41, 17 February 2012

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.

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
  • 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)