Update of /cvsroot/pybot/pybot
In directory sc8-pr-cvs1:/tmp/cvs-serv11687
Added Files:
README
Log Message:
Created basic README file.
--- NEW FILE: README ---
What is pybot?
--------------
Pybot is a full featured IRC bot written in Python. It was originally
developed to integrate many sources of information into IRC channels,
and has since then evolved into a full featured bot.
Requirements
------------
Pybot requires the sqlite (http://sqlite.org) SQL database library,
and its python module (http://pysqlite.sf.net).
End user features
-----------------
- easy administration through local console;
- may join multiple servers and multiple channels at once
(implemented without threads);
- full online control (just talk to him);
- load, reload and unload modules at runtime;
- flexible user registry, allowing automatic identification and
manual identification under different nicks;
- very flexible permission system;
- full online help;
- auto recover from network errors;
- flood protection;
- auto timming of messages to avoid being kicked by the server.
- lots of additional functionalities through available modules;
- even basic functionality is implemented using modules;
- random answers, to humanify the bot a little bit;
- persistence implemented with transparent pickling and sqlite
database;
Developer features
------------------
- nice API for inter-module communication;
- object oriented;
- hook system for multidispatch with priority setting;
- message priority;
- example modules;
- user registry allows pluggable meta-data;
Standard modules
----------------
(*) modules which are part of the basic infrastructure, loaded
without user intervention
- modulecontrol (*)
Takes care of loading, reloading, and unloading modules
dynamically and when pybot starts up.
- servercontrol (*)
Basic server control. Takes care of initial setup as well
as joining and leaving channels on the fly.
- permissions (*)
Provides access control for pybot. Most of the other modules
access exported functions from this module to verify if
users have given privilege.
- help (*)
Provides online help system.
- options (*)
Provides user access to the global options instance. Also
takes care of maintaining persistent variables between runs,
if any exists (pickle).
- timer (*)
Provides an API allowing modules to be called once in a while.
- pong (*)
Answers ping requests, and pings servers from time to time.
- ignore
Allows ignoring given users/channels/servers.
- uptime
Maintains and shows pybot uptime.
- infopack
Uses external databases to add knowledge to the bot. Each
database may add its own trigger, default messages (when
the trigger was sucessful, but no keys were found), help,
etc. Available infopacks are acronyms (extracted from GNU
vera), tcp/udp ports, and airports (both extracted from
infobot).
- messages
Allow users to leave messages to named users. These messages
will be sent when the named user gets into some channel or
talks (usefull if he was just away).
- forward
Forwards messages between choosen channels and/or servers.
- notes
Allows maintaining general shared information about given topics.
- eval
Evaluates python expressions in protected environment.
- repeat
Repeat given message in selected server/channel once, or in
given intervals.
- freshmeat
Check for new freshmeat releases and post them into selected
channels/servers.
- plock
Provide simple colaborative locking mechanism (based on a system
we used to have in Conectiva, that's why it's filesystem based,
and have some specific requirements).
- social
Socialize pybot a little bit.
- randnum
Simple random number generator.
- userdata
Provides some general user data storage, and exports some
functions providing this information for other modules.
- xmlrpc
Provides an API to easily export functions from any module through
the XMLRPC protocol, including basic authentication information.
Also implements a sendmsg() remote method, allowing external
services to send messages and notices using pybot (demo client
included);
vim:st=4:sw=4:et
|