"""Invalidates the memory cache"""
xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty('memcache', pickle.dumps({}))
- def has_cached_item (self, cache_id):
- """Checks if the requested item is in memory cache
-
- Parameters
- ----------
- cache_id : :obj:`str`
- ID of the cache entry
-
- Returns
- -------
- bool
- Item is cached
- """
- cached_items = pickle.loads(xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty('memcache'))
- return cache_id in cached_items.keys()
-
def get_cached_item (self, cache_id):
"""Returns an item from the in memory cache
Contents of the requested cache item or none
"""
cached_items = pickle.loads(xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty('memcache'))
- if self.has_cached_item(cache_id) != True:
- return None
- return cached_items[cache_id]
+
+ return cached_items.get(cache_id)
def add_cached_item (self, cache_id, contents):
"""Adds an item to the in memory cache
if video_list[video_list_id]['type'] == 'movie':
# it´s a movie, so we need no subfolder & a route to play it
isFolder = False
- url = build_url({'action': 'play_video', 'video_id': video_list_id})
+ url = build_url({'action': 'play_video', 'video_id': video_list_id, 'infoLabels': infos})
else:
# it´s a show, so we need a subfolder & route (for seasons)
isFolder = True
# add list item info
li, infos = self._generate_entry_info(entry=episode, li=li, base_info={'mediatype': 'episode'})
li = self._generate_context_menu_items(entry=episode, li=li)
- url = build_url({'action': 'play_video', 'video_id': episode_id, 'start_offset': episode['bookmark']})
+ url = build_url({'action': 'play_video', 'video_id': episode_id, 'start_offset': episode['bookmark'], 'infoLabels': infos})
xbmcplugin.addDirectoryItem(handle=self.plugin_handle, url=url, listitem=li, isFolder=False)
xbmcplugin.addSortMethod(handle=self.plugin_handle, sortMethod=xbmcplugin.SORT_METHOD_EPISODE)
xbmcplugin.endOfDirectory(self.plugin_handle)
return True
- def play_item (self, esn, video_id, start_offset=-1):
+ def play_item (self, esn, video_id, start_offset=-1, infoLabels={}):
"""Plays a video
Parameters
start_offset : :obj:`str`
Offset to resume playback from (in seconds)
+
+ infoLabels : :obj:`str`
+ the listitem's infoLabels
Returns
-------
# check if we have a bookmark e.g. start offset position
if int(start_offset) > 0:
play_item.setProperty('StartOffset', str(start_offset) + '.0')
+ # set infoLabels
+ if len(infoLabels) > 0:
+ play_item.setInfo('video', infoLabels)
return xbmcplugin.setResolvedUrl(self.plugin_handle, True, listitem=play_item)
def _generate_art_info (self, entry, li):