From fefd86325f0e11665bb558bd5ec1f45f5109ec40 Mon Sep 17 00:00:00 2001
From: Kyomotoi <kyomotoiowo@gmail.com>
Date: Wed, 22 Jun 2022 20:29:56 +0800
Subject: =?UTF-8?q?=E2=9C=A8=F0=9F=8E=A8=20=E5=BC=95=E5=85=A5=E6=92=A4?=
 =?UTF-8?q?=E5=9B=9Ebot=E4=BF=A1=E6=81=AF=E5=8A=9F=E8=83=BD,=20=E4=BC=98?=
 =?UTF-8?q?=E5=8C=96=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ATRI/plugins/manage/__init__.py    | 46 +++++++++++++++++++++++---------------
 ATRI/plugins/manage/data_source.py |  8 ++++---
 2 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/ATRI/plugins/manage/__init__.py b/ATRI/plugins/manage/__init__.py
index 672ba97..e6fc4a9 100644
--- a/ATRI/plugins/manage/__init__.py
+++ b/ATRI/plugins/manage/__init__.py
@@ -6,10 +6,11 @@ from nonebot.params import ArgPlainText, CommandArg
 from nonebot.adapters.onebot.v11 import Bot, Message, MessageEvent, GroupMessageEvent
 from nonebot.adapters.onebot.v11 import GROUP_OWNER, GROUP_ADMIN
 
+from ATRI.rule import to_bot
 from .data_source import Manage
 
 
-block_user = Manage().on_command("封禁用户", "对目标用户进行封禁", permission=SUPERUSER)
+block_user = Manage().on_command("封禁用户", "对目标用户进行封禁")
 
 
 @block_user.handle()
@@ -32,7 +33,7 @@ async def _deal_block_user(user_id: str = ArgPlainText("block_user")):
     await block_user.finish(f"用户 {user_id} 危!")
 
 
-unblock_user = Manage().on_command("解封用户", "对目标用户进行解封", permission=SUPERUSER)
+unblock_user = Manage().on_command("解封用户", "对目标用户进行解封")
 
 
 @unblock_user.handle()
@@ -55,7 +56,7 @@ async def _deal_unblock_user(user_id: str = ArgPlainText("unblock_user")):
     await unblock_user.finish(f"好欸!{user_id} 重获新生!")
 
 
-block_group = Manage().on_command("封禁群", "对目标群进行封禁", permission=SUPERUSER)
+block_group = Manage().on_command("封禁群", "对目标群进行封禁")
 
 
 @block_group.handle()
@@ -78,7 +79,7 @@ async def _deal_block_group(group_id: str = ArgPlainText("block_group")):
     await block_group.finish(f"群 {group_id} 危!")
 
 
-unblock_group = Manage().on_command("解封群", "对目标群进行解封", permission=SUPERUSER)
+unblock_group = Manage().on_command("解封群", "对目标群进行解封")
 
 
 @unblock_group.handle()
@@ -101,7 +102,7 @@ async def _deal_unblock_group(group_id: str = ArgPlainText("unblock_group")):
     await unblock_group.finish(f"好欸!群 {group_id} 重获新生!")
 
 
-global_block_service = Manage().on_command("全局禁用", "全局禁用某服务", permission=SUPERUSER)
+global_block_service = Manage().on_command("全局禁用", "全局禁用某服务")
 
 
 @global_block_service.handle()
