{"repo":"spankybot/spanky.py","free":true,"listed":false,"github":"https://github.com/spankybot/spanky.py","clone":"git clone https://github.com/spankybot/spanky.py.git","description":"Chat-bot overlay framework that can run on top of any python-based bot and call plugins on various events","language":"Python","stars":16,"topics":["python3","bot","bots","bot-framework","discord","discord-py"],"license":"GPL-3.0","category":"chat-messaging","readme_excerpt":"spanky.py Chat-bot overlay framework that can run on top of any python-based bot and call plugins on multiple types of events. High level schematic: Running the bot 1. Using Docker (recommended) The easiest way of stating up the bot is to use the tools provided in the Dockerfile/ folder: 2. Native (not recommended) There are a lot of system dependencies that need to be installed on the system where you are planning to run the bot. Some of the prerequisites can be found in Dockerfile/Dockerfile . Once you install them, run the bot with Python 3.5. Design notes Plain commands Plugins can be added in the plugins/ folder and are dinamically loaded at startup. A plugin can also be modified while the bot is running. A write event (i.e. saving the file) will trigger the bot to reload the plugin. Example: Permissions The bot has a built-in permission system that allows plugin authors to restrict who can use a command. Currently there are two explicit permission levels set in spanky/plugin/permissions.py : Example: This will make the example2 command only be accessible by users having one of the rules set through admin config admin roles add @role command. Similarly, when using the bot owner permission, commands will only be accessed by users specified in the bot owner field set in the bot config.json file. Slash commands Slash commands are registered through the hook decorator, but are only added when the slash servers parameter is set in the decorator. Example: By default, the bot w","default_branch":null,"files":null,"tree":[],"storefront":"/r/spankybot","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/spankybot/spanky.py/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}