view README @ 192:12fa9bb73b1d

check connection in Bridge.say(), use Bridge.say() in Participant.sayOn{IRC,XMPP}() Signed-off-by: Charly COSTE <changaco@changaco.net>
author Charly COSTE <changaco@changaco.net>
date Sun, 21 Feb 2010 14:51:14 +0100
parents 7af07b7bf6fd
children 8d01d0597950
line wrap: on
line source

> Introduction

This is the first release of xib so some things are not implemented yet, if you want/need an error-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 &