From a6f1f6a46a943446354055a2452ef1daad930644 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Thu, 5 May 2022 17:24:22 +0200
Subject: [PATCH] Fix encoding in title and artist name

---
 addon.xml | 2 +-
 gui.py    | 9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/addon.xml b/addon.xml
index 02179a3..17e7f1e 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.15"
+    version="0.0.16"
     provider-name="Benoît Harrault">
     <requires>
         <import addon="xbmc.python" version="2.25.0"/>
diff --git a/gui.py b/gui.py
index e164525..23ba406 100644
--- a/gui.py
+++ b/gui.py
@@ -172,6 +172,9 @@ class GUI(xbmcgui.WindowXMLDialog):
         self.PanelItems = self.getControl(101)
         self.PanelItems.reset()
 
+    def _fix_encoding(self, string):
+        return string.encode('utf-8')
+
     def _get_track_data(self, track_id, try_count=1):
         self.log('track_id: [' + str(track_id) + ']')
         self.log('(try: ' + str(try_count) + ')')
@@ -191,7 +194,7 @@ class GUI(xbmcgui.WindowXMLDialog):
             )
             data = response.json()
 
-            track_data['track_name'] = data.get('name', '')
+            track_data['track_name'] = self._fix_encoding(data.get('name', ''))
             track_data['track_artists'] = []
 
             # album/track image
@@ -229,7 +232,7 @@ class GUI(xbmcgui.WindowXMLDialog):
                             self.log('ok got artist_name from API')
                             self.log(json.dumps(artist_name))
 
-                            track_data['track_artists'].append(artist_name)
+                            track_data['track_artists'].append(self._fix_encoding(artist_name))
 
                 # get images
                 images = album.get('images')
@@ -257,7 +260,7 @@ class GUI(xbmcgui.WindowXMLDialog):
                             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)
+            self.log('failed to get track data: ' + str(e), xbmc.LOGERROR)
 
         return track_data
 
-- 
GitLab