mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-04 02:26:11 +08:00
✨ 导入导出 cookie 优化代码
This commit is contained in:
parent
5d160dcadc
commit
b04cbc2ced
@ -111,14 +111,7 @@ async def magic_cookie_gen(nbesf_data: SubGroup):
|
|||||||
logger.info("开始添加 Cookie 流程")
|
logger.info("开始添加 Cookie 流程")
|
||||||
for cookie in nbesf_data.cookies:
|
for cookie in nbesf_data.cookies:
|
||||||
try:
|
try:
|
||||||
new_cookie = DBCookie(
|
new_cookie = DBCookie(**model_dump(cookie, exclude={"targets"}))
|
||||||
site_name=cookie.site_name,
|
|
||||||
content=cookie.content,
|
|
||||||
cookie_name=cookie.cookie_name,
|
|
||||||
cd_milliseconds=cookie.cd_milliseconds,
|
|
||||||
is_universal=cookie.is_universal,
|
|
||||||
tags=cookie.tags,
|
|
||||||
)
|
|
||||||
cookie_id = await config.add_cookie(new_cookie)
|
cookie_id = await config.add_cookie(new_cookie)
|
||||||
for target in cookie.targets:
|
for target in cookie.targets:
|
||||||
await config.add_cookie_target(target.target, target.platform_name, cookie_id)
|
await config.add_cookie_target(target.target, target.platform_name, cookie_id)
|
||||||
|
@ -10,7 +10,7 @@ from nonebot.compat import type_validate_python
|
|||||||
from nonebot_plugin_datastore.db import create_session
|
from nonebot_plugin_datastore.db import create_session
|
||||||
from sqlalchemy.orm.strategy_options import selectinload
|
from sqlalchemy.orm.strategy_options import selectinload
|
||||||
|
|
||||||
from .utils import NBESFVerMatchErr
|
from .utils import NBESFVerMatchErr, row2dict
|
||||||
from .nbesf_model import NBESFBase, v1, v2, v3
|
from .nbesf_model import NBESFBase, v1, v2, v3
|
||||||
from ..db_model import User, Cookie, Target, Subscribe, CookieTarget
|
from ..db_model import User, Cookie, Target, Subscribe, CookieTarget
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ async def subscribes_export(selector: Callable[[Select], Select]) -> v3.SubGroup
|
|||||||
)
|
)
|
||||||
cookie_target_data = await sess.scalars(cookie_target_stmt)
|
cookie_target_data = await sess.scalars(cookie_target_stmt)
|
||||||
|
|
||||||
cookie_target_dict = defaultdict(list)
|
cookie_target_dict: dict[Cookie, list[v3.Target]] = defaultdict(list)
|
||||||
for cookie_target in cookie_target_data:
|
for cookie_target in cookie_target_data:
|
||||||
target_payload = type_validate_python(v3.Target, cookie_target.target)
|
target_payload = type_validate_python(v3.Target, cookie_target.target)
|
||||||
cookie_target_dict[cookie_target.cookie].append(target_payload)
|
cookie_target_dict[cookie_target.cookie].append(target_payload)
|
||||||
@ -67,17 +67,10 @@ async def subscribes_export(selector: Callable[[Select], Select]) -> v3.SubGroup
|
|||||||
cookies: list[v3.Cookie] = []
|
cookies: list[v3.Cookie] = []
|
||||||
for cookie, targets in cookie_target_dict.items():
|
for cookie, targets in cookie_target_dict.items():
|
||||||
assert isinstance(cookie, Cookie)
|
assert isinstance(cookie, Cookie)
|
||||||
cookies.append(
|
cookie_dict = row2dict(cookie)
|
||||||
v3.Cookie(
|
cookie_dict["tags"] = cookie.tags
|
||||||
site_name=cookie.site_name,
|
cookie_dict["targets"] = targets
|
||||||
content=cookie.content,
|
cookies.append(v3.Cookie(**cookie_dict))
|
||||||
cookie_name=cookie.cookie_name,
|
|
||||||
cd_milliseconds=cookie.cd_milliseconds,
|
|
||||||
is_universal=cookie.is_universal,
|
|
||||||
tags=cookie.tags,
|
|
||||||
targets=targets,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
sub_group = v3.SubGroup(groups=groups, cookies=cookies)
|
sub_group = v3.SubGroup(groups=groups, cookies=cookies)
|
||||||
|
|
||||||
|
@ -2,3 +2,11 @@ class NBESFVerMatchErr(Exception): ...
|
|||||||
|
|
||||||
|
|
||||||
class NBESFParseErr(Exception): ...
|
class NBESFParseErr(Exception): ...
|
||||||
|
|
||||||
|
|
||||||
|
def row2dict(row):
|
||||||
|
d = {}
|
||||||
|
for column in row.__table__.columns:
|
||||||
|
d[column.name] = str(getattr(row, column.name))
|
||||||
|
|
||||||
|
return d
|
||||||
|
Loading…
x
Reference in New Issue
Block a user