diff --git a/addon.xml b/addon.xml index 143d7e5822904f11a8876e826b5657bea732c920..2a5464fc09cd55a8f14f91f6847c1c5c1caf93a2 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.10" + version="0.0.11" provider-name="BenoƮt Harrault"> <requires> <import addon="xbmc.python" version="2.25.0"/> diff --git a/gui.py b/gui.py index 3722bbb821fccb465d41e3b5dd75cc6047a44b63..8c4d591c53935f2e4494f55d7c97d18d6fb564e4 100644 --- a/gui.py +++ b/gui.py @@ -3,6 +3,7 @@ import random import xbmc import xbmcaddon import xbmcgui +import json # Plugin data and configuration ADDON_ID = 'script.spotify.screensaver' @@ -22,6 +23,9 @@ class GUI(xbmcgui.WindowXMLDialog): self.isExiting = False def log(self, msg, level=xbmc.LOGDEBUG): + if self.force_debug: + level = xbmc.LOGERROR + xbmc.log(ADDON_ID + ' - ' + ADDON_VERSION + ' - ' + msg, level) def onInit(self): @@ -65,6 +69,8 @@ class GUI(xbmcgui.WindowXMLDialog): self.spotify_client_secret = SETTINGS.getSetting( 'SpotifyClientSecret').decode('utf-8') + self.force_debug = SETTINGS.getSetting('ForceDebug') == 'true' + def _init_spotify_access_token(self): auth_response = requests.post(SPOTIFY_AUTH_URL, { 'grant_type': 'client_credentials', @@ -137,27 +143,26 @@ class GUI(xbmcgui.WindowXMLDialog): def _unimplemented_event_type(self, event_type, event_value): self.log( 'unimplemented event type: ' + str(event_type) - + ' (value: ' + str(event_value) + ')', - xbmc.LOGDEBUG + + ' (value: ' + str(event_value) + ')' ) def _preload_images(self, track_id): - self.log('preload images for track: ' + track_id, xbmc.LOGERROR) + self.log('preload images for track: ' + track_id) self._get_track_data(track_id) def _reload_images(self, track_id): - self.log('load images for track: ' + track_id, xbmc.LOGERROR) + 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)) def _remove_images(self): - self.log('no played track. remove images', xbmc.LOGERROR) + self.log('no played track. remove images') self.PanelItems = self.getControl(101) self.PanelItems.reset() def _get_track_data(self, track_id): - self.log('track_id: [' + str(track_id) + ']', xbmc.LOGERROR) + self.log('track_id: [' + str(track_id) + ']') imageLST = [] @@ -178,13 +183,33 @@ class GUI(xbmcgui.WindowXMLDialog): # album/track image album = data.get('album') - if album is not None: + if album is None: + self.log('failed to get album from API', xbmc.LOGERROR) + self.log(json.dumps(data), xbmc.LOGERROR) + else: + self.log('ok got album from API') + self.log(json.dumps(album)) images = album.get('images') - if images is not None: + if images is None: + self.log('failed to get images from API', xbmc.LOGERROR) + self.log(json.dumps(album), xbmc.LOGERROR) + else: + self.log('ok got images from API') + self.log(json.dumps(images)) image = images[0] - if image is not None: + if image is None: + self.log('failed to get image from API', xbmc.LOGERROR) + self.log(json.dumps(images), xbmc.LOGERROR) + else: + self.log('ok got image from API') + self.log(json.dumps(image)) image_url = image.get('url') - if image_url is not None: + if image_url is None: + self.log('failed to get 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) diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index c8442f2c27dc6a29668bc7b62ef00cd8c2eb56d3..2568c5ddc6cece129f22f0b6963529455931c50c 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -35,3 +35,7 @@ msgstr "Spotify Client Id" msgctxt "#32005" msgid "SpotifyClientSecret" msgstr "Spotify Client Secret" + +msgctxt "#32006" +msgid "ForceDebug" +msgstr "Force debug" diff --git a/resources/settings.xml b/resources/settings.xml index 2804cc0cef2e782b66c90e667630d5dbdc923999..5183be81473591b7050972e006854fc6e7e92ffe 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <settings> - <setting id="RotateTime" type="enum" label="32001" default="0" values="30s|60s|120s|240s"/> - <setting id="Randomize" type="bool" label="32002" default="false"/> - <setting id="Animate" type="bool" label="32003" default="false"/> + <setting id="RotateTime" type="enum" label="32001" default="0" values="30s|60s|120s|240s"/> + <setting id="Randomize" type="bool" label="32002" default="false"/> + <setting id="Animate" type="bool" label="32003" default="false"/> <setting id="SpotifyClientId" type="text" label="32004" default="SpotifyClientId"/> <setting id="SpotifyClientSecret" type="text" label="32005" default="SpotifyClientSecret"/> + <setting id="ForceDebug" type="bool" label="32006" default="false"/> </settings>