pybot needs your help
Gustavo Niemeyer
niemeyer at conectiva.com
Thu Nov 1 17:45:03 EST 2001
Hello everyone!
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!?
About pybot
-----------
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
server.
- message priority;
- other stuff I probably forgot;
- lots of functionalities trough available modules (see below).
Modules already available
-------------------------
- 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.
- options
Provides user access to the global registry. Also takes
care of maintaining it between runs (pickle, of course).
- permissions
Provides access control for pybot. Most of the other modules
access exported functions from this module to verify if
users have given privilege.
- pong
Answers ping requests (guess what happens if you
disable it ;-).
- ignore
Allows ignoring given users/channels/servers.
- uptime
Shows pybot uptime (right now it's up for more than a
month ;-).
- 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), 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 saving general information about given keys.
- eval
Evaluates python expressions in protected environment.
- repeat
Repeat given message for selected server/channel once, or in
given intervals.
- freshmeat
Check for new freshmeat releases and post them into selected
channels/servers.
- appwatch
Check for new appwatch (is it alive) releases and post them
into selected channels/servers.
- plock
Provide simple colaborative locking mechanism. We use it to
control locking of packages, avoiding two people changing it
at the same time.
- social
Socialize pybot a little bit.
- soap
Uses SOAP.py to provide an API to easily export functions trough
SOAP protocol.
- timer
Provides an API allowing modules to be called once in a while.
- randnum
Simple random number generator.
- userdata
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
directories.
- Finish the conversion of msg.match to re.match and remove msg.match from
the code.
- 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.
Available infrastructure
------------------------
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
at pybot.org.
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*.
Best regards!!
--
Gustavo Niemeyer
[ 2AAC 7928 0FBF 0299 5EB5 60E2 2253 B29A 6664 3A0C ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 240 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20011101/42717a1a/attachment.sig>
More information about the Python-list
mailing list