From 08169b72a505d9acaa82aae42e6ae646d2fe9d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Thu, 5 May 2022 10:28:06 +0200 Subject: [PATCH] Refresh Spotify access token if expired --- addon.xml | 2 +- gui.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/addon.xml b/addon.xml index 2a5464f..c2cf515 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="script.spotify.screensaver" name="Spotify Screensaver" - version="0.0.11" + version="0.0.12" provider-name="Benoît Harrault"> <requires> <import addon="xbmc.python" version="2.25.0"/> diff --git a/gui.py b/gui.py index 8c4d591..ca0fc98 100644 --- a/gui.py +++ b/gui.py @@ -161,8 +161,9 @@ class GUI(xbmcgui.WindowXMLDialog): self.PanelItems = self.getControl(101) self.PanelItems.reset() - def _get_track_data(self, track_id): + def _get_track_data(self, track_id, try_count=1): self.log('track_id: [' + str(track_id) + ']') + self.log('(try: ' + str(try_count) + ')') imageLST = [] @@ -186,6 +187,14 @@ class GUI(xbmcgui.WindowXMLDialog): if album is None: self.log('failed to get album from API', xbmc.LOGERROR) self.log(json.dumps(data), xbmc.LOGERROR) + + if json.dumps(data) == '{"error": {"status": 401, "message": "The access token expired"}}': + self.log('trying to refresh access token') + self._init_spotify_access_token() + self.log('retry get image') + self._get_track_data(track_id, try_count + 1) + else: + self.log('unknown error getting image', xbmc.LOGERROR) else: self.log('ok got album from API') self.log(json.dumps(album)) -- GitLab