From 6537f01a34b07a07de6388c631148bea29e42a00 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 6 Sep 2024 00:34:52 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E9=9B=86=E4=B8=AD=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=98=AF=E5=90=A6=E4=B8=BACookieClientManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nonebot_bison/scheduler/manager.py | 3 ++- nonebot_bison/sub_manager/add_cookie.py | 5 +++-- nonebot_bison/utils/site.py | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/nonebot_bison/scheduler/manager.py b/nonebot_bison/scheduler/manager.py index 06486eb..3c4a5a3 100644 --- a/nonebot_bison/scheduler/manager.py +++ b/nonebot_bison/scheduler/manager.py @@ -7,6 +7,7 @@ from ..config.db_model import Target from ..types import Target as T_Target from ..platform import platform_manager from ..plugin_config import plugin_config +from ..utils.site import is_cookie_client_manager scheduler_dict: dict[type[Site], Scheduler] = {} @@ -30,7 +31,7 @@ async def init_scheduler(): else: _schedule_class_platform_dict[site].append(platform_name) for site, target_list in _schedule_class_dict.items(): - if hasattr(site.client_mgr, "_cookie_client_manger_"): + if is_cookie_client_manager(site.client_mgr): await site.client_mgr.init_universal_cookie() if not plugin_config.bison_use_browser and site.require_browser: logger.warning(f"{site.name} requires browser, it will not schedule.") diff --git a/nonebot_bison/sub_manager/add_cookie.py b/nonebot_bison/sub_manager/add_cookie.py index 2b0211b..41384da 100644 --- a/nonebot_bison/sub_manager/add_cookie.py +++ b/nonebot_bison/sub_manager/add_cookie.py @@ -8,6 +8,7 @@ from ..config import config from ..config.db_model import Cookie from ..platform import platform_manager from ..apis import check_sub_target_cookie +from ..utils.site import is_cookie_client_manager from .utils import common_platform, gen_handle_cancel @@ -22,7 +23,7 @@ def do_add_cookie(add_cookie: type[Matcher]): [ f"{platform_name}: {platform_manager[platform_name].name}\n" for platform_name in common_platform - if hasattr(platform_manager[platform_name].site.client_mgr, "_cookie_client_manger_") + if is_cookie_client_manager(platform_manager[platform_name].site.client_mgr) ] ) + "要查看全部平台请输入:“全部”\n中止添加cookie过程请输入:“取消”" @@ -35,7 +36,7 @@ def do_add_cookie(add_cookie: type[Matcher]): [ f"{platform_name}: {platform.name}" for platform_name, platform in platform_manager.items() - if hasattr(platform_manager[platform_name].site.client_mgr, "_cookie_client_manger_") + if is_cookie_client_manager(platform_manager[platform_name].site.client_mgr) ] ) await add_cookie.reject(message) diff --git a/nonebot_bison/utils/site.py b/nonebot_bison/utils/site.py index 509fee8..d7618d6 100644 --- a/nonebot_bison/utils/site.py +++ b/nonebot_bison/utils/site.py @@ -41,6 +41,10 @@ class DefaultClientManager(ClientManager): pass +def is_cookie_client_manager(manger: type[ClientManager]) -> bool: + return hasattr(manger, "_cookie_client_manger_") + + class CookieClientManager(ClientManager): _cookie_client_manger_ = True _platform_name: str