From 36ac1720d8d5670ae5facf59abdb81a25428be2d Mon Sep 17 00:00:00 2001 From: Rapptz Date: Sat, 16 Mar 2019 04:56:22 -0400 Subject: [PATCH] Update README --- README.rst | 98 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 44 deletions(-) diff --git a/README.rst b/README.rst index 5ff44885e..b8cbd2819 100644 --- a/README.rst +++ b/README.rst @@ -1,45 +1,53 @@ discord.py ========== +.. image:: https://discordapp.com/api/guilds/336642139381301249/embed.png + :target: https://discord.gg/r3sSKJJ + :alt: Discord server invite .. image:: https://img.shields.io/pypi/v/discord.py.svg :target: https://pypi.python.org/pypi/discord.py + :alt: PyPI version info .. image:: https://img.shields.io/pypi/pyversions/discord.py.svg :target: https://pypi.python.org/pypi/discord.py + :alt: PyPI supported Python versions -discord.py is an API wrapper for Discord written in Python. +A modern, easy to use, feature-rich, and async ready 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``. +Key Features +------------- -I recommend joining either the `official discord.py server `_ or the `Discord API server `_ for help and discussion about the library. +- 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: .. code:: sh + # Linux/OS X python3 -m pip install -U discord.py + # Windows + py -3 -m pip install -U discord.py + Otherwise to get voice support you should run the following command: .. code:: sh + # Linux/OS X python3 -m pip install -U discord.py[voice] + # Windows + py -3 -m pip install -U discord.py[voice] -To install the development version, do the following: - -.. code:: sh - python3 -m pip install -U https://github.com/Rapptz/discord.py/archive/master.zip#egg=discord.py[voice] - -or the more long winded from cloned source: +To install the development version, do the following: .. code:: sh @@ -47,58 +55,60 @@ or the more long winded from cloned source: $ cd discord.py $ python3 -m pip install -U .[voice] -Please note that on Linux installing voice you must install the following packages via your favourite package manager (e.g. ``apt``, ``yum``, etc) before running the above command: + +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``, ``yum``, etc) before running the above commands: * libffi-dev (or ``libffi-devel`` on some systems) -* python-dev (e.g. ``python3.5-dev`` for Python 3.5) +* python-dev (e.g. ``python3.6-dev`` for Python 3.6) Quick Example -------------- +-------------- .. code:: py import discord - import asyncio class MyClient(discord.Client): async def on_ready(self): - print('Logged in as') - print(self.user.name) - print(self.user.id) - print('------') + 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.startswith('!test'): - counter = 0 - tmp = await message.channel.send('Calculating messages...') - async for msg in message.channel.history(limit=100): - if msg.author == message.author: - counter += 1 - - await tmp.edit(content='You have {} messages.'.format(counter)) - elif message.content.startswith('!sleep'): - with message.channel.typing(): - await asyncio.sleep(5.0) - await message.channel.send('Done sleeping.') + + if message.content == 'ping': + await message.channel.send('pong') client = MyClient() client.run('token') -You can find examples in the examples directory. +Bot Example +~~~~~~~~~~~~~ + +.. code:: py + + import discord + from discord.ext import commands + + bot = commands.Bot(command_prefix='>') -Requirements ------------- + @bot.command() + async def ping(ctx): + await ctx.send('pong') -* Python 3.5.3+ -* ``aiohttp`` library -* ``websockets`` library -* ``PyNaCl`` library (optional, for voice only) + bot.run('token') - - On Linux systems this requires the ``libffi`` library. You can install in - debian based systems by doing ``sudo apt-get install libffi-dev``. +You can find more examples in the examples directory. -Usually ``pip`` will handle these for you. +Links +------ +- `Documentation `_ +- `Official Discord Server `_ +- `Discord API `_