♻️ 移除CookieSite

This commit is contained in:
suyiiyii 2024-10-29 21:17:07 +08:00
parent c5dea7e252
commit 8a8a48aef6
Signed by: suyiiyii
GPG Key ID: 044704CB29B8AD85
5 changed files with 13 additions and 18 deletions

View File

@ -10,8 +10,8 @@ from playwright.async_api import Cookie
from nonebot_bison.utils import Site, http_client
from ...utils.site import CookieClientManager
from ...config.db_model import Cookie as CookieModel
from ...utils.site import CookieSite, CookieClientManager
if TYPE_CHECKING:
from .platforms import Bilibili
@ -24,6 +24,8 @@ B = TypeVar("B", bound="Bilibili")
class BilibiliClientManager(CookieClientManager):
_default_cookie_cd: int = timedelta(seconds=120)
@classmethod
async def _get_cookies(self) -> list[Cookie]:
browser = await get_browser()
@ -73,13 +75,12 @@ class BilibiliClientManager(CookieClientManager):
return http_client()
class BilibiliSite(CookieSite):
class BilibiliSite(Site):
name = "bilibili.com"
schedule_setting = {"seconds": 60}
schedule_type = "interval"
client_mgr = BilibiliClientManager
require_browser = True
default_cookie_cd: int = timedelta(seconds=120)
class BililiveSite(Site):

View File

@ -10,14 +10,14 @@ from ..post import Post
from .platform import NewMessage
from ..types import Target, RawPost
from ..utils import text_similarity
from ..utils.site import CookieSite, CookieClientManager
from ..utils.site import Site, create_cookie_client_manager
class RssSite(CookieSite):
class RssSite(Site):
name = "rss"
schedule_type = "interval"
schedule_setting = {"seconds": 30}
client_mgr = CookieClientManager
client_mgr = create_cookie_client_manager(name)
class RssPost(Post):

View File

@ -13,7 +13,7 @@ from bs4 import BeautifulSoup as bs
from ..post import Post
from .platform import NewMessage
from ..utils import http_client, text_fletten
from ..utils.site import CookieSite, CookieClientManager
from ..utils.site import Site, CookieClientManager
from ..types import Tag, Target, RawPost, ApiError, Category
_HEADER = {
@ -55,11 +55,11 @@ class WeiboClientManager(CookieClientManager):
return text_fletten(f"weibo: [{name[:10]}]")
class WeiboSite(CookieSite):
class WeiboSite(Site):
name = "weibo.com"
schedule_type = "interval"
schedule_setting = {"seconds": 3}
client_mgr = CookieClientManager
client_mgr = WeiboClientManager
class Weibo(NewMessage):

View File

@ -10,8 +10,8 @@ from nonebot.adapters import Message, MessageTemplate
from ..scheduler import scheduler_dict
from ..platform import platform_manager
from ..utils.site import CookieClientManager, is_cookie_client_manager
from .utils import common_platform, gen_handle_cancel, only_allow_private
from ..utils.site import CookieSite, CookieClientManager, is_cookie_client_manager
def do_add_cookie(add_cookie: type[Matcher]):
@ -56,8 +56,7 @@ def do_add_cookie(add_cookie: type[Matcher]):
@add_cookie.got("cookie", MessageTemplate("{_prompt}"), [handle_cancel])
async def got_cookie(state: T_State, cookie: Message = Arg()):
cookie_site = cast(type[CookieSite], platform_manager[state["platform"]].site)
client_mgr = cast(CookieClientManager, scheduler_dict[cookie_site].client_mgr)
client_mgr = cast(CookieClientManager, scheduler_dict[platform_manager[state["platform"]].site].client_mgr)
cookie_text = cookie.extract_plain_text()
if not await client_mgr.validate_cookie(cookie_text):
await add_cookie.reject(
@ -75,8 +74,7 @@ def do_add_cookie(add_cookie: type[Matcher]):
@add_cookie.handle()
async def add_cookie_process(state: T_State):
cookie_site = cast(type[CookieSite], platform_manager[state["platform"]].site)
client_mgr = cast(CookieClientManager, scheduler_dict[cookie_site].client_mgr)
client_mgr = cast(CookieClientManager, scheduler_dict[platform_manager[state["platform"]].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']}"

View File

@ -178,10 +178,6 @@ def create_cookie_client_manager(site_name: str) -> type[CookieClientManager]:
)
class CookieSite(Site):
pass
def anonymous_site(schedule_type: Literal["date", "interval", "cron"], schedule_setting: dict) -> type[Site]:
return type(
"AnonymousSite",