diff options
author | Kyomotoi <[email protected]> | 2021-07-08 22:09:00 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2021-07-08 22:09:00 +0800 |
commit | be2747e4d4b820ca0f1f988d3b77a628da26fe7b (patch) | |
tree | e1a59dd79ecd973a7d704568dcdc018f1f1b651a /ATRI/plugins/manage | |
parent | a4e1b9d1581d756ef79ad063d1c0bd6b2fd13c1d (diff) | |
download | ATRI-be2747e4d4b820ca0f1f988d3b77a628da26fe7b.tar.gz ATRI-be2747e4d4b820ca0f1f988d3b77a628da26fe7b.tar.bz2 ATRI-be2747e4d4b820ca0f1f988d3b77a628da26fe7b.zip |
🔖♻️🐛🔧🔥📝 更新版本:YHN-001-A03
🔖 更新版本至:YHN-001-A03
✨ 新增插件:
- 涩图
- 闲聊(文爱
♻️ 重构:
- Service
- 所有插件
🐛 修复部分小bug
🔧 暂时移除部分设置
🔥 删除:
- 插件:nsfw、wife。日后加回
- 插件 essential 中部分内容
📝 更新README
Diffstat (limited to 'ATRI/plugins/manage')
-rw-r--r-- | ATRI/plugins/manage/__init__.py | 7 | ||||
-rw-r--r-- | ATRI/plugins/manage/modules/block.py | 153 | ||||
-rw-r--r-- | ATRI/plugins/manage/modules/broadcast.py | 66 | ||||
-rw-r--r-- | ATRI/plugins/manage/modules/debug.py | 135 | ||||
-rw-r--r-- | ATRI/plugins/manage/modules/dormant.py | 43 | ||||
-rw-r--r-- | ATRI/plugins/manage/modules/request.py | 114 | ||||
-rw-r--r-- | ATRI/plugins/manage/modules/service.py | 179 | ||||
-rw-r--r-- | ATRI/plugins/manage/modules/shutdown.py | 32 |
8 files changed, 0 insertions, 729 deletions
diff --git a/ATRI/plugins/manage/__init__.py b/ATRI/plugins/manage/__init__.py deleted file mode 100644 index b316020..0000000 --- a/ATRI/plugins/manage/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -import nonebot -from pathlib import Path - - -_sub_plugins = set() - -_sub_plugins |= nonebot.load_plugins(str((Path(__file__).parent / "modules").resolve())) diff --git a/ATRI/plugins/manage/modules/block.py b/ATRI/plugins/manage/modules/block.py deleted file mode 100644 index b439ba1..0000000 --- a/ATRI/plugins/manage/modules/block.py +++ /dev/null @@ -1,153 +0,0 @@ -from nonebot.typing import T_State -from nonebot.permission import SUPERUSER -from nonebot.adapters.cqhttp import Bot, MessageEvent - -from ATRI.service import Service as sv - - -__doc__ = """ -封禁用户 -权限组:维护者 -用法: - 封禁用户 QQ号 -""" - -block_user = sv.on_command(cmd="封禁用户", docs=__doc__, permission=SUPERUSER) - - -@block_user.args_parser # type: ignore -async def _block_user_load(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - cancel = ["算了", "罢了"] - if msg in cancel: - await block_user.finish("好吧...") - if not msg: - await block_user.reject("是谁呢?!GKD!") - else: - state["noob"] = msg - - -@block_user.handle() -async def _block_user(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["noob"] = msg - - -@block_user.got("noob", prompt="是谁呢?!GKD!") -async def _deal_block_user(bot: Bot, event: MessageEvent, state: T_State) -> None: - noob = state["noob"] - sv.BlockSystem.control_list(True, user=noob) - msg = f"用户[{noob}]已被封禁(;′⌒`)" - await block_user.finish(msg) - - -__doc__ = """ -解封用户 -权限组:维护者 -用法: - 解封用户 QQ号 -""" - -unblock_user = sv.on_command(cmd="解封用户", docs=__doc__, permission=SUPERUSER) - - -@unblock_user.args_parser # type: ignore -async def _unblock_user_load(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - cancel = ["算了", "罢了"] - if msg in cancel: - await unblock_user.finish("好吧...") - if not msg: - await unblock_user.reject("要原谅谁呢...") - else: - state["forgive"] = msg - - -@unblock_user.handle() -async def _unblock_user(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["forgive"] = msg - - -@unblock_user.got("forgive", prompt="要原谅谁呢...") -async def _deal_unblock_user(bot: Bot, event: MessageEvent, state: T_State) -> None: - forgive = state["forgive"] - sv.BlockSystem.control_list(False, user=forgive) - msg = f"用户[{forgive}]已被解封ヾ(´・ω・`)ノ" - await unblock_user.finish(msg) - - -__doc__ = """ -封禁群 -权限组:维护者 -用法: - 封禁群 群号 -""" - -block_group = sv.on_command(cmd="封禁群", docs=__doc__, permission=SUPERUSER) - - -@block_group.args_parser # type: ignore -async def _block_group_load(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - cancel = ["算了", "罢了"] - if msg in cancel: - await block_user.finish("好吧...") - if not msg: - await block_user.reject("是哪个群?!GKD!") - else: - state["noob_g"] = msg - - -@block_group.handle() -async def _block_group(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["noob_g"] = msg - - -@block_group.got("noob_g", prompt="是哪个群?!GKD!") -async def _deal_block_group(bot: Bot, event: MessageEvent, state: T_State) -> None: - noob_g = state["noob_g"] - sv.BlockSystem.control_list(True, group=noob_g) - msg = f"群[{noob_g}]已被封禁(;′⌒`)" - await block_user.finish(msg) - - -__doc__ = """ -解封群 -权限组:维护者 -用法: - 解封 群号 -""" - -unblock_group = sv.on_command(cmd="解封群", docs=__doc__, permission=SUPERUSER) - - -@unblock_group.args_parser # type: ignore -async def _unblock_group_load(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - cancel = ["算了", "罢了"] - if msg in cancel: - await block_user.finish("好吧...") - if not msg: - await block_user.reject("要原谅哪个群呢...") - else: - state["forgive_g"] = msg - - -@unblock_group.handle() -async def _unblock_group(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["forgive_g"] = msg - - -@unblock_group.got("forgive_g", prompt="要原谅哪个群呢...") -async def _deal_unblock_group(bot: Bot, event: MessageEvent, state: T_State) -> None: - forgive_g = state["forgive_g"] - sv.BlockSystem.control_list(False, group=forgive_g) - msg = f"群[{forgive_g}]已被解封ヾ(´・ω・`)ノ" - await unblock_user.finish(msg) diff --git a/ATRI/plugins/manage/modules/broadcast.py b/ATRI/plugins/manage/modules/broadcast.py deleted file mode 100644 index 7f7816d..0000000 --- a/ATRI/plugins/manage/modules/broadcast.py +++ /dev/null @@ -1,66 +0,0 @@ -import asyncio -from random import randint - -from nonebot.typing import T_State -from nonebot.permission import SUPERUSER -from nonebot.adapters.cqhttp import Bot, MessageEvent - -from ATRI.service import Service as sv - - -__doc__ = """ -群发内容 -权限组:维护者 -用法: - 广播 内容 -""" - -broadcast = sv.on_command(cmd="广播", docs=__doc__, permission=SUPERUSER) - - [email protected]_parser # type: ignore -async def _broadcast_load(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message) - quit_list = ["算了", "罢了", "取消"] - if msg in quit_list: - await broadcast.finish("好吧...") - if not msg: - await broadcast.reject("想群发啥呢0w0") - else: - state["msg"] = msg - - -async def _broadcast(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["msg"] = msg - - [email protected]("msg", prompt="请告诉咱需要群发的内容~!") -async def _deal_broadcast(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = state["msg"] - group_list = await bot.get_group_list() - succ_list = [] - err_list = [] - - for group in group_list: - await asyncio.sleep(randint(0, 2)) - try: - await bot.send_group_msg(group_id=group["group_id"], message=msg) - except BaseException: - err_list.append(group["group_id"]) - - msg0 = "" - for i in err_list: - msg0 += f" {i}\n" - - repo_msg = ( - f"推送消息:\n{msg}\n" - "————————\n" - f"总共:{len(group_list)}\n" - f"成功推送:{len(succ_list)}\n" - f"失败[{len(err_list)}]个:\n" - ) + msg0 - - await broadcast.finish(repo_msg) diff --git a/ATRI/plugins/manage/modules/debug.py b/ATRI/plugins/manage/modules/debug.py deleted file mode 100644 index fa21c5b..0000000 --- a/ATRI/plugins/manage/modules/debug.py +++ /dev/null @@ -1,135 +0,0 @@ -from aiohttp import FormData - -from nonebot.typing import T_State -from nonebot.permission import SUPERUSER -from nonebot.adapters.cqhttp import Bot, MessageEvent - -from ATRI.service import Service as sv -from ATRI.log import LOGGER_DIR, NOW_TIME -from ATRI.utils.file import open_file -from ATRI.utils.ub_paste import paste -from ATRI.exceptions import load_error - - -level_list = ["info", "warning", "error", "debug"] - - -__doc__ = """ -获取控制台信息 -权限组:维护者 -用法: - 获取log 等级 行数 -示例: - 获取log info -20(最新20行) -""" - -get_console = sv.on_command( - cmd="获取log", - aliases={"获取LOG", "获取控制台", "获取控制台信息"}, - docs=__doc__, - permission=SUPERUSER, -) - - -@get_console.handle() -async def _get_console(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).split(" ") - if msg: - state["level"] = msg[0] - try: - state["line"] = msg[1] - except Exception: - pass - - -@get_console.got("level", prompt="需要获取的等级是?") -async def _got(bot: Bot, event: MessageEvent, state: T_State) -> None: - quit_list = ["算了", "罢了", "不了"] - if state["level"] in quit_list: - await get_console.finish("好吧...") - - -@get_console.got("line", prompt="需要获取的行数是?") -async def _deal_get(bot: Bot, event: MessageEvent, state: T_State) -> None: - level = state["level"] - line = state["line"] - repo = str() - - path = LOGGER_DIR / f"{level}" / f"{NOW_TIME}.log" - logs = await open_file(path, "readlines") - - try: - content = logs[int(line) :] # type: ignore - repo = "\n".join(content).replace("[36mATRI[0m", "ATRI") - except IndexError: - await get_console.finish(f"行数错误...max: {len(logs)}") # type: ignore - - data = FormData() - data.add_field("poster", "ATRI running log") - data.add_field("syntax", "text") - data.add_field("expiration", "day") - data.add_field("content", repo) - - msg0 = f"> {event.sender.nickname}\n" - msg0 = msg0 + f"详细请移步此处~\n{await paste(data)}" - await track_error.finish(msg0) - - -__doc__ = """ -追踪错误 -权限组:维护者 -用法: - track 追踪ID -""" - -track_error = sv.on_command( - cmd="track", aliases={"追踪"}, docs=__doc__, permission=SUPERUSER -) - - -@track_error.args_parser # type: ignore -async def _track_error_load(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - cancel = ["算了", "罢了"] - if msg in cancel: - await track_error.finish("好吧...") - if not msg: - await track_error.reject("欸?!要开始debug了吗,请提供追踪ID...Ծ‸Ծ") - else: - state["track"] = msg - - -@track_error.handle() -async def _track_error(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["track"] = msg - - -@track_error.got("track", prompt="欸?!要开始debug了吗,请提供追踪ID...Ծ‸Ծ") -async def _deal_track(bot: Bot, event: MessageEvent, state: T_State) -> None: - track_id = state["track"] - data = dict() - - try: - data = load_error(track_id) - except BaseException: - await track_error.finish("未发现对应ID呢...(⇀‸↼‶)") - - msg = ( - f"ID: [{track_id}]\n" - f"Time: [{data['time']}]\n" - f"Prompt: [{data['prompt']}]\n" - "——————\n" - f"{data['content']}" - ) - - data = FormData() - data.add_field("poster", track_id) - data.add_field("syntax", "text") - data.add_field("expiration", "day") - data.add_field("content", msg) - - msg0 = f"> {event.sender.nickname}\n" - msg0 = msg0 + f"详细请移步此处~\n{await paste(data)}" - await track_error.finish(msg0) diff --git a/ATRI/plugins/manage/modules/dormant.py b/ATRI/plugins/manage/modules/dormant.py deleted file mode 100644 index cd72d47..0000000 --- a/ATRI/plugins/manage/modules/dormant.py +++ /dev/null @@ -1,43 +0,0 @@ -from nonebot.permission import SUPERUSER -from nonebot.adapters.cqhttp import Bot, MessageEvent - -from ATRI.service import Service as sv -from ATRI.rule import to_bot - - -__doc__ = """ -休眠,不处理任何信息 -权限组:维护者 -用法: - @ 休眠 -""" - -dormant_enabled = sv.on_command( - cmd="休眠", docs=__doc__, rule=to_bot(), permission=SUPERUSER -) - - -@dormant_enabled.handle() -async def _dormant_enabled(bot: Bot, event: MessageEvent) -> None: - sv.Dormant.control_dormant(True) - msg = "已进入休眠状态...期间咱不会回应任何人的消息哦..." - await dormant_enabled.finish(msg) - - -__doc__ = """ -苏醒,开始处理信息 -权限组:维护者 -用法: - @ 苏醒 -""" - -dormant_disabled = sv.on_command( - cmd="苏醒", docs=__doc__, rule=to_bot(), permission=SUPERUSER -) - - -@dormant_disabled.handle() -async def _dormant_disabled(bot: Bot, event: MessageEvent) -> None: - sv.Dormant.control_dormant(False) - msg = "唔...早上好...——哇哈哈" - await dormant_disabled.finish(msg) diff --git a/ATRI/plugins/manage/modules/request.py b/ATRI/plugins/manage/modules/request.py deleted file mode 100644 index 26100b1..0000000 --- a/ATRI/plugins/manage/modules/request.py +++ /dev/null @@ -1,114 +0,0 @@ -import re -import json -from pathlib import Path - -from nonebot.permission import SUPERUSER -from nonebot.adapters.cqhttp import Bot, MessageEvent - -from ATRI.service import Service as sv -from ATRI.exceptions import ReadFileError, FormatError - - -ESSENTIAL_DIR = Path(".") / "ATRI" / "data" / "database" / "essential" - - -__doc__ = """ -查看好友/群申请列表 -权限组:维护者 -用法: - 查看申请列表 -""" - -req_list = sv.on_command(cmd="申请列表", docs=__doc__, permission=SUPERUSER) - - -@req_list.handle() -async def _req_list(bot: Bot, event: MessageEvent) -> None: - path_f = ESSENTIAL_DIR / "request_friend.json" - path_g = ESSENTIAL_DIR / "request_group.json" - data_f, data_g = dict() - try: - data_f = json.loads(path_f.read_bytes()) - except ReadFileError: - msg_f = "[读取文件失败]" - try: - data_g = json.loads(path_g.read_bytes()) - except ReadFileError: - msg_g = "[读取文件失败]" - - msg_f = str() - for i in data_f.keys(): - msg_f += f"{i} | {data_f[i]['user_id']} | {data_f[i]['comment']}\n" - - msg_g = str() - for i in data_g.keys(): - msg_g += f"{i} | {data_g[i]['sub_type']} | {data_g[i]['user_id']} | {data_g[i]['comment']}\n" - - msg = "好友/群申请列表如下:\n" "· 好友:\n" f"{msg_f}" "· 群:\n" f"{msg_g}" - await req_list.finish(msg) - - -req_deal = sv.on_regex(r"(同意|拒绝)(好友|群)申请", permission=SUPERUSER) - - -@req_deal.handle() -async def _req_deal(bot: Bot, event: MessageEvent) -> None: - msg = str(event.message).split(" ") - arg = re.findall(r"(同意|拒绝)(好友|群)申请", msg[0])[0] - app = arg[0] - _type = arg[1] - - if not msg[1]: - await req_deal.finish(f"正确用法!速看\n{app}{_type}申请 (reqid)") - - reqid = msg[1] - if app == "同意": - if _type == "好友": - try: - await bot.set_friend_add_request(flag=reqid, approve=True) - await req_deal.finish("完成~!已同意申请") - except FormatError: - await req_deal.finish("请检查输入的值是否正确——!") - elif _type == "群": - path = ESSENTIAL_DIR / "request_group.json" - data_g = dict() - try: - data_g = json.loads(path.read_bytes()) - except FileExistsError: - await req_deal.finish("读取群数据失败,可能并没有请求...") - - try: - await bot.set_group_add_request( - flag=reqid, sub_type=data_g[reqid]["sub_type"], approve=True - ) - await req_deal.finish("完成~!已同意申请") - except FormatError: - await req_deal.finish("请检查输入的值是否正确——!") - else: - await req_deal.finish("请检查输入的值是否正确——!") - elif app == "拒绝": - if _type == "好友": - try: - await bot.set_friend_add_request(flag=reqid, approve=False) - await req_deal.finish("完成~!已拒绝申请") - except FormatError: - await req_deal.finish("请检查输入的值是否正确——!") - elif _type == "群": - path = ESSENTIAL_DIR / "request_group.json" - data_g = dict() - try: - data_g = json.loads(path.read_bytes()) - except FileExistsError: - await req_deal.finish("读取群数据失败,可能并没有请求...") - - try: - await bot.set_group_add_request( - flag=reqid, sub_type=data_g[reqid]["sub_type"], approve=False - ) - await req_deal.finish("完成~!已拒绝申请") - except FormatError: - await req_deal.finish("请检查输入的值是否正确——!") - else: - await req_deal.finish("请检查输入的值是否正确——!") - else: - await req_deal.finish("请检查输入的值是否正确——!") diff --git a/ATRI/plugins/manage/modules/service.py b/ATRI/plugins/manage/modules/service.py deleted file mode 100644 index a3624df..0000000 --- a/ATRI/plugins/manage/modules/service.py +++ /dev/null @@ -1,179 +0,0 @@ -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}") diff --git a/ATRI/plugins/manage/modules/shutdown.py b/ATRI/plugins/manage/modules/shutdown.py deleted file mode 100644 index 78f23e8..0000000 --- a/ATRI/plugins/manage/modules/shutdown.py +++ /dev/null @@ -1,32 +0,0 @@ -from nonebot.typing import T_State -from nonebot.permission import SUPERUSER -from nonebot.adapters.cqhttp import Bot, MessageEvent - -from ATRI.service import Service as sv - - -__doc__ = """ -紧急停机 -权限组:维护者 -用法: - @ 关机 -""" - -shutdown = sv.on_command(cmd="关机", docs=__doc__, permission=SUPERUSER) - - -async def _shutdown(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["msg"] = msg - - [email protected]("msg", prompt="[WARNING]此项操作将强行终止bot运行,是否继续(y/n)") -async def __shutdown(bot: Bot, event: MessageEvent, state: T_State) -> None: - t = ["y", "Y", "是"] - if state["msg"] in t: - await bot.send(event, "咱还会醒来的,一定") - exit(0) - else: - await shutdown.finish("再考虑下吧 ;w;") |