示例#1
0
def bootstrap_random_trailers(screensaver: bool) -> None:
    """
    :param screensaver: True when launched as a screensaver
    :return:
    """
    try:
        Monitor.register_settings_changed_listener(
            Settings.on_settings_changed)

        Monitor.register_settings_changed_listener(
            LazyLogger.on_settings_changed)

        MainThreadLoop.class_init(screensaver)
        MainThreadLoop.startup()

        # LazyLogger can be unusable during shutdown

        if module_logger.isEnabledFor(LazyLogger.DEBUG):
            module_logger.exit('Exiting plugin')

    except AbortException:
        pass  # Exit in finally block
    except Exception:
        module_logger.exception('')
    finally:
        if REMOTE_DEBUG:
            try:
                pydevd.stoptrace()
            except Exception:
                pass
        sys.exit(0)
    def init_class(cls) -> None:
        """

        """
        if cls._logger is None:
            cls._logger = module_logger.getChild(cls.__name__)
            Monitor.register_settings_changed_listener(cls.on_settings_changed)
    def __init__(
            self,
            group=None,  # type: None
            # type: Callable[Union[None, Any], Union[Any, None]]
        target=None,
            thread_name=None,  # type: str
            args=(),  # type: Optional[Any]
            kwargs=None  # type: Optional[Any]
    ):
        # type: (...) -> None
        """

        :param group:
        :param target:
        :param thread_name:
        :param args:
        :param kwargs:
        """
        clz = BaseDiscoverMovies
        if clz.logger is None:
            clz.logger = module_logger.getChild(clz.__name__)

        movie_source = None
        if kwargs is not None:
            movie_source = kwargs.pop(Movie.SOURCE, None)

        assert movie_source is not None

        if thread_name is None or thread_name == '':
            thread_name = Constants.ADDON_PATH + '.BaseDiscoverMovies'
        super().__init__(group=group,
                         target=target,
                         name=thread_name,
                         args=args,
                         kwargs=kwargs)
        cls = type(self)
        if cls.__name__ != 'BaseDiscoverMovies':
            Monitor.register_settings_changed_listener(
                self.on_settings_changed)

        self._trailers_discovered = threading.Event()
        self._removed_trailers = 0
        self._movie_data = None  # type: Optional[AbstractMovieData]
        self._discovery_complete = False
        self._stop_thread = False
        if movie_source is not None:
            BaseDiscoverMovies._instance_map['movie_source'] = movie_source
示例#4
0
def startup_non_main_thread():
    # type: () -> None
    """

    :return:
    """
    if module_logger.isEnabledFor(LazyLogger.DEBUG):
        module_logger.debug('%s', 'Enter', lazy_logger=False)

    Settings.save_settings()
    Monitor.register_settings_changed_listener(
        Settings.on_settings_changed)
    Monitor.register_settings_changed_listener(
        LazyLogger.on_settings_changed)
    try:
        Settings.get_locale()
    except AbortException:
        reraise(*sys.exc_info())
    except Exception:
        pass
    load_trailers()

    # Start the periodic garbage collector

    CacheManager.get_instance().start_cache_garbage_collection_thread()
    Monitor.register_settings_changed_listener(load_trailers)