From 9ccf689a117c2ba9aa9eaf975cc001a3ae74be6e Mon Sep 17 00:00:00 2001 From: Roman Davydov <15850461+rdavydov@users.noreply.github.com> Date: Sun, 6 Oct 2024 21:44:15 +0300 Subject: [PATCH] fix #593 --- TwitchChannelPointsMiner/classes/Twitch.py | 34 +++++++++++++++------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/TwitchChannelPointsMiner/classes/Twitch.py b/TwitchChannelPointsMiner/classes/Twitch.py index 4d9ce79..bbfacee 100644 --- a/TwitchChannelPointsMiner/classes/Twitch.py +++ b/TwitchChannelPointsMiner/classes/Twitch.py @@ -492,19 +492,31 @@ class Twitch(object): } # Get signature and value using the post_gql_request method - responsePlaybackAccessToken = self.post_gql_request( - json_data) - logger.debug( - f"Sent PlaybackAccessToken request for {streamers[index]}" - ) - signature: JsonType | None = responsePlaybackAccessToken["data"].get( - 'streamPlaybackAccessToken', {}).get("signature") - value: JsonType | None = responsePlaybackAccessToken["data"].get( - 'streamPlaybackAccessToken', {}).get("value") + try: + responsePlaybackAccessToken = self.post_gql_request( + json_data) + logger.debug( + f"Sent PlaybackAccessToken request for {streamers[index]}") - if not signature or not value: + if 'data' not in responsePlaybackAccessToken: + logger.error( + f"Invalid response from Twitch: {responsePlaybackAccessToken}") + continue + + streamPlaybackAccessToken = responsePlaybackAccessToken["data"].get( + 'streamPlaybackAccessToken', {}) + signature = streamPlaybackAccessToken.get( + "signature") + value = streamPlaybackAccessToken.get("value") + + if not signature or not value: + logger.error( + f"Missing signature or value in Twitch response: {responsePlaybackAccessToken}") + continue + + except Exception as e: logger.error( - f"Invalid response from Twitch: {responsePlaybackAccessToken}") + f"Error fetching PlaybackAccessToken for {streamers[index]}: {str(e)}") continue # encoded_value = quote(json.dumps(value))