bot-basicbot-pluggable - A standard Bot::BasicBot::Pluggable
script
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.
bot-basicbot-pluggable --nick MyBot --server irc.perl.org
- --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.
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'
Mario Domgoergen <mdom@cpan.org>
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.