♻️ extract out permission

This commit is contained in:
felinae98 2023-06-08 22:30:17 +08:00
parent 3ccdcc844b
commit 4846d32e2e
2 changed files with 25 additions and 5 deletions

View File

@ -2,10 +2,8 @@ import asyncio
from datetime import datetime
from nonebot import on_command
from nonebot.adapters import Bot, Event, MessageTemplate
from nonebot.adapters.onebot.v11 import MessageEvent
from nonebot.adapters import Bot, MessageTemplate
from nonebot.adapters.onebot.v11.event import PrivateMessageEvent
from nonebot.adapters.onebot.v11.permission import GROUP_ADMIN, GROUP_OWNER
from nonebot.matcher import Matcher
from nonebot.params import ArgPlainText, ArgStr
from nonebot.permission import SUPERUSER
@ -17,6 +15,7 @@ from .add_sub import do_add_sub
from .del_sub import do_del_sub
from .query_sub import do_query_sub
from .utils import (
admin_permission,
common_platform,
configurable_to_me,
gen_handle_cancel,
@ -26,7 +25,7 @@ from .utils import (
add_sub_matcher = on_command(
"添加订阅",
rule=configurable_to_me,
permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER,
permission=admin_permission(),
priority=5,
block=True,
)
@ -42,7 +41,7 @@ do_query_sub(query_sub_matcher)
del_sub_matcher = on_command(
"删除订阅",
rule=configurable_to_me,
permission=GROUP_ADMIN | GROUP_OWNER | SUPERUSER,
permission=admin_permission(),
priority=5,
block=True,
)
@ -124,3 +123,12 @@ async def do_dispatch_command(
do_del_sub(new_matcher)
new_matcher_ins = new_matcher()
asyncio.create_task(new_matcher_ins.run(bot, event, state))
__all__ = [
"common_platform",
"add_sub_matcher",
"query_sub_matcher",
"del_sub_matcher",
"group_manage_matcher",
]

View File

@ -1,8 +1,10 @@
import contextlib
from typing import Annotated, Type
from nonebot.adapters import Event
from nonebot.matcher import Matcher
from nonebot.params import Depends, EventPlainText, EventToMe
from nonebot.permission import SUPERUSER
from nonebot.rule import Rule
from nonebot.typing import T_State
from nonebot_plugin_saa import extract_target
@ -50,3 +52,13 @@ def ensure_user_info(matcher: Type[Matcher]):
async def set_target_user_info(event: Event, state: T_State):
user = extract_target(event)
state["target_user_info"] = user
def admin_permission():
permission = SUPERUSER
with contextlib.suppress(ImportError):
from nonebot.adapters.onebot.v11.permission import GROUP_ADMIN, GROUP_OWNER
permission = permission | GROUP_ADMIN | GROUP_OWNER
return permission