Exemple #1
0
async def enable_service(bot: Bot, event: CQEvent):
    if isinstance(event, GroupMessageEvent):
        names = event.get_plaintext().split()
        uid = event.user_id
        user_info = await bot.get_stranger_info(user_id=uid)
        nickname = user_info.get('nickname', '未知用户')
        if not names:
            await enable.finish(f'>{nickname}\n请在空格后接要启用的服务名')
        group_id = event.group_id
        svs = Service.get_loaded_services()
        succ, notfound = [], []
        for name in names:
            if name in svs:
                sv = svs[name]
                u_priv = priv.get_user_priv(event)
                if u_priv >= sv.manage_priv:
                    sv.set_enable(group_id)
                    succ.append(name)
                else:
                    await enable.finish(
                        f'>{nickname}\n权限不足!启用[{name}]需要权限:{sv.manage_priv},您的权限:{u_priv}\n{PRIV_TIP}'
                    )
            else:
                notfound.append(name)
        msg = [f'>{nickname}']
        if succ:
            msg.append('已启用服务:' + '、'.join(succ))
        if notfound:
            msg.append('未找到服务:' + '、'.join(notfound))
        if msg:
            await enable.finish('\n'.join(msg))
    elif isinstance(event, PrivateMessageEvent):
        if event.user_id not in salmon.configs.SUPERUSERS:
            await enable.finish('请在群聊中启用服务')
        args = event.get_plaintext().split()
        if len(args) < 2:
            await enable.finish(
                'Input not supported.\nUsage: <service_name> <group_id1> [<group_id2>, ...]'
            )
        name, *group_ids = args
        svs = Service.get_loaded_services()
        if name not in svs:
            await enable.finish(f'未找到服务:{name}')
        sv = svs[name]
        succ = []
        for gid in group_ids:
            try:
                gid = int(gid)
                sv.set_enable(gid)
                succ.append(gid)
            except:
                await bot.send(event, f'非法群号:{gid}')
        await enable.finish(f'服务[{name}]已于{len(succ)}个群内启用:{succ}')
Exemple #2
0
async def _(bot: Bot, event: CQEvent, state: T_State):
    if isinstance(event, GroupMessageEvent):
        state['gids'] = [event.group_id]
    elif isinstance(event, PrivateMessageEvent):
        gid = event.get_plaintext().split()
        if gid:
            state['gids'] = gid
Exemple #3
0
async def set_unban(bot: Bot, event: Event):
    try:
        args = event.get_plaintext().strip().split()
        group_id, user_id = args[:2]
        await bot.set_group_ban(group_id=int(group_id), user_id=int(user_id), duration=0, self_id=event.self_id)
        await bot.send(event, '解除成功')
    except Exception as e:
        logger.exception(e)
        await bot.send(event, f'发生错误{e}')