✏️ small fixs

This commit is contained in:
suyiiyii 2024-10-29 23:13:26 +08:00
parent 3f7a9bf8a3
commit d6b8d3b44e
Signed by: suyiiyii
GPG Key ID: 044704CB29B8AD85
5 changed files with 15 additions and 12 deletions

View File

@ -24,9 +24,8 @@ B = TypeVar("B", bound="Bilibili")
class BilibiliClientManager(CookieClientManager): class BilibiliClientManager(CookieClientManager):
_default_cookie_cd: int = timedelta(seconds=120) _default_cookie_cd = timedelta(seconds=120)
@classmethod
async def _get_cookies(self) -> list[Cookie]: async def _get_cookies(self) -> list[Cookie]:
browser = await get_browser() browser = await get_browser()
async with await browser.new_page() as page: async with await browser.new_page() as page:
@ -38,7 +37,6 @@ class BilibiliClientManager(CookieClientManager):
return cookies return cookies
@classmethod
def _gen_json_cookie(self, cookies: list[Cookie]): def _gen_json_cookie(self, cookies: list[Cookie]):
cookie_dict = {} cookie_dict = {}
for cookie in cookies: for cookie in cookies:

View File

@ -40,8 +40,8 @@ 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.scheduler_config_obj = self.scheduler_config()
self.client_mgr = scheduler_config.client_mgr() self.client_mgr = scheduler_config.client_mgr()
self.scheduler_config_obj = self.scheduler_config()
self.schedulable_list = [] self.schedulable_list = []
self.batch_platform_name_targets_cache = defaultdict(list) self.batch_platform_name_targets_cache = defaultdict(list)

View File

@ -30,10 +30,12 @@ add_sub_matcher = on_command(
add_sub_matcher.handle()(set_target_user_info) add_sub_matcher.handle()(set_target_user_info)
do_add_sub(add_sub_matcher) do_add_sub(add_sub_matcher)
query_sub_matcher = on_command("查询订阅", rule=configurable_to_me, priority=5, block=True) query_sub_matcher = on_command("查询订阅", rule=configurable_to_me, priority=5, block=True)
query_sub_matcher.handle()(set_target_user_info) query_sub_matcher.handle()(set_target_user_info)
do_query_sub(query_sub_matcher) do_query_sub(query_sub_matcher)
del_sub_matcher = on_command( del_sub_matcher = on_command(
"删除订阅", "删除订阅",
rule=configurable_to_me, rule=configurable_to_me,

View File

@ -70,7 +70,7 @@ def admin_permission():
async def generate_sub_list_text( async def generate_sub_list_text(
matcher: type[Matcher], matcher: type[Matcher],
state: T_State, state: T_State,
user_info: PlatformTarget = None, user_info: PlatformTarget | None = None,
is_index=False, is_index=False,
is_show_cookie=False, is_show_cookie=False,
is_hide_no_cookie_platfrom=False, is_hide_no_cookie_platfrom=False,

View File

@ -2,6 +2,7 @@ import json
from typing import Literal from typing import Literal
from json import JSONDecodeError from json import JSONDecodeError
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from collections.abc import Callable
from datetime import datetime, timedelta from datetime import datetime, timedelta
import httpx import httpx
@ -42,8 +43,14 @@ class DefaultClientManager(ClientManager):
pass pass
class SkipRequestException(Exception):
"""跳过请求异常,如果需要在选择 Cookie 时跳过此次请求,可以抛出此异常"""
pass
class CookieClientManager(ClientManager): class CookieClientManager(ClientManager):
_default_cookie_cd: int = timedelta(seconds=15) _default_cookie_cd = timedelta(seconds=15)
_site_name: str = "" _site_name: str = ""
async def _generate_anonymous_cookie(self) -> Cookie: async def _generate_anonymous_cookie(self) -> Cookie:
@ -98,7 +105,7 @@ class CookieClientManager(ClientManager):
return False return False
return True return True
def _generate_hook(self, cookie: Cookie) -> callable: def _generate_hook(self, cookie: Cookie) -> Callable:
"""hook 函数生成器,用于回写请求状态到数据库""" """hook 函数生成器,用于回写请求状态到数据库"""
async def _response_hook(resp: httpx.Response): async def _response_hook(resp: httpx.Response):
@ -132,7 +139,7 @@ class CookieClientManager(ClientManager):
return await self._assemble_client(client, cookie) return await self._assemble_client(client, cookie)
async def _assemble_client(self, client, cookie) -> AsyncClient: async def _assemble_client(self, client, cookie) -> AsyncClient:
"""组装 client可以自定义 cookie 对象的 content 装配到 client 中的方式""" """组装 client可以自定义 cookie 对象装配到 client 中的方式"""
cookies = httpx.Cookies() cookies = httpx.Cookies()
if cookie: if cookie:
cookies.update(json.loads(cookie.content)) cookies.update(json.loads(cookie.content))
@ -185,7 +192,3 @@ def anonymous_site(schedule_type: Literal["date", "interval", "cron"], schedule_
"client_mgr": DefaultClientManager, "client_mgr": DefaultClientManager,
}, },
) )
class SkipRequestException(Exception):
pass