2025-07-14 22:35:29 +08:00
|
|
|
import time
|
|
|
|
|
|
|
|
|
|
from nonebot.adapters import Bot, Event
|
2024-02-26 03:04:32 +08:00
|
|
|
from nonebot.matcher import Matcher
|
|
|
|
|
from nonebot.message import run_postprocessor, run_preprocessor
|
|
|
|
|
from nonebot_plugin_alconna import UniMsg
|
2025-07-14 22:35:29 +08:00
|
|
|
from nonebot_plugin_uninfo import Uninfo
|
|
|
|
|
|
|
|
|
|
from zhenxun.services.log import logger
|
2024-02-26 03:04:32 +08:00
|
|
|
|
2025-07-14 22:35:29 +08:00
|
|
|
from .auth.config import LOGGER_COMMAND
|
|
|
|
|
from .auth_checker import LimitManager, auth
|
2024-02-26 03:04:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
# # 权限检测
|
|
|
|
|
@run_preprocessor
|
2025-07-14 22:35:29 +08:00
|
|
|
async def _(matcher: Matcher, event: Event, bot: Bot, session: Uninfo, message: UniMsg):
|
|
|
|
|
start_time = time.time()
|
|
|
|
|
await auth(
|
2024-08-13 00:47:39 +08:00
|
|
|
matcher,
|
|
|
|
|
event,
|
|
|
|
|
bot,
|
|
|
|
|
session,
|
|
|
|
|
message,
|
|
|
|
|
)
|
2025-07-14 22:35:29 +08:00
|
|
|
logger.debug(f"权限检测耗时:{time.time() - start_time}秒", LOGGER_COMMAND)
|
2024-02-26 03:04:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
# 解除命令block阻塞
|
|
|
|
|
@run_postprocessor
|
2025-07-14 22:35:29 +08:00
|
|
|
async def _(matcher: Matcher, session: Uninfo):
|
|
|
|
|
user_id = session.user.id
|
|
|
|
|
group_id = None
|
|
|
|
|
channel_id = None
|
|
|
|
|
if session.group:
|
|
|
|
|
if session.group.parent:
|
|
|
|
|
group_id = session.group.parent.id
|
|
|
|
|
channel_id = session.group.id
|
|
|
|
|
else:
|
|
|
|
|
group_id = session.group.id
|
2024-02-26 03:04:32 +08:00
|
|
|
if user_id and matcher.plugin:
|
|
|
|
|
module = matcher.plugin.name
|
2025-07-14 22:35:29 +08:00
|
|
|
LimitManager.unblock(module, user_id, group_id, channel_id)
|