コード例 #1
0
ファイル: thread.py プロジェクト: dokuhebi/home_config
def module_start():
    # Import modules
    plugin_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
    log.debug('plugin_dir: %r', plugin_dir)

    import_modules(os.path.join(plugin_dir, 'api'), exclude=[
        '__init__.py',
        'core'
    ])

    import_modules(os.path.join(plugin_dir, 'api', 'account'), exclude=[
        '__init__.py'
    ])

    import_modules(os.path.join(plugin_dir, 'api', 'session'), exclude=[
        '__init__.py'
    ])

    import_modules(os.path.join(plugin_dir, 'managers'), exclude=[
        '__init__.py',
        'core'
    ])

    import_modules(os.path.join(plugin_dir, 'modules'), exclude=[
        '__init__.py',
        'backup',
        'core'
    ])

    import_modules(os.path.join(plugin_dir, 'scrobbler'), exclude=[
        '__init__.py',
        'core',
        'handlers',
        'methods'
    ])

    import_modules(os.path.join(plugin_dir, 'scrobbler', 'handlers'), exclude=[
        '__init__.py'
    ])

    # Start modules
    modules = sorted(MODULES.items(), key=lambda item: item[1]['priority'])

    log.debug('Starting %d module(s)...', len(modules))

    for kls, options in modules:
        if not options['start']:
            continue

        log.debug(' -> %s (priority: %d, blocking: %s)', kls.__name__, options['priority'], options['blocking'])

        f_start = getattr(kls, 'start')

        try:
            # Start module
            if options['blocking']:
                f_start()
            else:
                options['thread'] = spawn(f_start, _name=kls.__name__)

        except Exception as ex:
            log.error('Unable to start %r module: %s', kls, ex, exc_info=True)

    log.debug('Finished starting %d module(s)', len(modules))
コード例 #2
0
# Setup native libraries
from plugin.core.libraries import LibrariesManager

LibrariesManager.setup(cache=False)
LibrariesManager.test()

# Setup database proxy
from plugin.core.database import Database
from tests.helpers.database import DATABASE_PROXY

db_path = os.path.abspath(Environment.path.plugin_database)

Database._cache['peewee'][db_path] = DATABASE_PROXY

# Configure plex.database.py
os.environ['LIBRARY_DB'] = os.path.join(
    Environment.path.plugin_support, 'Databases',
    'com.plexapp.plugins.library.db'
)

#
# Modules
#

from plugin.core.importer import import_modules

import_modules(os.path.join(PLUGIN_DIR, 'scrobbler', 'handlers'), exclude=[
    '__init__.py'
])
コード例 #3
0
#
# Preferences
#

from plugin.preferences.main import Preferences

@classmethod
def preferences_get(cls, key, account=None):
    return None

# Patch `Preferences.get` method
Preferences.get = preferences_get

#
# Modules
#

from plugin.core.importer import import_modules
from plugin.modules.core.manager import ModuleManager

# ModuleManager
ModuleManager.initialize()
ModuleManager.start([
    'matcher'
])

# Scrobbler
import_modules(os.path.join(PLUGIN_DIR, 'scrobbler', 'handlers'), exclude=[
    '__init__.py'
])