diff --git a/addon.xml b/addon.xml index 161574c8a24db2563362a3252cd8b5dc8ac2f6da..0cb4721b3160aa51af00ad2b28222b92104a71e1 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.17" + version="0.0.18" provider-name="BenoƮt Harrault"> <requires> <import addon="xbmc.python" version="2.25.0"/> diff --git a/gui.py b/gui.py index 4a0728e438cbfb059f4eeae8c0a6c2bc610de992..3b85d2416efbd58d8972226963aab309a5b3d542 100644 --- a/gui.py +++ b/gui.py @@ -121,7 +121,7 @@ class GUI(xbmcgui.WindowXMLDialog): self.log('spotify event: ' + spotify_event) event_split = spotify_event.split(':') - event_type = event_split[1] + event_type = event_split[1] if len(event_split) > 1 else '' event_value = event_split[2] if len(event_split) > 2 else '' if event_type == 'changed' or event_type == 'playing': @@ -140,7 +140,7 @@ class GUI(xbmcgui.WindowXMLDialog): elif event_type == 'volume_set': self._unimplemented_event_type(event_type, event_value) else: - self.log('unknown event type: ' + event_type, xbmc.LOGERROR) + self._unknown_event_type(event_type, event_value) def _unimplemented_event_type(self, event_type, event_value): self.log( @@ -148,6 +148,13 @@ class GUI(xbmcgui.WindowXMLDialog): + ' (value: ' + str(event_value) + ')' ) + def _unknown_event_type(self, event_type, event_value): + self.log( + 'unknown event type: "' + str(event_type) + '"' + + ' (value: "' + str(event_value) + '")', + xbmc.LOGERROR + ) + def _preload_images(self, track_id): self.log('preload images for track: ' + track_id) @@ -327,11 +334,31 @@ class GUI(xbmcgui.WindowXMLDialog): def _get_last_spotify_event(self): last_event = '' + + # open file try: f = open(LIBRESPOT_EVENT_FILE, 'r') - last_event = f.readlines()[-1] - finally: - f.close() + except Exception as e: + self.log( + 'failed to get file ' + LIBRESPOT_EVENT_FILE + ': ' + str(e), + xbmc.LOGERROR + ) + self.log('sleep 60s...', xbmc.LOGERROR) + xbmc.sleep(60000) + else: + # read file (last line) + try: + last_event = f.readlines()[-1] + except Exception as e: + self.log('failed to get content: ' + str(e), xbmc.LOGERROR) + self.log('sleep 10s...', xbmc.LOGERROR) + xbmc.sleep(10000) + else: + # close file + try: + f.close() + except Exception as e: + self.log('failed to close file: ' + str(e), xbmc.LOGERROR) last_event = ''.join(last_event.splitlines()) return last_event