diff --git a/nonebot_bison/admin_page/api.py b/nonebot_bison/admin_page/api.py index fc3a31f..b5d90cc 100644 --- a/nonebot_bison/admin_page/api.py +++ b/nonebot_bison/admin_page/api.py @@ -12,6 +12,7 @@ from fastapi.security.oauth2 import OAuth2PasswordBearer from ..types import WeightConfig from ..apis import check_sub_target from .jwt import load_jwt, pack_jwt +from ..scheduler import scheduler_dict from ..types import Target as T_Target from ..utils.get_bot import get_groups from .token_manager import token_manager @@ -231,7 +232,7 @@ async def get_cookie(site_name: str = None, target: str = None) -> list[Cookie]: @router.post("/cookie", dependencies=[Depends(check_is_superuser)]) async def add_cookie(site_name: str, content: str) -> StatusResp: - client_mgr = cast(CookieClientManager, site_manager[site_name].client_mgr) + client_mgr = cast(CookieClientManager, scheduler_dict[site_manager[site_name]].client_mgr) await client_mgr.add_user_cookie(content) return StatusResp(ok=True, msg="") diff --git a/nonebot_bison/sub_manager/add_cookie.py b/nonebot_bison/sub_manager/add_cookie.py index 65ff11b..c22163a 100644 --- a/nonebot_bison/sub_manager/add_cookie.py +++ b/nonebot_bison/sub_manager/add_cookie.py @@ -8,6 +8,7 @@ from nonebot.params import Arg, ArgPlainText from nonebot.adapters.onebot.v11 import MessageEvent from nonebot.adapters import Message, MessageTemplate +from ..scheduler import scheduler_dict from ..platform import platform_manager from .utils import common_platform, gen_handle_cancel, only_allow_private from ..utils.site import CookieSite, CookieClientManager, is_cookie_client_manager @@ -46,7 +47,6 @@ def do_add_cookie(add_cookie: type[Matcher]): await add_cookie.finish("已中止添加cookie") elif platform in platform_manager: state["platform"] = platform - state["site"] = cast(CookieSite, platform_manager[platform].site) else: await add_cookie.reject("平台输入错误") @@ -74,7 +74,8 @@ def do_add_cookie(add_cookie: type[Matcher]): @add_cookie.handle() async def add_cookie_process(state: T_State): - client_mgr = cast(CookieClientManager, platform_manager[state["platform"]].site.client_mgr) + cookie_site = cast(type[CookieSite], platform_manager[state["platform"]].site) + client_mgr = cast(CookieClientManager, scheduler_dict[cookie_site].client_mgr) new_cookie = await client_mgr.add_user_cookie(state["cookie"], state["cookie_name"]) await add_cookie.finish( f"已添加 Cookie: {new_cookie.cookie_name} 到平台 {state['platform']}" diff --git a/tests/config/test_cookie.py b/tests/config/test_cookie.py index 549cb7f..9f29790 100644 --- a/tests/config/test_cookie.py +++ b/tests/config/test_cookie.py @@ -12,6 +12,7 @@ async def test_cookie(app: App, init_scheduler): from nonebot_bison.platform import site_manager from nonebot_bison.config.db_config import config + from nonebot_bison.scheduler import scheduler_dict from nonebot_bison.types import Target as T_Target from nonebot_bison.utils.site import CookieClientManager from nonebot_bison.config.utils import DuplicateCookieTargetException @@ -27,7 +28,7 @@ async def test_cookie(app: App, init_scheduler): tags=[], ) site = site_manager["weibo.com"] - client_mgr = cast(CookieClientManager, site.client_mgr) + client_mgr = cast(CookieClientManager, scheduler_dict[site].client_mgr) # 刷新匿名cookie await client_mgr.refresh_client() diff --git a/tests/platforms/test_bilibili.py b/tests/platforms/test_bilibili.py index e31dfd8..95e1846 100644 --- a/tests/platforms/test_bilibili.py +++ b/tests/platforms/test_bilibili.py @@ -32,7 +32,7 @@ def bilibili(app: App) -> "Bilibili": from nonebot_bison.platform import platform_manager from nonebot_bison.platform.bilibili import BilibiliClientManager - return platform_manager["bilibili"](ProcessContext(BilibiliClientManager())) # type: ignore + return platform_manager["bilibili"](ProcessContext(BilibiliClientManager(platform_manager["bilibili"].site))) # type: ignore @pytest.fixture