- Notifications
You must be signed in to change notification settings - Fork79
Discord Python library for people that like to dance
b1naryth1ef/disco
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Disco is an extensive and extendable Python 2.x/3.x library for theDiscord API. Disco boasts the following major features:
- Expressive, functional interface that gets out of the way
- Built for high-performance and efficiency
- Configurable and modular, take the bits you need
- Full support for Python 2.x/3.x
- Evented networking and IO using Gevent
Disco was built to run both as a generic-use library, and a standalone bot toolkit. Installing disco is as easy as runningpip install disco-py
, however some extra packages are recommended for power-users, namely:
Name | Reason |
---|---|
requests[security] | adds packages for a proper SSL implementation |
ujson | faster json parser, improves performance |
erlpack (2.x), earl-etf (3.x) | ETF parser run with the --encoder=etf flag |
gipc | Gevent IPC, required for autosharding |
Simple bot using the builtin bot authoring tools:
fromdisco.botimportBot,PluginclassSimplePlugin(Plugin):# Plugins provide an easy interface for listening to Discord events@Plugin.listen('ChannelCreate')defon_channel_create(self,event):event.channel.send_message('Woah, a new channel huh!')# They also provide an easy-to-use command component@Plugin.command('ping')defon_ping_command(self,event):event.msg.reply('Pong!')# Which includes command argument parsing@Plugin.command('echo','<content:str...>')defon_echo_command(self,event,content):event.msg.reply(content)
Using the default bot configuration, we can now run this script like so:
python -m disco.cli --token="MY_DISCORD_TOKEN" --run-bot --plugin simpleplugin
And commands can be triggered by mentioning the bot (configured by the BotConfig.command_require_mention flag):
About
Discord Python library for people that like to dance