def mergedItemsMenu(title, itemGetter, itemGetterKwArgs=None, base_title=None, *args, **kwargs): """ displays an item list of dynamic kinds of items :param title: :param itemGetter: :param itemGetterKwArgs: :param base_title: :param args: :param kwargs: :return: """ oc = SubFolderObjectContainer(title2=title, no_cache=True, no_history=True) items = itemGetter(*args, **kwargs) for kind, title, item_id, deeper, item in items: oc.add( DirectoryObject(title=title, key=Callback(ItemDetailsMenu, title=base_title + " > " + title, item_title=title, rating_key=item_id), thumb=get_item_thumb(item) or default_thumb)) return oc
def RecentlyPlayedMenu(): base_title = _("Recently Played") oc = SubFolderObjectContainer(title2=base_title, replace_parent=True) for item in [ get_item(rating_key) for rating_key in Dict["last_played_items"] ]: if not item: continue if getattr(getattr(item, "__class__"), "__name__") not in ("Episode", "Movie"): continue item_title = get_item_title(item) oc.add( DirectoryObject(thumb=get_item_thumb(item) or default_thumb, title=item_title, key=Callback(ItemDetailsMenu, title=base_title + " > " + item.title, item_title=item.title, rating_key=item.rating_key))) return oc
def dig_tree(oc, items, menu_callback, menu_determination_callback=None, force_rating_key=None, fill_args=None, pass_kwargs=None, thumb=default_thumb): for kind, title, key, dig_deeper, item in items: thumb = get_item_thumb(item) or thumb add_kwargs = {} if fill_args: add_kwargs = dict((name, getattr(item, k)) for k, name in fill_args.iteritems() if item and hasattr(item, k)) if pass_kwargs: add_kwargs.update(pass_kwargs) # force details view for show/season summary = " " if kind in ("show", "season") else None oc.add( DirectoryObject( key=Callback(menu_callback or menu_determination_callback( kind, item, pass_kwargs=pass_kwargs), title=title, rating_key=force_rating_key or key, **add_kwargs), title=pad_title(title) if kind in ("show", "season") else title, thumb=thumb, summary=summary)) return oc
def recentItemsMenu(title, base_title=None): oc = ObjectContainer(title2=title, no_cache=True, no_history=True) recent_items = get_recent_items() if recent_items: missing_items = items_get_all_missing_subs(recent_items) if missing_items: for added_at, item_id, title, item in missing_items: oc.add(DirectoryObject( key=Callback(ItemDetailsMenu, title=base_title + " > " + title, item_title=title, rating_key=item_id), title=title, thumb=get_item_thumb(item) or default_thumb )) return oc
def dig_tree(oc, items, menu_callback, menu_determination_callback=None, force_rating_key=None, fill_args=None, pass_kwargs=None, thumb=default_thumb): for kind, title, key, dig_deeper, item in items: thumb = get_item_thumb(item) or thumb add_kwargs = {} if fill_args: add_kwargs = dict((name, getattr(item, k)) for k, name in fill_args.iteritems() if item and hasattr(item, k)) if pass_kwargs: add_kwargs.update(pass_kwargs) oc.add(DirectoryObject( key=Callback(menu_callback or menu_determination_callback(kind, item), title=title, rating_key=force_rating_key or key, **add_kwargs), title=title, thumb=thumb )) return oc
def RecentMissingSubtitlesMenu(force=False, randomize=None): title = _("Items with missing subtitles") oc = SubFolderObjectContainer(title2=title, no_cache=True, no_history=True) running = scheduler.is_task_running("MissingSubtitles") task_data = scheduler.get_task_data("MissingSubtitles") missing_items = task_data["missing_subtitles"] if task_data else None if ((missing_items is None) or force) and not running: scheduler.dispatch_task("MissingSubtitles") running = True if not running: oc.add( DirectoryObject( key=Callback(RecentMissingSubtitlesMenu, force=True, randomize=timestamp()), title=_(u"Find recent items with missing subtitles"), thumb=default_thumb)) else: oc.add( DirectoryObject(key=Callback(RecentMissingSubtitlesMenu, force=False, randomize=timestamp()), title=_(u"Updating, refresh here ..."), thumb=default_thumb)) if missing_items is not None: for added_at, item_id, item_title, item, missing_languages in missing_items: oc.add( DirectoryObject(key=Callback(ItemDetailsMenu, title=title + " > " + item_title, item_title=item_title, rating_key=item_id), title=item_title, summary=_( "Missing: %s", ", ".join( display_language(l) for l in missing_languages)), thumb=get_item_thumb(item) or default_thumb)) return oc
def dig_tree(oc, items, menu_callback, menu_determination_callback=None, force_rating_key=None, fill_args=None, pass_kwargs=None, thumb=default_thumb): for kind, title, key, dig_deeper, item in items: thumb = get_item_thumb(item) or thumb add_kwargs = {} if fill_args: add_kwargs = dict((name, getattr(item, k)) for k, name in fill_args.iteritems() if item and hasattr(item, k)) if pass_kwargs: add_kwargs.update(pass_kwargs) # force details view for show/season summary = " " if kind in ("show", "season") else None oc.add(DirectoryObject( key=Callback(menu_callback or menu_determination_callback(kind, item, pass_kwargs=pass_kwargs), title=title, rating_key=force_rating_key or key, **add_kwargs), title=pad_title(title) if kind in ("show", "season") else title, thumb=thumb, summary=summary )) return oc
def RecentlyPlayedMenu(): base_title = _("Recently Played") oc = SubFolderObjectContainer(title2=base_title, replace_parent=True) for item in [get_item(rating_key) for rating_key in Dict["last_played_items"]]: if not item: continue if getattr(getattr(item, "__class__"), "__name__") not in ("Episode", "Movie"): continue item_title = get_item_title(item) oc.add(DirectoryObject( thumb=get_item_thumb(item) or default_thumb, title=item_title, key=Callback(ItemDetailsMenu, title=base_title + " > " + item.title, item_title=item.title, rating_key=item.rating_key) )) return oc
def mergedItemsMenu(title, itemGetter, itemGetterKwArgs=None, base_title=None, *args, **kwargs): """ displays an item list of dynamic kinds of items :param title: :param itemGetter: :param itemGetterKwArgs: :param base_title: :param args: :param kwargs: :return: """ oc = ObjectContainer(title2=title, no_cache=True, no_history=True) items = itemGetter(*args, **kwargs) for kind, title, item_id, deeper, item in items: oc.add(DirectoryObject( title=title, key=Callback(ItemDetailsMenu, title=base_title + " > " + title, item_title=title, rating_key=item_id), thumb=get_item_thumb(item) or default_thumb )) return oc
def RecentMissingSubtitlesMenu(force=False, randomize=None): title = _("Items with missing subtitles") oc = SubFolderObjectContainer(title2=title, no_cache=True, no_history=True) running = scheduler.is_task_running("MissingSubtitles") task_data = scheduler.get_task_data("MissingSubtitles") missing_items = task_data["missing_subtitles"] if task_data else None if ((missing_items is None) or force) and not running: scheduler.dispatch_task("MissingSubtitles") running = True if not running: oc.add(DirectoryObject( key=Callback(RecentMissingSubtitlesMenu, force=True, randomize=timestamp()), title=_(u"Find recent items with missing subtitles"), thumb=default_thumb )) else: oc.add(DirectoryObject( key=Callback(RecentMissingSubtitlesMenu, force=False, randomize=timestamp()), title=_(u"Updating, refresh here ..."), thumb=default_thumb )) if missing_items is not None: for added_at, item_id, item_title, item, missing_languages in missing_items: oc.add(DirectoryObject( key=Callback(ItemDetailsMenu, title=title + " > " + item_title, item_title=item_title, rating_key=item_id), title=item_title, summary=_("Missing: %s", ", ".join(display_language(l) for l in missing_languages)), thumb=get_item_thumb(item) or default_thumb )) return oc