Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • kodi/script.spotify.screensaver
1 result
Show changes
Commits on Source (2)
<?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"/>
......
......@@ -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)
......
......@@ -35,3 +35,7 @@ msgstr "Spotify Client Id"
msgctxt "#32005"
msgid "SpotifyClientSecret"
msgstr "Spotify Client Secret"
msgctxt "#32006"
msgid "ForceDebug"
msgstr "Force debug"
<?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>