@@ -126,7 +127,7 @@ async def _deal_global_block_service(
     await global_block_service.finish(f"服务 {block_service} 已被禁用")
 
 
-global_unblock_service = Manage().on_command("全局启用", "全局启用某服务", permission=SUPERUSER)
+global_unblock_service = Manage().on_command("全局启用", "全局启用某服务")
 
 
 @global_unblock_service.handle()
@@ -153,9 +154,7 @@ async def _deal_global_unblock_service(
     await global_unblock_service.finish(f"服务 {unblock_service} 已启用")
 
 
-user_block_service = Manage().on_regex(
-    r"对用户(.*?)禁用(.*)", "针对某一用户禁用服务", permission=SUPERUSER
-)
+user_block_service = Manage().on_regex(r"对用户(.*?)禁用(.*)", "针对某一用户(qid)禁用服务")
 
 
 @user_block_service.handle()
@@ -172,9 +171,7 @@ async def _user_block_service(event: MessageEvent):
     await user_block_service.finish(f"完成~已禁止用户 {aim_user} 使用 {aim_service}")
 
 
-user_unblock_service = Manage().on_regex(
-    r"对用户(.*?)启用(.*)", "针对某一用户启用服务", permission=SUPERUSER
-)
+user_unblock_service = Manage().on_regex(r"对用户(.*?)启用(.*)", "针对某一用户(qid)启用服务")
 
 
 @user_unblock_service.handle()
@@ -249,7 +246,7 @@ async def _deal_group_unblock_service(
     await group_unblock_service.finish(f"完成!~已允许本群使用服务:{aim_service}")
 
 
-get_friend_add_list = Manage().on_command("获取好友申请", "获取好友申请列表", permission=SUPERUSER)
+get_friend_add_list = Manage().on_command("获取好友申请", "获取好友申请列表")
 
 
 @get_friend_add_list.handle()
@@ -268,7 +265,7 @@ async def _get_friend_add_list():
     await get_friend_add_list.finish(msg1)
 
 
-approve_friend_add = Manage().on_command("同意好友", "同意好友申请", permission=SUPERUSER)
+approve_friend_add = Manage().on_command("同意好友", "同意好友申请")
 
 
 @approve_friend_add.handle()
@@ -298,7 +295,7 @@ async def _deal_approve_friend_add(
     await approve_friend_add.finish("好欸!申请已通过!")
 
 
-refuse_friend_add = Manage().on_command("拒绝好友", "拒绝好友申请", permission=SUPERUSER)
+refuse_friend_add = Manage().on_command("拒绝好友", "拒绝好友申请")
 
 
 @refuse_friend_add.handle()
@@ -328,7 +325,7 @@ async def _deal_refuse_friend_add(
     await refuse_friend_add.finish("已拒绝!")
 
 
-get_group_invite_list = Manage().on_command("获取邀请列表", "获取群邀请列表", permission=SUPERUSER)
+get_group_invite_list = Manage().on_command("获取邀请列表", "获取群邀请列表")
 
 
 @get_group_invite_list.handle()
@@ -347,7 +344,7 @@ async def _get_group_invite_list():
     await get_friend_add_list.finish(msg1)
 
 
-approve_group_invite = Manage().on_command("同意邀请", "同意群聊邀请", permission=SUPERUSER)
+approve_group_invite = Manage().on_command("同意邀请", "同意群聊邀请")
 
 
 @approve_group_invite.handle()
@@ -379,7 +376,7 @@ async def _deal_approve_group_invite(
     await approve_group_invite.finish("好欸!申请已通过!")
 
 
-refuse_group_invite = Manage().on_command("拒绝邀请", "拒绝群聊邀请", permission=SUPERUSER)
+refuse_group_invite = Manage().on_command("拒绝邀请", "拒绝群聊邀请")
 
 
 @refuse_group_invite.handle()
@@ -429,3 +426,16 @@ async def _(track_code: str = ArgPlainText("track_code")):
 
     repo = await Manage().track_error(track_code)
     await track_error.finish(repo)
+
+
+recall_msg = Manage().on_command("撤回", "撤回bot已发送的信息", to_bot())
+
+
+@recall_msg.handle()
+async def _recall_msg(bot: Bot, event: MessageEvent):
+    try:
+        recall_id = event.reply.message_id  # type: ignore
+    except Exception:
+        await recall_msg.finish("无法获取必要信息...没法撤回惹...")
+
+    await bot.delete_msg(message_id=recall_id)
diff --git a/ATRI/plugins/manage/data_source.py b/ATRI/plugins/manage/data_source.py
index 92dcc42..35462f0 100644
--- a/ATRI/plugins/manage/data_source.py
+++ b/ATRI/plugins/manage/data_source.py
@@ -2,12 +2,14 @@ import json
 from pathlib import Path
 from datetime import datetime
 
+from nonebot.permission import SUPERUSER
+
 from ATRI.service import Service, ServiceTools
 from ATRI.exceptions import load_error
 
 
-MANAGE_DIR = Path(".") / "data" / "database" / "manege"
-ESSENTIAL_DIR = Path(".") / "data" / "database" / "essential"
+MANAGE_DIR = Path(".") / "data" / "plugins" / "manege"
+ESSENTIAL_DIR = Path(".") / "data" / "plugins" / "essential"
 MANAGE_DIR.mkdir(parents=True, exist_ok=True)
 ESSENTIAL_DIR.mkdir(parents=True, exist_ok=True)
 
@@ -21,7 +23,7 @@ Time: {time}
 
 class Manage(Service):
     def __init__(self):
-        Service.__init__(self, "管理", "控制bot的各项服务", True)
+        Service.__init__(self, "管理", "控制bot的各项服务", True, permission=SUPERUSER)
 
     @staticmethod
     def _load_block_user_list() -> dict:
-- 
cgit v1.2.3