pybot needs your help
niemeyer at conectiva.com
Thu Nov 1 23:45:03 CET 2001
I need help. No, I'm not asking for money. :-) What I need is smart
people with coding, documentation, and/or web designing abilities
to join an ongoing project. I'm not thinking about leaving the
project, but I don't have all the necessary time to maintain it
alone. What it is about!?
Pybot is a project I have developed to integrate many sources of
information with IRC. Here at Conectiva we use IRC as the main
company's communication channel. It's quite confortable to have a
bot telling you about what's happening in the world outside, and
also help in some related tasks. Note that it was not designed,
and I'm not planning to implement, any "war" behavior. It's not
supposed to be a replacement for channel control services.
Characteristics of the project
- may join multiple servers and multiple channels at once;
- full online control (just talk to him);
- load, reload and unload modules at runtime (python is nice,
isn't it? ;-);
- nice API for inter-module communication;
- object oriented;
- hook system;
- well designed (I'm suspect to say this, but it's true ;-);
- auto recover from network errors;
- flood protection;
- auto timming of messages to avoid being kicked by the
- message priority;
- other stuff I probably forgot;
- lots of functionalities trough available modules (see below).
Modules already available
Takes care of loading, reloading, and unloading modules
dynamically and when pybot starts up.
Basic server control. Takes care of initial setup as well
as joining and leaving channels on the fly.
Provides user access to the global registry. Also takes
care of maintaining it between runs (pickle, of course).
Provides access control for pybot. Most of the other modules
access exported functions from this module to verify if
users have given privilege.
Answers ping requests (guess what happens if you
disable it ;-).
Allows ignoring given users/channels/servers.
Shows pybot uptime (right now it's up for more than a
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), etc.
Available infopacks are acronyms (extracted from GNU vera),
tcp/udp ports, and airports (both extracted from infobot).
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).
Forwards messages between choosen channels and/or servers.
Allows saving general information about given keys.
Evaluates python expressions in protected environment.
Repeat given message for selected server/channel once, or in
Check for new freshmeat releases and post them into selected
Check for new appwatch (is it alive) releases and post them
into selected channels/servers.
Provide simple colaborative locking mechanism. We use it to
control locking of packages, avoiding two people changing it
at the same time.
Socialize pybot a little bit.
Uses SOAP.py to provide an API to easily export functions trough
Provides an API allowing modules to be called once in a while.
Simple random number generator.
Provides some general user data storage, and exports some
functions providing this information for other modules.
What's in TODO list right now
- A website for pybot.
- Documentation!! Please, write documentation. :-)
- Create a script to run pybot from outside of the build environment. It must
detect somehow where pybot is installed and call it (notice it must be called
from an outside program to reset work as expected).
- Adapt distutils classes to install every necessary file in their respective
- Finish the conversion of msg.match to re.match and remove msg.match from
- Give users a chance to identify themselves to pybot when they are in
other servers than their registered ones. Must discover some way to
detect when the user has left and auto-logout him.
- Develop a README explaining how to do the basic setup of pybot.
Pybot has a sourceforge home (source is not there yet, but I'm working
on this). It's also registered at freshmeat.net and has it's own domain
How to join
Contact me. Please, I don't have the necessary time to teach how
to program in python. I need people with the necessary knowledge
to join and *help*.
[ 2AAC 7928 0FBF 0299 5EB5 60E2 2253 B29A 6664 3A0C ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 240 bytes
Desc: not available
More information about the Python-list