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}')
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
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}')