diff --git a/addon.xml b/addon.xml index 2a5464fc09cd55a8f14f91f6847c1c5c1caf93a2..c2cf51553cb019268847e25692828398fa8b6a28 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 8c4d591c53935f2e4494f55d7c97d18d6fb564e4..ca0fc98a1f8732b81227bf5341823ee2fecc8e62 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))