From dc2eae9d3c3e03fdc36a422a1d75d244cf607286 Mon Sep 17 00:00:00 2001 From: Kyomotoi <0w0@imki.moe> Date: Mon, 17 Oct 2022 23:42:18 +0800 Subject: =?UTF-8?q?=E2=9C=A8=20=E6=95=B4=E5=90=88=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/permission.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 ATRI/permission.py diff --git a/ATRI/permission.py b/ATRI/permission.py new file mode 100644 index 0000000..1bd2e84 --- /dev/null +++ b/ATRI/permission.py @@ -0,0 +1,33 @@ +import json + +from nonebot.adapters import Bot, Event +from nonebot.permission import SUPERUSER, Permission +from nonebot.adapters.onebot.v11 import GROUP_OWNER, GROUP_ADMIN as _GROUP_ADMIN + +from ATRI.configs.config import CONFIG_PATH + + +MASTER_FILE_PATH = CONFIG_PATH / "master.json" +if not MASTER_FILE_PATH.is_file(): + with open(MASTER_FILE_PATH, "w") as w: + w.write(json.dumps(list())) + + +class MasterList: + """检查当前事件是否属于主人""" + + __slots__ = () + + async def __call__(self, bot: Bot, event: Event) -> bool: + try: + user_id = event.get_user_id() + except Exception: + return False + + data = json.loads(MASTER_FILE_PATH.read_bytes()) + return True if user_id in data else False + + +MASTER = SUPERUSER | Permission(MasterList()) +GROUP_ADMIN = GROUP_OWNER | _GROUP_ADMIN +ADMIN = MASTER | GROUP_ADMIN -- cgit v1.2.3