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.
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 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.
import discord
client = discord.Client()
@client.async_event
def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.async_event
def on_message(message):
if message.content.startswith('!test'):
logs = yield from client.logs_from(message.channel, limit=100)
counter = 0
tmp = yield from client.send_message(message.channel, 'Calculating messages...')
for log in logs:
if log.author == message.author:
counter += 1
yield from client.edit_message(tmp, 'You have {} messages.'.format(counter))
elif message.content.startswith('!sleep'):
yield from asyncio.sleep(5)
yield from client.send_message(message.channel, 'Done sleeping')
def main_task():
yield from client.login('email', 'password')
yield from client.connect()
loop = asyncio.get_event_loop()
loop.run_until_complete(main_task())
loop.close()
You can find examples in the examples directory.
- Python 3.4.2+
aiohttp
librarywebsockets
library
Usually pip
will handle these for you.