mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-05-31 16:16:11 +08:00
♻️ 移除CookieSite
This commit is contained in:
parent
c5dea7e252
commit
8a8a48aef6
@ -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):
|
||||
|
@ -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):
|
||||
|
@ -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):
|
||||
|
@ -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']}"
|
||||
|
@ -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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user