mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-05-31 16:16:11 +08:00
♻️ 在 CookieClientManager 中添加对对应的 Site 的引用
This commit is contained in:
parent
81e53419a3
commit
4805d0d77c
@ -33,9 +33,6 @@ async def init_scheduler():
|
||||
else:
|
||||
_schedule_class_platform_dict[site].append(platform_name)
|
||||
for site, target_list in _schedule_class_dict.items():
|
||||
if is_cookie_client_manager(site.client_mgr):
|
||||
client_mgr = cast(CookieClientManager, site.client_mgr)
|
||||
await client_mgr.refresh_client()
|
||||
if not plugin_config.bison_use_browser and site.require_browser:
|
||||
logger.warning(f"{site.name} requires browser, it will not schedule.")
|
||||
continue
|
||||
@ -47,6 +44,9 @@ async def init_scheduler():
|
||||
)
|
||||
platform_name_list = _schedule_class_platform_dict[site]
|
||||
scheduler_dict[site] = Scheduler(site, schedulable_args, platform_name_list)
|
||||
if is_cookie_client_manager(site.client_mgr):
|
||||
client_mgr = cast(CookieClientManager, scheduler_dict[site].client_mgr)
|
||||
await client_mgr.refresh_client()
|
||||
config.register_add_target_hook(handle_insert_new_target)
|
||||
config.register_delete_target_hook(handle_delete_target)
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
from typing import cast
|
||||
from dataclasses import dataclass
|
||||
from collections import defaultdict
|
||||
|
||||
@ -12,7 +13,7 @@ from ..send import send_msgs
|
||||
from ..types import Target, SubUnit
|
||||
from ..platform import platform_manager
|
||||
from ..utils import Site, ProcessContext
|
||||
from ..utils.site import SkipRequestException
|
||||
from ..utils.site import CookieClientManager, SkipRequestException, is_cookie_client_manager
|
||||
|
||||
|
||||
@dataclass
|
||||
@ -40,8 +41,12 @@ class Scheduler:
|
||||
logger.error(f"scheduler config [{self.name}] not found, exiting")
|
||||
raise RuntimeError(f"{self.name} not found")
|
||||
self.scheduler_config = scheduler_config
|
||||
self.client_mgr = scheduler_config.client_mgr()
|
||||
self.scheduler_config_obj = self.scheduler_config()
|
||||
if is_cookie_client_manager(scheduler_config.client_mgr):
|
||||
cookie_client_mgr = cast(type[CookieClientManager], scheduler_config.client_mgr)
|
||||
self.client_mgr = cookie_client_mgr(self.scheduler_config_obj)
|
||||
else:
|
||||
self.client_mgr = scheduler_config.client_mgr()
|
||||
|
||||
self.schedulable_list = []
|
||||
self.batch_platform_name_targets_cache = defaultdict(list)
|
||||
|
@ -45,6 +45,9 @@ class DefaultClientManager(ClientManager):
|
||||
class CookieClientManager(ClientManager):
|
||||
_site_name: str # 绑定的 site_name,需要使用 create_cookie_client_manager 创建 Client_mgr 时绑定
|
||||
|
||||
def __init__(self, site: "Site") -> None:
|
||||
self._site = site
|
||||
|
||||
@classmethod
|
||||
async def _generate_anonymous_cookie(cls) -> Cookie:
|
||||
return Cookie(
|
||||
|
Loading…
x
Reference in New Issue
Block a user