From 8651f989ba72ffaa782a2ece03654d496bda9a75 Mon Sep 17 00:00:00 2001 From: Shaun Date: Sun, 25 Feb 2018 11:23:23 +1100 Subject: [PATCH] add background random image link --- addon.xml | 2 +- resources/lib/widgets.py | 55 ++++++++++++++++++++++++++++------------ service.py | 34 ++++--------------------- 3 files changed, 45 insertions(+), 46 deletions(-) diff --git a/addon.xml b/addon.xml index 9bd1d94..34a737e 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ diff --git a/resources/lib/widgets.py b/resources/lib/widgets.py index 6a63c2d..2f66ef2 100644 --- a/resources/lib/widgets.py +++ b/resources/lib/widgets.py @@ -20,18 +20,41 @@ dataManager = DataManager() kodi_version = int(xbmc.getInfoLabel('System.BuildVersion')[:2]) +def set_background_image(): + log.debug("set_background_image Called") + + url = ('{server}/emby/Users/{userid}/Items' + + '?Recursive=true' + + '&limit=1' + + '&SortBy=Random' + + '&IncludeItemTypes=Movie,Series' + + '&ImageTypeLimit=1') + + results = downloadUtils.downloadUrl(url, suppress=True) + results = json.loads(results) + if results is not None: + items = results.get("Items", []) + if len(items) > 0: + item = items[0] + server = downloadUtils.getServer() + bg_image = downloadUtils.getArtwork(item, "Backdrop", server=server) + home_window = HomeWindow() + home_window.setProperty("random-gb", bg_image) + log.debug("random-gb: {0}", bg_image) + + def checkForNewContent(): log.debug("checkForNewContent Called") added_url = ('{server}/emby/Users/{userid}/Items' + - '?Recursive=true' + - '&limit=1' + - '&Fields=DateCreated,Etag' + - '&SortBy=DateCreated' + - '&SortOrder=Descending' + - '&IncludeItemTypes=Movie,Episode' + - '&ImageTypeLimit=0' + - '&format=json') + '?Recursive=true' + + '&limit=1' + + '&Fields=DateCreated,Etag' + + '&SortBy=DateCreated' + + '&SortOrder=Descending' + + '&IncludeItemTypes=Movie,Episode' + + '&ImageTypeLimit=0' + + '&format=json') added_result = downloadUtils.downloadUrl(added_url, suppress=True) result = json.loads(added_result) @@ -46,14 +69,14 @@ def checkForNewContent(): log.debug("last_added_date: {0}", last_added_date) played_url = ('{server}/emby/Users/{userid}/Items' + - '?Recursive=true' + - '&limit=1' + - '&Fields=DateCreated,Etag' + - '&SortBy=DatePlayed' + - '&SortOrder=Descending' + - '&IncludeItemTypes=Movie,Episode' + - '&ImageTypeLimit=0' + - '&format=json') + '?Recursive=true' + + '&limit=1' + + '&Fields=DateCreated,Etag' + + '&SortBy=DatePlayed' + + '&SortOrder=Descending' + + '&IncludeItemTypes=Movie,Episode' + + '&ImageTypeLimit=0' + + '&format=json') played_result = downloadUtils.downloadUrl(played_url, suppress=True) result = json.loads(played_result) diff --git a/service.py b/service.py index 5e5e02b..aab160c 100644 --- a/service.py +++ b/service.py @@ -15,7 +15,7 @@ from resources.lib.downloadutils import DownloadUtils from resources.lib.simple_logging import SimpleLogging from resources.lib.play_utils import Service, PlaybackService, sendProgress from resources.lib.kodi_utils import HomeWindow -from resources.lib.widgets import checkForNewContent +from resources.lib.widgets import checkForNewContent, set_background_image from resources.lib.websocket_client import WebSocketClient from resources.lib.menu_functions import set_library_window_values @@ -41,6 +41,7 @@ playback_service = PlaybackService(monitor) home_window = HomeWindow() last_progress_update = time.time() last_content_check = time.time() +last_background_update = time.time() websocket_client = WebSocketClient() # start the WebSocket Client running @@ -49,34 +50,9 @@ remote_control = settings.getSetting('remoteControl') == "true" if remote_control: websocket_client.start() - -def get_now_playing(): - - # Get the active player - result = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "id": 1, "method": "Player.GetActivePlayers"}') - result = unicode(result, 'utf-8', errors='ignore') - log.debug("Got active player: {0}", result) - result = json.loads(result) - - if 'result' in result and len(result["result"]) > 0: - playerid = result["result"][0]["playerid"] - - # Get details of the playing media - log.debug("Getting details of now playing media") - result = xbmc.executeJSONRPC( - '{"jsonrpc": "2.0", "id": 1, "method": "Player.GetItem", "params": {"playerid": ' + str( - playerid) + ', "properties": ["showtitle", "tvshowid", "episode", "season", "playcount", "genre", "plotoutline", "uniqueid"] } }') - result = unicode(result, 'utf-8', errors='ignore') - log.debug("playing_item_details: {0}", result) - - result = json.loads(result) - return result - - def check_version(): download_utils.checkVersion() - t = Timer(5.0, check_version) t.start() @@ -96,12 +72,12 @@ while not xbmc.abortRequested: last_progress_update = time.time() sendProgress(monitor) else: - # if not playing every 60 seonds check for new widget content if (time.time() - last_content_check) > 60: last_content_check = time.time() checkForNewContent() - - #get_now_playing() + if (time.time() - last_background_update) > 30: + last_background_update = time.time() + set_background_image() except Exception as error: log.error("Exception in Playback Monitor: {0}", error)