We are interested in general-use plugins that have the potential to be used on multiple channels. If you have an idea that is unique to your specific channel, it's unlikely to be accepted. If you are unsure, ask first (file an issue or via #lincolnloop
on Freenode).
Also be sure your plugin meets Freenode's channel guidelines.
- Written in Python (2.7.x)
- Closely follows PEP 8 guidelines
- Tested. See
botbot_plugins/tests
directory for examples. - Each plugin is implemented as a single module in the
botbot_plugins/plugins
directory. The module should contain a singlePlugin
class that inherits frombotbot_plugins.base.BasePlugin
. - The
Plugin
class' docstring should thoroughly describe its behavior to an end-user. It starts with a single line of text serving as a succinct (75 characters or less) summary. It will be formatted with Markdown and displayed as help text. - Preferably no additional external dependencies. Use the standard lib or existing dependencies whenever possible.
- Submitted as a pull request via GitHub.
- Plugins have access to a Redis database for storage. For hopefully obvious reasons, not all Redis commands are available for use by plugins (FLUSHALL for example). Plugins must use the provided storage interface methods; this is also required so that the plugin system can maintain an association between a plugin and its data.