From 1289f90662b97fec214925bf844f114bec8c671d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Thu, 5 May 2022 15:49:42 +0200 Subject: [PATCH] Get artists from API, display in screen and notification --- addon.xml | 2 +- gui.py | 52 ++++++++++++++++------- resources/skins/default/1080i/default.xml | 2 +- 3 files changed, 38 insertions(+), 18 deletions(-) diff --git a/addon.xml b/addon.xml index f1454c1..02179a3 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.14" + version="0.0.15" provider-name="BenoƮt Harrault"> <requires> <import addon="xbmc.python" version="2.25.0"/> diff --git a/gui.py b/gui.py index e4409ec..e164525 100644 --- a/gui.py +++ b/gui.py @@ -151,16 +151,15 @@ class GUI(xbmcgui.WindowXMLDialog): track_data = self._get_track_data(track_id) track_name = track_data.get('track_name') + track_artists = track_data.get('track_artists') 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: - notification = ( - 'Notification("Next:", ' + track_name - + ', 29000, ' + track_image_url + ')' - ) - xbmc.executebuiltin(notification) + notification = ( + 'Notification("Next:", "' + ', '.join(track_artists) + + ' - ' + track_name + + '", 29000, ' + track_image_url + ')' + ) + xbmc.executebuiltin(notification) def _reload_images(self, track_id): self.log('load images for track: ' + track_id) @@ -193,6 +192,7 @@ class GUI(xbmcgui.WindowXMLDialog): data = response.json() track_data['track_name'] = data.get('name', '') + track_data['track_artists'] = [] # album/track image album = data.get('album') @@ -210,6 +210,28 @@ class GUI(xbmcgui.WindowXMLDialog): else: self.log('ok got album from API') self.log(json.dumps(album)) + # get artists + artists = album.get('artists') + if artists is None: + self.log('failed to get artists from API', xbmc.LOGERROR) + self.log(json.dumps(album), xbmc.LOGERROR) + else: + self.log('ok got artists from API') + self.log(json.dumps(artists)) + for artist in artists: + artist_name = artist.get('name') + if artist_name is None: + self.log( + 'failed to get artist_name from API', + xbmc.LOGERROR) + self.log(json.dumps(artist), xbmc.LOGERROR) + else: + self.log('ok got artist_name from API') + self.log(json.dumps(artist_name)) + + track_data['track_artists'].append(artist_name) + + # get images images = album.get('images') if images is None: self.log('failed to get images from API', xbmc.LOGERROR) @@ -244,17 +266,15 @@ class GUI(xbmcgui.WindowXMLDialog): track_data = self._get_track_data(track_id) track_name = track_data.get('track_name') + track_artists = track_data.get('track_artists') 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 - ) + imageLST.append( + xbmcgui.ListItem( + ', '.join(track_artists) + ' - ' + track_name, + thumbnailImage=track_image_url ) + ) return imageLST diff --git a/resources/skins/default/1080i/default.xml b/resources/skins/default/1080i/default.xml index cc4d6b1..3a90503 100644 --- a/resources/skins/default/1080i/default.xml +++ b/resources/skins/default/1080i/default.xml @@ -59,7 +59,7 @@ <textcolor>ffffffff</textcolor> <shadowcolor>ff000000</shadowcolor> <info>ListItem.Label</info> - <animation effect="fade" start="100" end="0" time="25000" condition="True">Conditional</animation> + <animation effect="fade" start="100" end="0" time="120000" condition="True">Conditional</animation> </control> </focusedlayout > </control> -- GitLab