Git Product home page Git Product logo

bot-cobalt's Introduction

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 cobalt IRC bot, which was originally a Perl remiplementation of Jason Hamilton's 90s-era darkbot.

Bot::Cobalt provides 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 Bot::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::Relay -- Cross-network relay

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 [email protected]

http://www.cobaltirc.org

Licensed under the same terms as Perl.

bot-cobalt's People

Contributors

avenj avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.