NAME

bot-basicbot-pluggable - A standard Bot::BasicBot::Pluggable script

VERSION

version 1.10

DESCRIPTION

This script acts as standard interface for Bot::BasicBot::Pluggable, a generic framework for writing pluggable IRC bots in perl. It enables the user to administrate a full-fledged bot without writing any perl code.

SYNOPSIS

bot-basicbot-pluggable --nick MyBot --server irc.perl.org

OPTIONS

--server

The server to connect to. Defaults to localhost.

--configfile FILE

Read config options from specified FILE. For a discussion of possible value and format refer to the section CONFIGFILE. The default to read the configfile found by Config::Find.

--logconfig FILE

The logging configuration will be read from the specified file. Please refer to Log::Log4perl::Config for its format. The parameter loglevel will be ignored if this options is supplied.

--loglevel LEVEL

Sets the bots loglevel to one of the following levels in decreasing order of output: trace, debug, info, warn, error or fatal. Defaults to warn.

--nick NICKNAME

Nickname to use. Defaults to basicbot.

--channel CHANNELNAME

Channel to connect to. This parameter may be provided several times. You do not have to prefix the channel name with a hash symbol, which would have to be escaped in shell. It's automatically added for you.

--password

Sets the admin password of the Auth module. This also loads the Auth module implicitly. Please be warned that this password will probably been seen on any process listing as on ps or top.

--module

Modules to load. This parameter may be provided several times. You can call --list-modules to get a list of all available modules. If you do not define any module via this option, Auth and Loader are loaded by default.

--list-modules

Lists all installed modules and exits afterwards. No bot is started.

--list-stores

Lists all installed storage modules and exits afterwards. No bot is started.

--store

Defines which storage module is used to save module settings. The default is Memory, which does not save any settings between sessions but does neither leave any files nor need any special settings.

This options take a string in the form key=value and can be specified multiple times. The value of the key type define which storage backend to load, all other parameters are passed to the object constructor as hash reference.

For example:

./bot --store type=Deep --store file=foo.deep

That command will create an Bot::BasicBot::Pluggable::Store::Deep object and pass file => 'foo.deep' to its constructor.

--charset

Charset to use for the bot. Defaults to utf8, but you can use any encoding listed in Encode. The IRC protocol doesn't define a specific character-set to use. This presents a big problem, because if you do not use the same as everybody else in the channel you just receive garbage.

--port

Port to connect to on target host. This defaults to the irc standard port 6667. You won't need to define this in most cases.

--command-line

The bot does not connect to any irc server, but will wait on stdin on commands from the user. This mode won't actually work with a lot of irc related modules like ChanOp.

CONFIGFILE

The bot read a configfile either found by Config::Find (usually named ~/.bot-basicbot-pluggable.yaml) or specified on the command line via --configfile on startup. The file should be a syntactical correct yaml file with a hash as its first level element. It understands every option listed above and the special settings parameter, which is a hash, where the keys are module names and the value is a hash of configurable module settings. Easier to show than to explain:

---
server: host
nick: bot
settings:
  Karma:
    self_ignore: 0
store:
  type: Deep
  file: foo.deep

All modules listed under settings are also loaded on startup.

Please remember that you have to escape hash (or pound) signs in YAML:

---
channel:
  - '#botzone'

AUTHOR

Mario Domgoergen <mdom@cpan.org>

SEE ALSO

Bot::BasicBot::Pluggable

COPYRIGHT & LICENSE

Copyright 2005-2009 Mario Domgoergen.

This program is free software; you can redistribute it and/or modify it under the terms of either:

  • the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or

  • the Artistic License version 2.0.