from nonebot.typing import T_State from nonebot.permission import SUPERUSER from nonebot.adapters.cqhttp.permission import GROUP_ADMIN, GROUP_OWNER from nonebot.adapters.cqhttp import ( Bot, MessageEvent, GroupMessageEvent, PrivateMessageEvent ) from ATRI.service import Service as sv __doc__ = """ 启用功能,针对单群 权限组:维护者,群管理 用法: 启用 目标命令 示例: 启用 以图搜图 """ cur_service_ena = sv.on_command( cmd="启用功能", docs=__doc__, permission=SUPERUSER|GROUP_ADMIN|GROUP_OWNER ) @cur_service_ena.args_parser # type: ignore async def _cur_ena_load(bot: Bot, event: GroupMessageEvent, state: T_State) -> None: msg = str(event.message).strip() quit_list = ['算了', '罢了', '取消'] if msg in quit_list: await cur_service_ena.finish('好吧...') if not msg: await cur_service_ena.reject('请告诉咱目标命令!') else: state['service_e'] = msg @cur_service_ena.handle() async def _cur_ena(bot: Bot, event: GroupMessageEvent, state: T_State) -> None: msg = str(event.message).strip() if msg: state['service_e'] = msg @cur_service_ena.got('service_e', prompt='请告诉咱目标命令!') async def _deal_cur_ena(bot: Bot, event: GroupMessageEvent, state: T_State) -> None: cmd = state['service_e'] group = str(event.group_id) sv.control_service(cmd, False, True, group=group) await cur_service_ena.finish(f'成功!本群已启用:{cmd}') @cur_service_ena.handle() async def _refuse_cur_ena(bot: Bot, event: PrivateMessageEvent, state: T_State) -> None: await cur_service_ena.finish('只能在群聊中决定哦...') __doc__ = """ 禁用功能,针对单群 权限组:维护者,群管理 用法: 禁用 目标命令 示例: 禁用 以图搜图 """ cur_service_dis = sv.on_command( cmd="禁用功能", docs=__doc__, permission=SUPERUSER|GROUP_ADMIN|GROUP_OWNER ) @cur_service_dis.args_parser # type: ignore async def _cur_dis_load(bot: Bot, event: GroupMessageEvent, state: T_State) -> None: msg = str(event.message).strip() quit_list = ['算了', '罢了', '取消'] if msg in quit_list: await cur_service_dis.finish('好吧...') if not msg: await cur_service_dis.reject('请告诉咱目标命令!') else: state['service_d'] = msg @cur_service_dis.handle() async def _cur_dis(bot: Bot, event: GroupMessageEvent, state: T_State) -> None: msg = str(event.message).strip() if msg: state['service_d'] = msg @cur_service_dis.got('service_d', prompt='请告诉咱目标命令!') async def _deal_cur_dis(bot: Bot, event: GroupMessageEvent, state: T_State) -> None: cmd = state['service_d'] group = str(event.group_id) sv.control_service(cmd, False, False, group=group) await cur_service_dis.finish(f'成功!本群已禁用:{cmd}') @cur_service_dis.handle() async def _refuse_cur_dis(bot: Bot, event: PrivateMessageEvent, state: T_State) -> None: await cur_service_dis.finish('只能在群聊中决定哦...') __doc__ = """ 全局启用功能 权限组:维护者 用法: 全局启用 目标命令 示例: 全局启用 以图搜图 """ glo_service_ena = sv.on_command( cmd="全局启用", docs=__doc__, permission=SUPERUSER ) @glo_service_ena.args_parser # type: ignore async def _glo_ena_load(bot: Bot, event: MessageEvent, state: T_State) -> None: msg = str(event.message).strip() quit_list = ['算了', '罢了', '取消'] if msg in quit_list: await glo_service_ena.finish('好吧...') if not msg: await glo_service_ena.reject('请告诉咱目标命令!') else: state['service_e_g'] = msg @glo_service_ena.handle() async def _glo_ena(bot: Bot, event: MessageEvent, state: T_State) -> None: msg = str(event.message).strip() if msg: state['service_e_g'] = msg @glo_service_ena.got('service_e_g', prompt='请告诉咱目标命令!') async def _deal_glo_ena(bot: Bot, event: MessageEvent, state: T_State) -> None: cmd = state['service_e_g'] sv.control_service(cmd, True, True) await glo_service_ena.finish(f'成功!已全局启用:{cmd}') __doc__ = """ 全局禁用功能 权限组:维护者 用法: 全局禁用 目标命令 示例: 全局禁用 以图搜图 """ glo_service_dis = sv.on_command( cmd="全局禁用", docs=__doc__, permission=SUPERUSER ) @glo_service_dis.args_parser # type: ignore async def _glo_dis_load(bot: Bot, event: MessageEvent, state: T_State) -> None: msg = str(event.message).strip() quit_list = ['算了', '罢了', '取消'] if msg in quit_list: await glo_service_dis.finish('好吧...') if not msg: await glo_service_dis.reject('请告诉咱目标命令!') else: state['service_d_g'] = msg @glo_service_dis.handle() async def _glo_dis(bot: Bot, event: MessageEvent, state: T_State) -> None: msg = str(event.message).strip() if msg: state['service_d_g'] = msg @glo_service_dis.got('service_d_g', prompt='请告诉咱目标命令!') async def _deal_glo_dis(bot: Bot, event: MessageEvent, state: T_State) -> None: cmd = state['service_d_g'] sv.control_service(cmd, True, False) await glo_service_dis.finish(f'成功!已全局禁用:{cmd}')