Skip to content

Discord Python library for people that like to dance

Notifications You must be signed in to change notification settings

NotSoPhone/disco

Repository files navigation

disco

Disco is a simple and extendable library for the Discord API. Join the Official channel and chat here.

  • 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

Installation

Disco was built to run both as a generic-use library, and a standalone bot toolkit. Installing disco is as easy as running pip install disco-py, however some extra packages are recommended for power-users, namely:

NameReason
requests[security]adds packages for a proper SSL implementation
ujsonfaster json parser, improves performance
erlpackETF parser, only Python 2.x, run with the --encoder=etf flag
gipcGevent IPC, required for autosharding

Examples

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

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python100.0%