コード例 #1
0
async def set_pool(bot: KokkoroBot, ev: EventInterface):
    if not priv.check_priv(ev.get_author(), priv.ADMIN):
        await bot.kkr_send(ev, '只有群管理才能切换卡池', at_sender=True)
        return
    name = util.normalize_str(ev.get_param().remain)
    if not name:
        await bot.kkr_send(ev, POOL_NAME_TIP)
        return
    elif name in ('国', '国服', 'cn'):
        await bot.kkr_send(ev, '请选择以下卡池\n> 选择卡池 b服\n> 选择卡池 台服', at_sender=True)
        return
    elif name in ('b', 'b服', 'bl', 'bilibili'):
        name = 'BL'
    elif name in ('台', '台服', 'tw', 'sonet'):
        name = 'TW'
    elif name in ('日', '日服', 'jp', 'cy', 'cygames'):
        name = 'JP'
    elif name in ('混', '混合', 'mix'):
        name = 'MIX'
    else:
        await bot.kkr_send(ev, f'未知服务器地区 {POOL_NAME_TIP}', at_sender=True)
        return
    gid = ev.get_group_id()
    _group_pool[gid] = name
    dump_pool_config()
    await bot.kkr_send(ev, f'卡池已切换为{name}池', at_sender=True)
コード例 #2
0
        async def set_bc_tag(bot, ev):
            if not priv.check_priv(ev.get_author(), priv.ADMIN):
                await bot.kkr_send(ev, f'只有管理员才可以修改推送频道标签 0x0')
                return
            gid = ev.get_group_id()
            new_tags = ev.get_param().remain
            if new_tags in ['', None]:
                await bot.kkr_send(ev, f'请输入服务 <{self.name}> 的推送频道的标签\n多个标签请以空格分隔')
                return
            new_tags = new_tags.split(' ')
            self.set_broadcast_tag(gid, new_tags)

            await bot.kkr_send(ev, f'服务 <{self.name}> 的推送频道的标签成功更新为 {new_tags}')
コード例 #3
0
async def handle_message(bot, ev):
    kokkoro.logger.debug(f'Receive message:{ev.get_content()}')
    if ev.get_content() in [None, ""]:
        return # ignore 
        
    to_me = preprocess_message(ev)
    kokkoro.logger.debug(f'Searching for Message Handler...')
    for t in trigger.chain:
        sf = t.find_handler(ev)
        if sf:
            trigger_name = t.__class__.__name__
            break

    if not sf:
        kokkoro.logger.debug(f'Message "{ev.get_id()}" triggered nothing')
        return  # triggered nothing.
    sf.sv.logger.info(f'Message {ev.get_id()} triggered {sf.__name__} by {trigger_name}.')

    if sf.only_to_me and not to_me:
        return  # not to me, ignore.

    gid = ev.get_group_id()
    if not sf.sv.check_enabled(gid):
        await bot.kkr_send(ev, f'服务 <{sf.sv.name}> 未启用,请呼叫管理员开启服务 0x0 ', at_sender=True)
        return
    if priv.check_block_group(gid): # not used now
        return
    if not priv.check_priv(ev.get_author(), sf.sv.use_priv): # permission denied
        await bot.kkr_send(ev, '权限不足 0x0 ', at_sender=True)
        return



    try:
        await sf.func(bot, ev)
    except Exception as e:
        sf.sv.logger.error(f'{type(e)} occured when {sf.__name__} handling message {ev.get_id()}.')
        sf.sv.logger.exception(e)
コード例 #4
0
def _check_admin(ev: EventInterface, tip: str = '') -> bool:
    if not priv.check_priv(ev.get_author(), priv.ADMIN):
        raise PermissionDeniedError(ERROR_PERMISSION_DENIED + tip)
コード例 #5
0
 def _check_all(self, ev: EventInterface):
     gid = ev.get_group_id()
     return self.check_enabled(gid) and not priv.check_block_group(gid) and priv.check_priv(ev, self.use_priv)