mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-02 09:26:12 +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 nonebot_bison.utils import Site, http_client
|
||||||
|
|
||||||
|
from ...utils.site import CookieClientManager
|
||||||
from ...config.db_model import Cookie as CookieModel
|
from ...config.db_model import Cookie as CookieModel
|
||||||
from ...utils.site import CookieSite, CookieClientManager
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .platforms import Bilibili
|
from .platforms import Bilibili
|
||||||
@ -24,6 +24,8 @@ B = TypeVar("B", bound="Bilibili")
|
|||||||
|
|
||||||
class BilibiliClientManager(CookieClientManager):
|
class BilibiliClientManager(CookieClientManager):
|
||||||
|
|
||||||
|
_default_cookie_cd: int = timedelta(seconds=120)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def _get_cookies(self) -> list[Cookie]:
|
async def _get_cookies(self) -> list[Cookie]:
|
||||||
browser = await get_browser()
|
browser = await get_browser()
|
||||||
@ -73,13 +75,12 @@ class BilibiliClientManager(CookieClientManager):
|
|||||||
return http_client()
|
return http_client()
|
||||||
|
|
||||||
|
|
||||||
class BilibiliSite(CookieSite):
|
class BilibiliSite(Site):
|
||||||
name = "bilibili.com"
|
name = "bilibili.com"
|
||||||
schedule_setting = {"seconds": 60}
|
schedule_setting = {"seconds": 60}
|
||||||
schedule_type = "interval"
|
schedule_type = "interval"
|
||||||
client_mgr = BilibiliClientManager
|
client_mgr = BilibiliClientManager
|
||||||
require_browser = True
|
require_browser = True
|
||||||
default_cookie_cd: int = timedelta(seconds=120)
|
|
||||||
|
|
||||||
|
|
||||||
class BililiveSite(Site):
|
class BililiveSite(Site):
|
||||||
|
@ -10,14 +10,14 @@ from ..post import Post
|
|||||||
from .platform import NewMessage
|
from .platform import NewMessage
|
||||||
from ..types import Target, RawPost
|
from ..types import Target, RawPost
|
||||||
from ..utils import text_similarity
|
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"
|
name = "rss"
|
||||||
schedule_type = "interval"
|
schedule_type = "interval"
|
||||||
schedule_setting = {"seconds": 30}
|
schedule_setting = {"seconds": 30}
|
||||||
client_mgr = CookieClientManager
|
client_mgr = create_cookie_client_manager(name)
|
||||||
|
|
||||||
|
|
||||||
class RssPost(Post):
|
class RssPost(Post):
|
||||||
|
@ -13,7 +13,7 @@ from bs4 import BeautifulSoup as bs
|
|||||||
from ..post import Post
|
from ..post import Post
|
||||||
from .platform import NewMessage
|
from .platform import NewMessage
|
||||||
from ..utils import http_client, text_fletten
|
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
|
from ..types import Tag, Target, RawPost, ApiError, Category
|
||||||
|
|
||||||
_HEADER = {
|
_HEADER = {
|
||||||
@ -55,11 +55,11 @@ class WeiboClientManager(CookieClientManager):
|
|||||||
return text_fletten(f"weibo: [{name[:10]}]")
|
return text_fletten(f"weibo: [{name[:10]}]")
|
||||||
|
|
||||||
|
|
||||||
class WeiboSite(CookieSite):
|
class WeiboSite(Site):
|
||||||
name = "weibo.com"
|
name = "weibo.com"
|
||||||
schedule_type = "interval"
|
schedule_type = "interval"
|
||||||
schedule_setting = {"seconds": 3}
|
schedule_setting = {"seconds": 3}
|
||||||
client_mgr = CookieClientManager
|
client_mgr = WeiboClientManager
|
||||||
|
|
||||||
|
|
||||||
class Weibo(NewMessage):
|
class Weibo(NewMessage):
|
||||||
|
@ -10,8 +10,8 @@ from nonebot.adapters import Message, MessageTemplate
|
|||||||
|
|
||||||
from ..scheduler import scheduler_dict
|
from ..scheduler import scheduler_dict
|
||||||
from ..platform import platform_manager
|
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 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]):
|
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])
|
@add_cookie.got("cookie", MessageTemplate("{_prompt}"), [handle_cancel])
|
||||||
async def got_cookie(state: T_State, cookie: Message = Arg()):
|
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[platform_manager[state["platform"]].site].client_mgr)
|
||||||
client_mgr = cast(CookieClientManager, scheduler_dict[cookie_site].client_mgr)
|
|
||||||
cookie_text = cookie.extract_plain_text()
|
cookie_text = cookie.extract_plain_text()
|
||||||
if not await client_mgr.validate_cookie(cookie_text):
|
if not await client_mgr.validate_cookie(cookie_text):
|
||||||
await add_cookie.reject(
|
await add_cookie.reject(
|
||||||
@ -75,8 +74,7 @@ def do_add_cookie(add_cookie: type[Matcher]):
|
|||||||
|
|
||||||
@add_cookie.handle()
|
@add_cookie.handle()
|
||||||
async def add_cookie_process(state: T_State):
|
async def add_cookie_process(state: T_State):
|
||||||
cookie_site = cast(type[CookieSite], platform_manager[state["platform"]].site)
|
client_mgr = cast(CookieClientManager, scheduler_dict[platform_manager[state["platform"]].site].client_mgr)
|
||||||
client_mgr = cast(CookieClientManager, scheduler_dict[cookie_site].client_mgr)
|
|
||||||
new_cookie = await client_mgr.add_user_cookie(state["cookie"], state["cookie_name"])
|
new_cookie = await client_mgr.add_user_cookie(state["cookie"], state["cookie_name"])
|
||||||
await add_cookie.finish(
|
await add_cookie.finish(
|
||||||
f"已添加 Cookie: {new_cookie.cookie_name} 到平台 {state['platform']}"
|
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]:
|
def anonymous_site(schedule_type: Literal["date", "interval", "cron"], schedule_setting: dict) -> type[Site]:
|
||||||
return type(
|
return type(
|
||||||
"AnonymousSite",
|
"AnonymousSite",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user