diff --git a/discord/game.py b/discord/game.py index 0408d19bb..49e5a4fb7 100644 --- a/discord/game.py +++ b/discord/game.py @@ -45,16 +45,31 @@ class Game: ----------- name : str The game's name. + url : str + The game's URL. Usually used for twitch streaming. + type : int + The type of game being played. 1 indicates "Streaming". """ - __slots__ = ['name'] + __slots__ = ['name', 'type', 'url'] def __init__(self, **kwargs): self.name = kwargs.get('name') + self.url = kwargs.get('url') + self.type = kwargs.get('type') def __str__(self): return self.name + def _iterator(self): + for attr in self.__slots__: + value = getattr(self, attr, None) + if value is not None: + yield (attr, value) + + def __iter__(self): + return self._iterator() + def __eq__(self, other): return isinstance(other, Game) and other.name == self.name diff --git a/discord/gateway.py b/discord/gateway.py index 7ed7371be..5ecf58ce1 100644 --- a/discord/gateway.py +++ b/discord/gateway.py @@ -371,7 +371,7 @@ class DiscordWebSocket(websockets.client.WebSocketClientProtocol): raise InvalidArgument('game must be of Game or None') idle_since = None if idle == False else int(time.time() * 1000) - sent_game = game and {'name': game.name} + sent_game = dict(game) if game else None payload = { 'op': self.PRESENCE,