mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2026-06-23 14:16:52 +08:00
Merge branch 'main' into feat/bilibili-cookie
This commit is contained in:
@@ -235,7 +235,7 @@ async def get_cookie(site_name: str | None = None, target: str | None = None) ->
|
||||
@router.post("/cookie", dependencies=[Depends(check_is_superuser)])
|
||||
async def add_cookie(site_name: str, content: str) -> StatusResp:
|
||||
client_mgr = cast(CookieClientManager, scheduler_dict[site_manager[site_name]].client_mgr)
|
||||
await client_mgr.add_user_cookie(content)
|
||||
await client_mgr.add_identified_cookie(content)
|
||||
return StatusResp(ok=True, msg="")
|
||||
|
||||
|
||||
|
||||
@@ -12,14 +12,16 @@ from playwright.async_api import Cookie
|
||||
from nonebot_bison.config import config
|
||||
from nonebot_bison.config.db_model import Cookie as CookieModel
|
||||
from nonebot_bison.config.db_model import Target
|
||||
from nonebot_bison.plugin_config import plugin_config
|
||||
from nonebot_bison.utils import Site, http_client
|
||||
from nonebot_bison.utils.site import CookieClientManager
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .platforms import Bilibili
|
||||
|
||||
require("nonebot_plugin_htmlrender")
|
||||
from nonebot_plugin_htmlrender import get_browser
|
||||
if plugin_config.bison_use_browser:
|
||||
require("nonebot_plugin_htmlrender")
|
||||
from nonebot_plugin_htmlrender import get_browser
|
||||
|
||||
B = TypeVar("B", bound="Bilibili")
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ def do_add_cookie(add_cookie: type[Matcher]):
|
||||
@add_cookie.handle()
|
||||
async def add_cookie_process(state: T_State):
|
||||
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"])
|
||||
new_cookie = await client_mgr.add_identified_cookie(state["cookie"], state["cookie_name"])
|
||||
await add_cookie.finish(
|
||||
f"已添加 Cookie: {new_cookie.cookie_name} 到平台 {state['platform']}"
|
||||
+ "\n请使用“关联cookie”为 Cookie 关联订阅"
|
||||
|
||||
@@ -34,7 +34,7 @@ def do_add_cookie_target(add_cookie_target_matcher: type[Matcher]):
|
||||
|
||||
@add_cookie_target_matcher.handle()
|
||||
async def init_promote_cookie(state: T_State):
|
||||
# 获取 site 的所有用户 cookie,再排除掉已经关联的 cookie,剩下的就是可以关联的 cookie
|
||||
# 获取 site 的所有实名 cookie,再排除掉已经关联的 cookie,剩下的就是可以关联的 cookie
|
||||
cookies = await config.get_cookie(site_name=state["site"].name, is_anonymous=False)
|
||||
associated_cookies = await config.get_cookie(
|
||||
target=state["target"]["target"],
|
||||
|
||||
@@ -79,8 +79,8 @@ class CookieClientManager(ClientManager):
|
||||
new_anonymous_cookie = await self._generate_anonymous_cookie()
|
||||
await config.add_cookie(new_anonymous_cookie)
|
||||
|
||||
async def add_user_cookie(self, content: str, cookie_name: str | None = None) -> Cookie:
|
||||
"""添加用户 cookie"""
|
||||
async def add_identified_cookie(self, content: str, cookie_name: str | None = None) -> Cookie:
|
||||
"""添加实名 cookie"""
|
||||
|
||||
if not await self.validate_cookie(content):
|
||||
raise ValueError()
|
||||
@@ -133,9 +133,9 @@ class CookieClientManager(ClientManager):
|
||||
client = http_client()
|
||||
cookie = await self._choose_cookie(target)
|
||||
if cookie.is_universal:
|
||||
logger.trace(f"平台 {self._site_name} 未获取到用户cookie, 使用匿名cookie")
|
||||
logger.trace(f"平台 {self._site_name} 未获取到实名cookie, 使用匿名cookie")
|
||||
else:
|
||||
logger.trace(f"平台 {self._site_name} 获取到用户cookie: {cookie.id}")
|
||||
logger.trace(f"平台 {self._site_name} 获取到实名cookie: {cookie.id}")
|
||||
|
||||
return await self._assemble_client(client, cookie)
|
||||
|
||||
@@ -185,7 +185,7 @@ class SiteMeta(type):
|
||||
elif not kwargs.get("abstract"):
|
||||
# this is the subclass
|
||||
if "name" in namespace:
|
||||
site_manager[namespace["name"]] = cls
|
||||
site_manager[namespace["name"]] = cls # type: ignore[reportArgumentType]
|
||||
super().__init__(name, bases, namespace, **kwargs)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user