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