示例#1
0
def execute_library_tasks(videoid, task_handlers, title, nfo_settings=None):
    """Execute library tasks for videoid and show errors in foreground"""
    for task_handler in task_handlers:
        execute_tasks(title=title,
                      tasks=compile_tasks(videoid, task_handler, nfo_settings),
                      task_handler=task_handler,
                      notify_errors=True,
                      library_home=library_path())
示例#2
0
def execute_library_tasks_silently(videoid,
                                   task_handlers,
                                   title=None,
                                   nfo_settings=None):
    """Execute library tasks for videoid and don't show any GUI feedback"""
    # pylint: disable=unused-argument
    for task_handler in task_handlers:
        for task in compile_tasks(videoid, task_handler, nfo_settings):
            try:
                task_handler(task, library_path())
            except Exception:  # pylint: disable=broad-except
                import traceback
                common.error(traceback.format_exc())
                common.error('{} of {} failed', task_handler.__name__,
                             task['title'])
示例#3
0
def execute_library_tasks(videoid,
                          task_handlers,
                          title,
                          sync_mylist=True,
                          nfo_settings=None):
    """Execute library tasks for videoid and show errors in foreground"""
    for task_handler in task_handlers:
        execute_tasks(title=title,
                      tasks=compile_tasks(videoid, task_handler, nfo_settings),
                      task_handler=task_handler,
                      notify_errors=True,
                      library_home=library_path())

        # Exclude update operations
        if task_handlers != [remove_item, export_item]:
            _sync_mylist(videoid, task_handler, sync_mylist)
示例#4
0
def purge():
    """Purge all items exported to Kodi library and delete internal library database"""
    common.info('Purging internal database and kodi library')
    for videoid_value in g.SHARED_DB.get_movies_id_list():
        videoid = common.VideoId.from_path(
            [common.VideoId.MOVIE, videoid_value])
        execute_library_tasks(videoid, [remove_item],
                              common.get_local_string(30030))
    for videoid_value in g.SHARED_DB.get_tvshows_id_list():
        videoid = common.VideoId.from_path(
            [common.VideoId.SHOW, videoid_value])
        execute_library_tasks(videoid, [remove_item],
                              common.get_local_string(30030))
    # If for some reason such as improper use of the add-on, unexpected error or other
    # has caused inconsistencies with the contents of the database or stored files,
    # make sure that everything is removed
    g.SHARED_DB.purge_library()
    for folder_name in [FOLDER_MOVIES, FOLDER_TV]:
        section_dir = xbmc.translatePath(
            xbmc.makeLegalFilename('/'.join([library_path(), folder_name])))
        common.delete_folder_contents(section_dir, delete_subfolders=True)