コード例 #1
0
ファイル: __init__.py プロジェクト: arielnetworks/pekipeki
def init_handlers(skp, conf):
    u'''
    ハンドラを登録する
    '''

    from pekipeki import plugins, utils

    for mod in utils.list_package_modules(plugins):

        if not hasattr(mod, 'init_skype') and not hasattr(mod, 'init_handler'):
            sys.stderr.write('skip {0}\n'.format(mod.__name__))
            continue

        sec = conf.get_section(utils.get_name(mod))

        try:
            if hasattr(mod, 'init_skype'):
                mod.init_skype(skp, sec)
            elif hasattr(mod, 'init_handler'):
                mod.init_handler(skp, sec)

            print 'register handler plugin:', mod.__name__
        except KeyboardInterrupt:
            raise
        except:
            import traceback
            traceback.print_exc()
コード例 #2
0
ファイル: __init__.py プロジェクト: arielnetworks/pekipeki
def init(conf):

    from . import skype, slack
    from pekipeki import utils

    proxy = ServiceProxy()

    for service in [slack, skype]:
        name = utils.get_name(service)
        s = service.init(conf.get_section(name))

        if s:
            proxy.add_service(s)
            print 'initialized service:', name

    return proxy
コード例 #3
0
ファイル: __init__.py プロジェクト: arielnetworks/pekipeki
def init_config():
    u'''
    コンフィグのセクション情報を追加する
    '''

    from . import config, utils
    conf = config.ConfigSetting()

    targets = itertools.chain(load_services(), load_plugins())

    for mod in targets:

        def conf_addr(keys, defaults):
            conf.add_section(utils.get_name(mod), keys, defaults)

        if hasattr(mod, 'init_config'):

            mod.init_config(conf_addr)

        if not conf.has_section(utils.get_name(mod)):
            conf_addr([], {})

    return conf
コード例 #4
0
ファイル: __init__.py プロジェクト: arielnetworks/pekipeki
 def conf_addr(keys, defaults):
     conf.add_section(utils.get_name(mod), keys, defaults)