Skip to main content

A Python wrapper for the Discord API

Project description

PyPI supported Python versions

A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. Credits to the original lib by Rapptz

WARNING: This is not the official discord.py lib! This is a custom version to which I add some features that might be useful or just makes things easier for the lazy people. See below which features have been added. This lib will also be kept updated with the BETA version of the original lib! So things may be unstable, please keep that in mind.

Custom Features

Moved to: Custom Features

Key Features

  • Modern Pythonic API using async and await.

  • Proper rate limit handling.

  • 100% coverage of the supported Discord API.

  • Optimised in both speed and memory.

Installing

Python 3.5.3 or higher is required

To install the library without full voice support, you can just run the following command:

# Linux/macOS
python3 -m pip install -U enhanced-dpy

# Windows
py -3 -m pip install -U enhanced-dpy

To install the development version, do the following:

$ git clone https://github.com/iDutchy/discord.py
$ cd discord.py
$ python3 -m pip install -U .[voice]

Optional Packages

  • PyNaCl (for voice support)

Please note that on Linux installing voice you must install the following packages via your favourite package manager (e.g. apt, dnf, etc) before running the above commands:

  • libffi-dev (or libffi-devel on some systems)

  • python-dev (e.g. python3.6-dev for Python 3.6)

Quick Example

import discord

class MyClient(discord.Client):
    async def on_ready(self):
        print('Logged on as', self.user)

    async def on_message(self, message):
        # don't respond to ourselves
        if message.author == self.user:
            return

        if message.content == 'ping':
            await message.channel.send('pong')

client = MyClient()
client.run('token')

Bot Example

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='>')

@bot.command()
async def ping(ctx):
    await ctx.send('pong')

bot.run('token')

You can find more examples in the examples directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enhanced-dpy-1.7.3.7.post6.tar.gz (749.1 kB view details)

Uploaded Source

File details

Details for the file enhanced-dpy-1.7.3.7.post6.tar.gz.

File metadata

  • Download URL: enhanced-dpy-1.7.3.7.post6.tar.gz
  • Upload date:
  • Size: 749.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0+

File hashes

Hashes for enhanced-dpy-1.7.3.7.post6.tar.gz
Algorithm Hash digest
SHA256 c569802629a0b71cd7750785c2aa49a73c0cdbfea913757da6108c8301c72d29
MD5 b6a2724dc1e99e728f85ca25e9f222cc
BLAKE2b-256 531e738fb4c8651d82812594a9d057902801b1cef39b6581e64967002318234c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page