From 3652c9901d87d7efd4ec0c8ed817fe8a936308a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Thu, 5 May 2022 15:13:28 +0200 Subject: [PATCH] Clean get track data code --- addon.xml | 2 +- gui.py | 42 ++++++++++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/addon.xml b/addon.xml index c2cf515..4ebd63b 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.12" + version="0.0.13" provider-name="Benoît Harrault"> <requires> <import addon="xbmc.python" version="2.25.0"/> diff --git a/gui.py b/gui.py index ca0fc98..1960744 100644 --- a/gui.py +++ b/gui.py @@ -154,7 +154,7 @@ class GUI(xbmcgui.WindowXMLDialog): self.log('load images for track: ' + track_id) self.PanelItems = self.getControl(101) self.PanelItems.reset() - self.PanelItems.addItems(self._get_track_data(track_id)) + self.PanelItems.addItems(self._build_items_list(track_id)) def _remove_images(self): self.log('no played track. remove images') @@ -165,7 +165,7 @@ class GUI(xbmcgui.WindowXMLDialog): self.log('track_id: [' + str(track_id) + ']') self.log('(try: ' + str(try_count) + ')') - imageLST = [] + track_data = {} headers = { 'Authorization': 'Bearer {token}'.format( @@ -180,7 +180,7 @@ class GUI(xbmcgui.WindowXMLDialog): ) data = response.json() - track_name = data.get('name', '') + track_data['track_name'] = data.get('name', '') # album/track image album = data.get('album') @@ -212,20 +212,38 @@ class GUI(xbmcgui.WindowXMLDialog): else: self.log('ok got image from API') self.log(json.dumps(image)) - image_url = image.get('url') - if image_url is None: - self.log('failed to get image_url from API', xbmc.LOGERROR) + track_image_url = image.get('url') + if track_image_url is None: + self.log( + 'failed to get track_image_url from API', + xbmc.LOGERROR) self.log(json.dumps(image), xbmc.LOGERROR) else: - self.log('ok got image_url from API') - self.log(image_url) - imageLST.append( - xbmcgui.ListItem( - track_name, thumbnailImage=image_url) - ) + self.log('ok got track_image_url from API') + self.log(track_image_url) + track_data['track_image_url'] = track_image_url except Exception as e: self.log('failed to get track data ' + str(e), xbmc.LOGERROR) + return track_data + + def _build_items_list(self, track_id): + imageLST = [] + + track_data = self._get_track_data(track_id) + track_name = track_data.get('track_name') + track_image_url = track_data.get('track_image_url') + + if (track_name is None) or (track_image_url is None): + self.log('failed to get track data', xbmc.LOGERROR) + else: + imageLST.append( + xbmcgui.ListItem( + track_name, + thumbnailImage=track_image_url + ) + ) + return imageLST def onFocus(self, controlId): -- GitLab