TetsuBotTetsuBot is an IRC bot framework written in Python. It uses the Twisted event-driven networking engine. Presently, TetsuBot is still under development.
GoalsModular nature where plugins can be loaded and unloaded on-the-fly Plugin dependency checking and automatic loading of dependencies in the right order Protection against exceptions generated by plugins Ability for plugins to expose shared functionality to other plugins by registering "services" Unified and consistent interface for plugins to access all functionality (the framework's functions are accessed through services) Granular administration and authorization system with ACLs Dynamic configuration in YAML that can be loaded and saved on the fly Per-channel configuration options A number of basic services: Service to allow the easy implementation of commands Online command help accessible through IRC Channel information and user list tracking Channel activity service, capable of telling whether activity has been seen for a user or channel recently Database access through SQLAlchemy Feature toggling service, to allow authorized users to disable or enable a particular feature (i.e. !8ball) in a room Channel rank-based authorization service, rather than the regular administration system, to allow privileges based on a user's rank (operator, half-operator, voice, etc.) in a channel Thread-safe Efficient pooling of threads (handled by Twisted) ConsiderationsAutomated throttling of outgoing messages, to prevent getting kicked for flooding the server Rate limiting to prevent a denial of service attack against the bot Automatic splitting of long messages into several chunks, and letting users access more chunks with a "more" command Web server service to allow plugins to expose functionality through a webpage easily Multi-protocol (unlikely) Multi-transport (unlikely) ShortcomingsIt is not possible for a plugin to override a particular functionality of another plugin or the framework in general Plugins can only extend functionality Plugin unloading is not completely clean RationaleMany bot frameworks don't provide a simple and organized way for plugins to expose their own functionality to other plugins A lot of IRC bot frameworks are highly command-oriented, as if a bot could not be used for other things Some frameworks are not cross-platform
These details are provided for information only. No information here is legal advice and should not be used as such.