User:Ironiridis/Nefarious Plans/iridibot

iridibot, an IRC bot that serves multiple purposes. Designed from the git-go to be completely pluggable, configurable, and customizable, and with hotplugging capabilities, it will be a tool I leverage to battle vandalism. Hopefully.

At its core, the bot does nothing; it relies completely on plugins to have any function. Once the bot is complete and its plugin framework (partially) completed, work will begin on some simple plugins.

I plan on creating tools that others can hook into this bot as well. Since it is a framework, tools should be easy to create and fairly efficient.

All functions of the bot will center around receiving live "recent changes" messages from the wikimedia rc bot. The functions that can be performed on this incoming data are wide and varied.

Plugins
Plugins will connect to iridibot via TCP connections. In this way, it will effectively be a server. Individual plugins (aka "tools") will register callbacks on certain events. These events will not be limited to IRC traffic, but can also include events triggered by other plugins.

For example, one plugin will receive rc events from IRC, and extract the username and compare it to a white/black list. If the username matches a blacklisted username, a notification will be sent back to the bot with metadata (like the username and the edit ID), which the bot will propogate to other plugins who have registered for that type of notification. Another plugin will receive this notification and post a Growl message to a user's desktop. A third plugin will receive this notification and send an email.

Each plugin can be customized to do whatever a particular user needs. Since plugins will be so simple to write, it's not unreasonable to think that multiple people will have their own extensions on iridibot that they can run at their leisure.

More?
I'll get around to it.