Add support for "Do Not Disturb" and "Invisible" statuses.
This deprecates Client.change_status in favour of the newer and more correct Client.change_presence.
This commit is contained in:
@ -37,7 +37,7 @@ from .errors import *
|
||||
from .state import ConnectionState
|
||||
from .permissions import Permissions, PermissionOverwrite
|
||||
from . import utils, compat
|
||||
from .enums import ChannelType, ServerRegion, VerificationLevel
|
||||
from .enums import ChannelType, ServerRegion, VerificationLevel, Status
|
||||
from .voice_client import VoiceClient
|
||||
from .iterators import LogsFromIterator
|
||||
from .gateway import *
|
||||
@ -1526,6 +1526,7 @@ class Client:
|
||||
self._update_cache(self.email, password)
|
||||
|
||||
@asyncio.coroutine
|
||||
@utils.deprecated('change_presence')
|
||||
def change_status(self, game=None, idle=False):
|
||||
"""|coro|
|
||||
|
||||
@ -1537,7 +1538,8 @@ class Client:
|
||||
The idle parameter is a boolean parameter that indicates whether the
|
||||
client should go idle or not.
|
||||
|
||||
.. _game_list: https://gist.github.com/Rapptz/a82b82381b70a60c281b
|
||||
.. deprecated:: v0.13.0
|
||||
Use :meth:`change_status` instead.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
@ -1553,6 +1555,42 @@ class Client:
|
||||
"""
|
||||
yield from self.ws.change_presence(game=game, idle=idle)
|
||||
|
||||
@asyncio.coroutine
|
||||
def change_presence(self, *, game=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.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
game: Optional[:class:`Game`]
|
||||
The game being played. None if no game is being played.
|
||||
status: Optional[:class:`Status`]
|
||||
Indicates what status to change to. If None, then
|
||||
:attr:`Status.online` is used.
|
||||
afk: bool
|
||||
Indicates if you are going AFK. This allows the discord
|
||||
client to know how to handle push notifications better
|
||||
for you in case you are actually idle and not lying.
|
||||
|
||||
Raises
|
||||
------
|
||||
InvalidArgument
|
||||
If the ``game`` parameter is not :class:`Game` or None.
|
||||
"""
|
||||
|
||||
if status is None:
|
||||
status = 'online'
|
||||
elif status is Status.offline:
|
||||
status = 'invisible'
|
||||
else:
|
||||
status = str(status)
|
||||
|
||||
yield from self.ws.change_presence(game=game, status=status, afk=afk)
|
||||
|
||||
@asyncio.coroutine
|
||||
def change_nickname(self, member, nickname):
|
||||
"""|coro|
|
||||
|
Reference in New Issue
Block a user