view README @ 274:fa5375057658

fixed an UnboundLocalError in Bridge._xmpp_join_callback Signed-off-by: Charly COSTE <changaco@changaco.net>
author Charly COSTE <changaco@changaco.net>
date Tue, 13 Apr 2010 11:46:02 +0200
parents 8d01d0597950
children
line wrap: on
line source

> Introduction

If you want/need a fail-safe bot, don't use this one !

Here is the list of things that still need to be implemented:
- internationalization
- handle cross-protocol kicks
- split logs into multiple files
- handle password-protected rooms

xib includes its own version of the old irclib.py <http://python-irclib.sourceforge.net/> because this library doesn't correctly handle the different character encodings, I'm sorry about it but I don't have time to contribute to the upstream version right now, I don't know if it still has developers anyway


> xib dependencies:
- python 2.6
- xmppony 0.1
- argparse (added in xib 0.2 for the new command system)


> Contributors:
Changaco <changaco@changaco.net>


> Changelog:
0.3:
 - new mode "bypass", this allows to connect more than one bot for each IRC server without having so many nickname conflicts that the bot looks like it is in limited mode
 - new bridge attribute "irc_connection_interval" (in seconds)
 - removed automatic switching to limited mode
 - fixed the "halt" command
 - created 6 commands:
   - change-bridges-mode
   - connections
   - irc-connections
   - xmpp-connections
   - debug
   - stop-bot
 - renamed and modified 3 commands:
   - remove-bridge → remove-bridges
   - restart-bridge → restart-bridges
   - stop-bridge → stop-bridges
 - improved the quality of the code
 - finally, as usual, fixed many bugs and introduced new ones
0.2:
 - fixed many many bugs
 - new command system
 - rejoin on kick and leave on ban
 - added an ugly ping mechanism to keep the connections open
 - don't create an XMPP duplicate of ChanServ
 - "/me" handling
 - split long messages when sending on IRC
0.1.1:
 - fixed bug that prevented the bot from connecting to freenode and all other servers that don't send "umode"
 - added optional parameter to start_bots_from_xml_config.py
0.1: Initial release


> How to install and run xib bots:

If you are not installing xib from a package manager I suggest you put the files in /usr/local/share/xib
To start xib bots just execute "start_bots_from_xml_config.py", this script takes the path to a configuration file as optional first parameter, if no such parameter is given it will search the *current* directory for a file named "config.xml".


> How to write a configuration file understandable by "start_bots_from_xml_config.py":

Copy "example_config.xml" and modify it to fit your needs.


> The different modes of the xib bots:

"mode" is a per-bridge attribute, it can take three values:
- 'normal':
The bot connects on IRC on behalf of XMPP users and connects on XMPP on behalf of IRC users.
- 'bypass':
The bot connects on IRC on behalf of XMPP users and connects on XMPP on behalf of IRC users.
If a nickname is already used the bot tries to connect with a slightly different nickname, adding a "_" to the original nickname.
- 'limited':
The bot only connects on XMPP on behalf of IRC users but NOT on IRC on behalf of XMPP.
- 'minimal':
The bot does not connect on behalf of the participants.


> Configure what the bot says on rooms:

"say_level" is a per-bridge attribute, it can take 6 values, each value contains the ones below itself:
- 'all', default value, say everything
- 'info', contains participants' joining and leaving events in limited and minimal modes
- 'notice'
- 'warning', contains nickname conflicts and everything that is not fatal to the bridge
- 'error'
- 'nothing', don't say a word


> How to log xib bots output:

xib does not directly handle logging for now so you have to do it the old school way, for example:
mkdir /var/log/xib
touch /var/log/xib/1.log
cd /usr/local/share/xib && ./start_bots_from_xml_config.py 1>/var/log/xib/log 2>&1 &