Rapptz 0fbb58cde9 Change the way MESSAGE_UPDATE events are handled.
Previously we created a copy of the object and did some strange
iteration over the data and set the attributes that we thought
were valid. This worked back then in v0.1.0 of the library when
it was written, but it no longer works nowadays when we want to
be as future proof as possible.
2016-01-07 01:27:38 -05:00
2016-01-04 22:28:29 -05:00
2016-01-06 11:39:20 -05:00

discord.py

PyPI PyPI PyPI

discord.py is an API wrapper for Discord written in Python.

This was written to allow easier writing of bots or chat logs. Make sure to familiarise yourself with the API using the documentation.

Breaking Changes

The discord API is constantly changing and the wrapper API is as well. There will be no effort to keep backwards compatibility in versions before v1.0.0.

I recommend that you follow the discussion in the unofficial Discord API discord channel and update your installation periodically through pip install --upgrade discord.py. I will attempt to make note of breaking changes in the API channel.

Installing

Installing is pretty easy.

pip install discord.py

Will install the latest 'stable' version of the library.

If you want to install the development version of the library, then do the following:

pip install git+https://github.com/Rapptz/discord.py@develop

Installing the async beta is similar.

pip install git+https://github.com/Rapptz/discord.py@async

Note that this requires git to be installed.

Quick Example

import discord
import asyncio

client = discord.Client()

@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')

@client.event
async def on_message(message):
    if message.content.startswith('!test'):
        logs = await client.logs_from(message.channel, limit=100)
        counter = 0
        tmp = await client.send_message(message.channel, 'Calculating messages...')
        for log in logs:
            if log.author == message.author:
                counter += 1

        await client.edit_message(tmp, 'You have {} messages.'.format(counter))
    elif message.content.startswith('!sleep'):
        await asyncio.sleep(5)
        await client.send_message(message.channel, 'Done sleeping')

client.run('email', 'password')

Note that in Python 3.4 you use @asyncio.coroutine instead of async def and yield from instead of await.

You can find examples in the examples directory.

Requirements

  • Python 3.4.2+
  • aiohttp library
  • websockets library

Usually pip will handle these for you.

Description
No description provided
Readme MIT 70 MiB
Languages
Python 100%