From 0deb406692d9a2c746e9d35f395fe9e3bf704afb Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Mon, 28 Oct 2024 22:00:15 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E6=9B=B4=E6=96=B0=E5=88=A4=E6=96=ADsup?= =?UTF-8?q?eruser=E7=9A=84=E7=A7=81=E8=81=8A=E6=B6=88=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nonebot_bison/sub_manager/add_cookie.py | 7 +++---- nonebot_bison/sub_manager/add_cookie_target.py | 7 +++---- nonebot_bison/sub_manager/del_cookie.py | 7 +++---- nonebot_bison/sub_manager/del_cookie_target.py | 7 +++---- nonebot_bison/sub_manager/utils.py | 9 +++++++++ 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/nonebot_bison/sub_manager/add_cookie.py b/nonebot_bison/sub_manager/add_cookie.py index 5daa0ef..65ff11b 100644 --- a/nonebot_bison/sub_manager/add_cookie.py +++ b/nonebot_bison/sub_manager/add_cookie.py @@ -5,11 +5,11 @@ from nonebot.log import logger from nonebot.typing import T_State from nonebot.matcher import Matcher from nonebot.params import Arg, ArgPlainText +from nonebot.adapters.onebot.v11 import MessageEvent from nonebot.adapters import Message, MessageTemplate -from nonebot.adapters.onebot.v11 import MessageEvent, PrivateMessageEvent from ..platform import platform_manager -from .utils import common_platform, gen_handle_cancel +from .utils import common_platform, gen_handle_cancel, only_allow_private from ..utils.site import CookieSite, CookieClientManager, is_cookie_client_manager @@ -18,8 +18,7 @@ def do_add_cookie(add_cookie: type[Matcher]): @add_cookie.handle() async def init_promote(state: T_State, event: MessageEvent): - if not issubclass(PrivateMessageEvent, event.__class__): - await add_cookie.finish("请在私聊中使用此命令") + await only_allow_private(event, add_cookie) state["_prompt"] = ( "请输入想要添加 Cookie 的平台,目前支持,请输入冒号左边的名称:\n" + "".join( diff --git a/nonebot_bison/sub_manager/add_cookie_target.py b/nonebot_bison/sub_manager/add_cookie_target.py index 6ed9f60..8fd4780 100644 --- a/nonebot_bison/sub_manager/add_cookie_target.py +++ b/nonebot_bison/sub_manager/add_cookie_target.py @@ -2,13 +2,13 @@ from nonebot.typing import T_State from nonebot.matcher import Matcher from nonebot.params import ArgPlainText from nonebot_plugin_saa import MessageFactory +from nonebot.adapters.onebot.v11 import MessageEvent from nonebot.internal.adapter import MessageTemplate -from nonebot.adapters.onebot.v11 import MessageEvent, PrivateMessageEvent from ..config import config from ..utils import parse_text from ..platform import platform_manager -from .utils import gen_handle_cancel, generate_sub_list_text +from .utils import gen_handle_cancel, only_allow_private, generate_sub_list_text def do_add_cookie_target(add_cookie_target_matcher: type[Matcher]): @@ -16,8 +16,7 @@ def do_add_cookie_target(add_cookie_target_matcher: type[Matcher]): @add_cookie_target_matcher.handle() async def init_promote(state: T_State, event: MessageEvent): - if not issubclass(PrivateMessageEvent, event.__class__): - await add_cookie_target_matcher.finish("请在私聊中使用此命令") + await only_allow_private(event, add_cookie_target_matcher) res = await generate_sub_list_text( add_cookie_target_matcher, state, is_index=True, is_show_cookie=True, is_hide_no_cookie_platfrom=True ) diff --git a/nonebot_bison/sub_manager/del_cookie.py b/nonebot_bison/sub_manager/del_cookie.py index b958da0..680d3c0 100644 --- a/nonebot_bison/sub_manager/del_cookie.py +++ b/nonebot_bison/sub_manager/del_cookie.py @@ -2,11 +2,11 @@ from nonebot.typing import T_State from nonebot.matcher import Matcher from nonebot.params import EventPlainText from nonebot_plugin_saa import MessageFactory -from nonebot.adapters.onebot.v11 import MessageEvent, PrivateMessageEvent +from nonebot.adapters.onebot.v11 import MessageEvent from ..config import config from ..utils import parse_text -from .utils import gen_handle_cancel +from .utils import gen_handle_cancel, only_allow_private def do_del_cookie(del_cookie: type[Matcher]): @@ -14,8 +14,7 @@ def do_del_cookie(del_cookie: type[Matcher]): @del_cookie.handle() async def send_list(state: T_State, event: MessageEvent): - if not issubclass(PrivateMessageEvent, event.__class__): - await del_cookie.finish("请在私聊中使用此命令") + await only_allow_private(event, del_cookie) cookies = await config.get_cookie(is_anonymous=False) if not cookies: await del_cookie.finish("暂无已添加的 Cookie\n请使用“添加cookie”命令添加") diff --git a/nonebot_bison/sub_manager/del_cookie_target.py b/nonebot_bison/sub_manager/del_cookie_target.py index 7eb7095..656e1d2 100644 --- a/nonebot_bison/sub_manager/del_cookie_target.py +++ b/nonebot_bison/sub_manager/del_cookie_target.py @@ -2,11 +2,11 @@ from nonebot.typing import T_State from nonebot.matcher import Matcher from nonebot.params import EventPlainText from nonebot_plugin_saa import MessageFactory -from nonebot.adapters.onebot.v11 import MessageEvent, PrivateMessageEvent +from nonebot.adapters.onebot.v11 import MessageEvent from ..config import config from ..utils import parse_text -from .utils import gen_handle_cancel +from .utils import gen_handle_cancel, only_allow_private def do_del_cookie_target(del_cookie_target: type[Matcher]): @@ -14,8 +14,7 @@ def do_del_cookie_target(del_cookie_target: type[Matcher]): @del_cookie_target.handle() async def send_list(state: T_State, event: MessageEvent): - if not issubclass(PrivateMessageEvent, event.__class__): - await del_cookie_target.finish("请在私聊中使用此命令") + await only_allow_private(event, del_cookie_target) cookie_targets = await config.get_cookie_target() if not cookie_targets: await del_cookie_target.finish("暂无已关联 Cookie\n请使用“添加cookie”命令添加关联") diff --git a/nonebot_bison/sub_manager/utils.py b/nonebot_bison/sub_manager/utils.py index 1e462c4..45958d6 100644 --- a/nonebot_bison/sub_manager/utils.py +++ b/nonebot_bison/sub_manager/utils.py @@ -120,3 +120,12 @@ async def generate_sub_list_text( res += f" (平台 {sub.target.platform_name} 已失效,请删除此订阅)" return res + + +async def only_allow_private( + event: Event, + matcher: type[Matcher], +): + # if not issubclass(PrivateMessageEvent, event.__class__): + if event.message_type != "private": + await matcher.finish("请在私聊中使用此命令")