aboutsummaryrefslogtreecommitdiff
path: root/discord/client.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2018-03-05 11:01:46 -0500
committerRapptz <[email protected]>2018-03-05 11:15:49 -0500
commitf8f8f418f3c51b6a885a1b6b7cd46c38c070b3bc (patch)
tree0f26ed361806cf4470b8d98b61f63d2055cf87d0 /discord/client.py
parentUpdate docstrings for channel.py (diff)
downloaddiscord.py-f8f8f418f3c51b6a885a1b6b7cd46c38c070b3bc.tar.xz
discord.py-f8f8f418f3c51b6a885a1b6b7cd46c38c070b3bc.zip
Split Game object to separate Activity subtypes for Rich Presences.
This is a massive breaking change. * All references to "game" have been renamed to "activity" * Activity objects contain a majority of the rich presence information * Game and Streaming are subtypes for memory optimisation purposes for the more common cases. * Introduce a more specialised read-only type, Spotify, for the official Spotify integration to make it easier to use.
Diffstat (limited to 'discord/client.py')
-rw-r--r--discord/client.py39
1 files changed, 20 insertions, 19 deletions
diff --git a/discord/client.py b/discord/client.py
index d2a4951e..bd4c35e9 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -72,8 +72,8 @@ class Client:
.. _ProxyConnector: http://aiohttp.readthedocs.org/en/stable/client_reference.html#proxyconnector
Parameters
- ----------
- max_messages : Optional[int]
+ -----------
+ max_messages : Optional[:class:`int`]
The maximum number of messages to store in the internal message cache.
This defaults to 5000. Passing in `None` or a value less than 100
will use the default instead of the passed in value.
@@ -82,24 +82,24 @@ class Client:
in which case the default event loop is used via ``asyncio.get_event_loop()``.
connector : aiohttp.BaseConnector
The `connector`_ to use for connection pooling.
- proxy : Optional[str]
+ proxy : Optional[:class:`str`]
Proxy URL.
proxy_auth : Optional[aiohttp.BasicAuth]
An object that represents proxy HTTP Basic Authorization.
- shard_id : Optional[int]
+ shard_id : Optional[:class:`int`]
Integer starting at 0 and less than shard_count.
- shard_count : Optional[int]
+ shard_count : Optional[:class:`int`]
The total number of shards.
- fetch_offline_members: bool
+ fetch_offline_members: :class:`bool`
Indicates if :func:`on_ready` should be delayed to fetch all offline
members from the guilds the bot belongs to. If this is ``False``\, then
no offline members are received and :meth:`request_offline_members`
must be used to fetch the offline members of the guild.
- game: Optional[:class:`Game`]
- A game to start your presence with upon logging on to Discord.
status: Optional[:class:`Status`]
A status to start your presence with upon logging on to Discord.
- heartbeat_timeout: float
+ activity: Optional[Union[:class:`Activity`, :class:`Game`, :class:`Streaming`]]
+ An activity to start your presence with upon logging on to Discord.
+ heartbeat_timeout: :class:`float`
The maximum numbers of seconds before timing out and restarting the
WebSocket in the case of not receiving a HEARTBEAT_ACK. Useful if
processing the initial packets take too long to the point of disconnecting
@@ -794,23 +794,24 @@ class Client:
return self.event(coro)
@asyncio.coroutine
- def change_presence(self, *, game=None, status=None, afk=False):
+ def change_presence(self, *, activity=None, status=None, afk=False):
"""|coro|
Changes the client's presence.
- The game parameter is a Game object (not a string) that represents
- a game being played currently.
+ The activity parameter is a :class:`Activity` object (not a string) that represents
+ the activity being done currently. This could also be the slimmed down versions,
+ :class:`Game` and :class:`Streaming`.
Example: ::
- game = discord.Game(name="with the API")
- await client.change_presence(status=discord.Status.idle, game=game)
+ game = discord.Game("with the API")
+ await client.change_presence(status=discord.Status.idle, activity=game)
Parameters
----------
- game: Optional[:class:`Game`]
- The game being played. None if no game is being played.
+ activity: Optional[Union[:class:`Game`, :class:`Streaming`, :class:`Activity`]]
+ The activity being done. ``None`` if no currently active activity is done.
status: Optional[:class:`Status`]
Indicates what status to change to. If None, then
:attr:`Status.online` is used.
@@ -822,7 +823,7 @@ class Client:
Raises
------
InvalidArgument
- If the ``game`` parameter is not :class:`Game` or None.
+ If the ``activity`` parameter is not the proper type.
"""
if status is None:
@@ -835,14 +836,14 @@ class Client:
status_enum = status
status = str(status)
- yield from self.ws.change_presence(game=game, status=status, afk=afk)
+ yield from self.ws.change_presence(activity=activity, status=status, afk=afk)
for guild in self._connection.guilds:
me = guild.me
if me is None:
continue
- me.game = game
+ me.activity = activity
me.status = status_enum
# Guild stuff