diff options
Diffstat (limited to 'ATRI')
-rw-r--r-- | ATRI/plugins/manage/__init__.py | 32 | ||||
-rw-r--r-- | ATRI/plugins/manage/data_source.py | 3 |
2 files changed, 23 insertions, 12 deletions
diff --git a/ATRI/plugins/manage/__init__.py b/ATRI/plugins/manage/__init__.py index d32cb40..7abd8be 100644 --- a/ATRI/plugins/manage/__init__.py +++ b/ATRI/plugins/manage/__init__.py @@ -1,3 +1,4 @@ +import re from datetime import datetime from typing import Type, Callable from asyncio import iscoroutinefunction @@ -90,14 +91,6 @@ handle_command( ) -toggle_user_service = plugin.on_command("用户控制", "针对单一用户禁用/启用某一服务") -handle_command( - toggle_user_service, - BotManager().toggle_user_service, - "服务 {} 已针对该用户", -) - - toggle_group_service = plugin.on_command("控制", "针对所在群禁用/启用某一服务", permission=ADMIN) handle_command( toggle_group_service, @@ -106,9 +99,9 @@ handle_command( ) -track = plugin.on_command("追踪", "根据ID获取对应报错信息", aliases={"/track"}) +track_error = plugin.on_command("追踪", "根据ID获取对应报错信息", aliases={"/track"}) handle_command( - track, + track_error, BotManager().track_error, "{}", ) @@ -130,6 +123,25 @@ reject_group_req = plugin.on_command("拒绝邀请", "根据申请码拒绝对� handle_command(reject_group_req, BotManager().reject_group_req, "已拒绝该邀请") +toggle_user_service = plugin.on_regex(r"对用户(.*?)(启用|禁用)(.*)", "针对单一用户禁用/启用某一服务") + + +@toggle_user_service.handle() +async def _(event: MessageEvent): + msg = str(event.get_message()).strip() + reg = re.findall("对用户(.*?)(启用|禁用)(.*)", msg)[0] + target_user = reg[0] + target_service = reg[2] + + try: + result = BotManager().toggle_user_service(target_service, target_user) + except Exception as e: + await toggle_user_service.finish(f"操作失败,原因:{str(e)}") + await toggle_user_service.finish( + f"已{'允许' if result else '禁止'}用户 {target_user} 使用 {target_service}" + ) + + friend_req = plugin.on_request("好友申请", "好友申请检测") diff --git a/ATRI/plugins/manage/data_source.py b/ATRI/plugins/manage/data_source.py index 37edefc..12d3177 100644 --- a/ATRI/plugins/manage/data_source.py +++ b/ATRI/plugins/manage/data_source.py @@ -142,8 +142,7 @@ class BotManager: return result raise Exception("该功能只能在群聊中使用") - def toggle_user_service(self, service: str, event: MessageEvent) -> bool: - user_id = event.get_user_id() + def toggle_user_service(self, service: str, user_id: str) -> bool: serv = ServiceTools(service) try: data = serv.load_service() |