From fa9a24cbc5b3de35834be0066e35874f43831b9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Wed, 2 Mar 2022 16:22:22 +0100
Subject: [PATCH] Improve check spotify events file exists, clean some code

---
 addon.xml |  2 +-
 gui.py    | 26 +++++++++++++++++++-------
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/addon.xml b/addon.xml
index 3d0bc40..1d24d4a 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.3"
+    version="0.0.4"
     provider-name="Benoît Harrault">
     <requires>
         <import addon="xbmc.python" version="2.25.0"/>
diff --git a/gui.py b/gui.py
index 799eb18..e649d4e 100644
--- a/gui.py
+++ b/gui.py
@@ -89,7 +89,12 @@ class GUI(xbmcgui.WindowXMLDialog):
             self.next = False
             countdown = self.slideshow_time
             # display the image for the specified amount of time
-            while (not self.Monitor.abortRequested()) and (not self.stop) and (not self.next) and countdown > 0:
+            while (
+                (not self.Monitor.abortRequested())
+                and (not self.stop)
+                and (not self.next)
+                and countdown > 0
+            ):
                 countdown -= 1
                 xbmc.sleep(1000)
                 new_last_spotify_event = self._get_last_spotify_event()
@@ -109,7 +114,6 @@ class GUI(xbmcgui.WindowXMLDialog):
         self.log('spotify event: ' + spotify_event)
         event_split = spotify_event.split(':')
 
-        event_device = event_split[0]
         event_type = event_split[1]
         event_value = event_split[2] if len(event_split) > 2 else ''
 
@@ -137,12 +141,16 @@ class GUI(xbmcgui.WindowXMLDialog):
         imageLST = []
 
         headers = {
-            'Authorization': 'Bearer {token}'.format(token=self.spotify_access_token)
+            'Authorization': 'Bearer {token}'.format(
+                token=self.spotify_access_token
+            )
         }
 
         try:
-            response = requests.get(SPOTIFY_API_BASE_URL + 'tracks/' +
-                                    track_id, headers=headers)
+            response = requests.get(
+                SPOTIFY_API_BASE_URL + 'tracks/' + track_id,
+                headers=headers
+            )
             data = response.json()
 
             track_name = data['name']
@@ -156,7 +164,7 @@ class GUI(xbmcgui.WindowXMLDialog):
                 xbmcgui.ListItem(track_name, thumbnailImage=image_url)
             )
         except Exception as e:
-            self.log('failed to get track data', xbmc.LOGERROR)
+            self.log('failed to get track data ' + e.toString(), xbmc.LOGERROR)
 
         return imageLST
 
@@ -171,8 +179,12 @@ class GUI(xbmcgui.WindowXMLDialog):
         self.close()
 
     def _get_last_spotify_event(self):
-        with open(LIBRESPOT_EVENT_FILE, 'r') as f:
+        try:
+            f = open(LIBRESPOT_EVENT_FILE, 'r')
             last_event = f.readlines()[-1]
+        finally:
+            f.close()
+
         last_event = ''.join(last_event.splitlines())
         return last_event
 
-- 
GitLab