diff options
-rw-r--r-- | ATRI/permission.py | 33 |
1 files changed, 33 insertions, 0 deletions
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 |