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("请在私聊中使用此命令")