Provided by: manderlbot_0.9.3-2_all bug

NAME

       manderlbot.conf - Configuring the manderlbot IRC robot.

DESCRIPTION

       manderlbot  is  an  irc  bot aimed at saying idioties or doing some little searches on the
       internet. It is not an eggdrop bot.

CONFIGURATION

       The configuration file is an XML file containing the following elements:

       manderlbot
              the opening XML element of the configuration, it contains the properties  name  and
              controler.  The name will be shown as the bot fullname, the controller property may
              contain one or more nicknames separated by spaces, only those people will  then  be
              allowed to operate on the running bot from irc channel.

              All the following sections, otherwise stated, are to be found under this one.

       dict   is  the  section  where  to  define the dictionnary server you may want to use. See
              dict.org for details about the protocol and servers. Be aware that you  can  run  a
              dict server locally, and download some useful dictionnaries.

              The  properties  to define here are the dict server host, the port, and the default
              dictionnary to use.

       server allows you to define which servers manderlbot should connect to. The properties are
              host  and  port.  You have to define a server section for each and every irc server
              you want manderlbot to connect to.

       channel
              section is where to configure the manderlbot behaviour and name. This  section  has
              to  be embedded in the server one. You have to define a channel section per channel
              you want manderlbot to join on a server.

              The properties of  channel  section  are  name,  the  channel  name,  botname,  the
              manderlbot  nickname on that channel, and behaviours, a list of behaviours name you
              want to activate for that channel.

       behaviours
              will just contain your behaviour list

       behaviour
              have to be found under the behaviours section.  You  define  here  your  behaviour,
              which  properties  are name, the name to use in the channel definition, the action,
              defining what will be done, and one or more of  the  followings  pattern  elements:
              pattern, op, to, option and from. You can even prefix those properties with exl_ to
              get an exclude pattern match (see [XRef to MATCH]>).

              This element contains data wich will be used as the action parameter, as explain in
              section [sub:Implemented-actions].

BEHAVIOUR MATCHING

       So  when you define a behaviour, you want manderlbot to react on some event on irc channel
       it is connected to, and take some action. Here we see how to define the event you want  it
       to  react  to.  As on irc all you do is sending lines of text, an event as to be text line
       oriented.

       So  manderlbot   configuration   allows   you   to   define   some   Regular   Expressions
       <URL:http://www.regular-expressions.info>  to  match  the  lines  received. If the line is
       matched, the associated action is done. Please note the regexp  are  all  considered  case
       insensitive ones.

       You  can  define  some regexp on the following parts of the received line (containing some
       server informations relative to IRC protocol <URL:http://www.faqs.org/rfcs/rfc1459.html>):

       pattern
              will try to match the user input, that is what your ordinary irc client  will  show
              you

       op     will  try to match the irc operation, see the RFC for complete list (op can be kick
              or join for example)

       to     irc protocol field, will probably contain the  channel  name,  so  you  won't  need
              that...

       option irc protocol option field

       from   the   nickname   of   the   one   who   typed   the   current  line,  on  the  form
              nick!~user@host.domain.tld

       And in order to make it even more powerful and readable, you can define the same  patterns
       with  an  'exl_' prefix, this will prevent the action to being taken if it matches. So you
       can define the parameters exl_pattern, exl_op, exl_to, exl_option and exl_from.

       Of course, you can use any combination of the listed parameters, thus being quite  precise
       on what you want to react to.

IMPLEMENTED ACTIONS

       The  action  parameter  of  the  behaviour  configuration  element  defines the manderlbot
       behaviour on matching a line. Here is a list of provided actions you can use.  If you want
       manderlbot  to  take an action not described here, you will have to write some erlang code
       to teach him what you want!

       The argument of the action is the xml data given enclosed in the behaviour element.

       action send the given argument as if manderlbot had typed it after the /me irc command.

       answer send the line prefixed with the sender name and a colon.

       bloto  this will count the matched lines per user, and first obtaining 5  points  has  won
              the business loto game. Just define your buzzwords set and make it a regexp!

       debian_file
              will  search  the irc given file using the debian web site cgi. The argument is not
              used.

       debian_pkg
              will search the irc given package using the debian web site cgi.  The  argument  is
              not used.

       dict   will  ask  your  defined  dict  server  for the given word. The argument may be the
              dictionnary name to use in the query, but defaults to the 'default'  entry  of  the
              dict config element.

       google will ask google for the rest of the irc line. The argument is not used.

       mute   mute will mute the bot, you have to be a controler to use that. The argument is not
              used.

       pyramid
              pyramid is a game named after a french TV game. You have to make guess a  world  to
              an  irc  fellow  on  that  channel, in a given number or tries. The argument is not
              used.

       random will say one of the sentences listed in the arguments randomly. The sentences  have
              to be separated by '%' signs.

       fortune
              same  behaviour as random, but this time the argument is the name of a traditionnal
              separate fortune file.

       reconf will ask the bot to re-read its configuration. It allows you to handle  dynamically
              your  configuration, no need to restart the bot, and irc control! You have to be in
              the controler list to use this action.

       rejoin allows you te rejoin a channel (useful on kick, just add a op="kick"  parameter  to
              the behaviour element definition).

       say    say will say the arguments.

       timer  will  say  the  first  argument,  then  wait  for  a random time, and say the other
              arguments. The args have to be separated bu a '%' char.

INTERACTING WITH THE RUNNING BOT, FROM IRC

       You can use the reconf and mute actions to control the bot from irc, and  you  define  who
       can do that in the first configuration element, with the controler property.

EXAMPLE

       Please see the given configuration file, in /etc/manderlbot/config.xml.

HISTORY

       But why did we wrote this software ?

       Well,  I  wanted  an  irc  bot  to  play  with,  in order to have it say some silly things
       automatically on answer to our own idioties.  I  did  not  want  an  eggdrop  or  whatever
       controlling channel bot. I saw that manderlbot project existing, was already familiar with
       erlang developpment, so I began using it.

       The existing project was on early stage of development, and I wanted the bot  to  do  more
       and  more  things.  So  I wrote some code to make it fit my needs. As the original authors
       would not consider my patches, I forked the project, keeping the name (they seemed not  to
       work on their version at all), and hosting it on the TuxFamily services.

AUTHORS

       manderlbot  was  written  by  Dimitri  Fontaine  <dim@tuxfamily.org> and Nicolas Niclausse
       <nico@niclux.org>.

                                            Avril 2004                         MANDERLBOT.CONF(5)