From 743ce71c5c00e7afc27e6b0f66c5b7945b0fcb9d Mon Sep 17 00:00:00 2001 From: PredaaA <46051820+PredaaA@users.noreply.github.com> Date: Fri, 3 Jan 2020 01:28:57 +0100 Subject: [PATCH] [Streams] Fix TypeError in TwitchStream class and change stream_alert function for Twitch (#3042) * Update streamtypes.py * Create 3042.bugfix.rst * Black the things. * Fix Twitch streams alert and [p]streamalert twitch * Update 3042.bugfix.rst --- changelog.d/streams/3042.bugfix.rst | 1 + redbot/cogs/streams/streams.py | 3 +++ redbot/cogs/streams/streamtypes.py | 10 ++-------- 3 files changed, 6 insertions(+), 8 deletions(-) create mode 100644 changelog.d/streams/3042.bugfix.rst diff --git a/changelog.d/streams/3042.bugfix.rst b/changelog.d/streams/3042.bugfix.rst new file mode 100644 index 000000000..e2074ab9f --- /dev/null +++ b/changelog.d/streams/3042.bugfix.rst @@ -0,0 +1 @@ +Fix a TypeError in TwitchStream class when calling Twitch client_id from Red shared APIs tokens and also changed the stream_alert function for Twitch alerts to make it works with how TwitchStream class works now. diff --git a/redbot/cogs/streams/streams.py b/redbot/cogs/streams/streams.py index 60b2c1b76..751e7d9a3 100644 --- a/redbot/cogs/streams/streams.py +++ b/redbot/cogs/streams/streams.py @@ -275,8 +275,11 @@ class Streams(commands.Cog): if not stream: token = await self.bot.get_shared_api_tokens(_class.token_name) is_yt = _class.__name__ == "YoutubeStream" + is_twitch = _class.__name__ == "TwitchStream" if is_yt and not self.check_name_or_id(channel_name): stream = _class(id=channel_name, token=token) + elif is_twitch: + stream = _class(name=channel_name, token=token.get("client_id")) else: stream = _class(name=channel_name, token=token) try: diff --git a/redbot/cogs/streams/streamtypes.py b/redbot/cogs/streams/streamtypes.py index 45e83661c..2a142aa1c 100644 --- a/redbot/cogs/streams/streamtypes.py +++ b/redbot/cogs/streams/streamtypes.py @@ -162,10 +162,7 @@ class TwitchStream(Stream): self.id = await self.fetch_id() url = TWITCH_STREAMS_ENDPOINT + self.id - header = { - "Client-ID": str(self._token["client_id"]), - "Accept": "application/vnd.twitchtv.v5+json", - } + header = {"Client-ID": str(self._token), "Accept": "application/vnd.twitchtv.v5+json"} async with aiohttp.ClientSession() as session: async with session.get(url, headers=header) as r: @@ -187,10 +184,7 @@ class TwitchStream(Stream): raise APIError() async def fetch_id(self): - header = { - "Client-ID": str(self._token["client_id"]), - "Accept": "application/vnd.twitchtv.v5+json", - } + header = {"Client-ID": str(self._token), "Accept": "application/vnd.twitchtv.v5+json"} url = TWITCH_ID_ENDPOINT + self.name async with aiohttp.ClientSession() as session: