diff --git a/resources/lib/downloader.py b/resources/lib/downloader.py index 38e7b41b..02a41137 100644 --- a/resources/lib/downloader.py +++ b/resources/lib/downloader.py @@ -105,17 +105,17 @@ def get_filtered_section(parent_id, media=None, limit=None, recursive=None, sort return _get("Users/{UserId}/Items", params, server_id) -def get_movies_by_boxset(boxset_id, server_id=None): +def get_movies_by_boxset(boxset_id): - for items in get_items(boxset_id, "Movie", server_id=server_id): + for items in get_items(boxset_id, "Movie"): yield items -def get_episode_by_show(show_id, server_id=None): +def get_episode_by_show(show_id): - for items in get_items(show_id, "Episode", server_id=server_id): + for items in get_items(show_id, "Episode"): yield items -def get_items(parent_id, item_type=None, basic=False, params=None, server_id=None): +def get_items(parent_id, item_type=None, basic=False, params=None): query = { 'url': "Users/{UserId}/Items", @@ -127,11 +127,10 @@ def get_items(parent_id, item_type=None, basic=False, params=None, server_id=Non 'Fields': api.basic_info() if basic else api.info() } } - if params: query['params'].update(params) - for items in _get_items(query, server_id): + for items in _get_items(query): yield items def get_artists(parent_id=None, basic=False, params=None, server_id=None): diff --git a/resources/lib/views.py b/resources/lib/views.py index 4dd499b3..59a10602 100644 --- a/resources/lib/views.py +++ b/resources/lib/views.py @@ -97,6 +97,7 @@ class Views(object): sync = None limit = 25 + media_folders = None def __init__(self): @@ -730,11 +731,7 @@ class Views(object): window('%s.id' % window_prop, view['Id']) window('%s.path' % window_prop, window_path) window('%s.type' % window_prop, view['Media']) - - if self.server['connected']: - - artwork = api.API(None, self.server['auth/server-address']).get_artwork(view['Id'], 'Primary') - window('%s.artwork' % window_prop, artwork) + self.window_artwork(window_prop, view['Id']) def window_single_node(self, index, item_type, view): @@ -759,7 +756,7 @@ class Views(object): else: path = self.window_path(view, node) - if node in ('browse', 'audiobooks'): + if node in ('browse', 'books', 'audiobooks'): window_path = path else: window_path = "ActivateWindow(Videos,%s,return)" % path @@ -787,11 +784,23 @@ class Views(object): window('%s.id' % window_prop, view['Id']) window('%s.path' % window_prop, window_path) window('%s.type' % window_prop, view['Media']) + self.window_artwork(window_prop, view['Id']) + + def window_artwork(self, prop, view_id): if self.server['connected']: - artwork = api.API(None, self.server['auth/server-address']).get_artwork(view['Id'], 'Primary') - window('%s.artwork' % window_prop, artwork) + if self.media_folders is None: + self.media_folders = self.server['api'].get_media_folders()['Items'] + + for library in self.media_folders: + + if library['Id'] == view_id and 'Primary' in library.get('ImageTags', {}): + + artwork = api.API(None, self.server['auth/server-address']).get_artwork(view_id, 'Primary') + window('%s.artwork' % prop, artwork) + + break def window_path(self, view, node): return "library://video/emby%s%s/%s.xml" % (view['Media'], view['Id'], node)