pybot needs your help

Gustavo Niemeyer niemeyer at conectiva.com
Thu Nov 1 23:45:03 CET 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.pgp>


More information about the Python-list mailing list