♻️ cookie 组件不再与 user 关联

This commit is contained in:
2024-08-31 23:07:43 +08:00
parent c828fd94e4
commit 1cd778c2e0
6 changed files with 85 additions and 50 deletions
+3 -6
View File
@@ -1,21 +1,18 @@
from nonebot.typing import T_State
from nonebot.matcher import Matcher
from nonebot.params import Arg, ArgPlainText
from nonebot_plugin_saa import PlatformTarget
from nonebot.adapters import Message, MessageTemplate
from ..types import Target
from ..config import config
from ..platform import platform_manager
from ..apis import check_sub_target_cookie
from .utils import common_platform, ensure_user_info, gen_handle_cancel
from .utils import common_platform, gen_handle_cancel
def do_add_cookie(add_cookie: type[Matcher]):
handle_cancel = gen_handle_cancel(add_cookie, "已中止添加cookie")
add_cookie.handle()(ensure_user_info(add_cookie))
@add_cookie.handle()
async def init_promote(state: T_State):
state["_prompt"] = (
@@ -56,8 +53,8 @@ def do_add_cookie(add_cookie: type[Matcher]):
state["name"] = await check_sub_target_cookie(state["platform"], Target(""), cookie_text)
@add_cookie.handle()
async def add_cookie_process(state: T_State, user: PlatformTarget = Arg("target_user_info")):
await config.add_cookie(user, state["platform"], state["cookie"])
async def add_cookie_process(state: T_State):
await config.add_cookie(state["platform"], state["cookie"])
await add_cookie.finish(
f"已添加 Cookie: {state['cookie']} 到平台 {state['platform']}" + "\n请使用“关联cookie”为 Cookie 关联订阅"
)
+7 -14
View File
@@ -1,25 +1,21 @@
from nonebot.typing import T_State
from nonebot.matcher import Matcher
from nonebot.params import Arg, ArgPlainText
from nonebot.params import ArgPlainText
from nonebot_plugin_saa import MessageFactory
from nonebot.internal.adapter import MessageTemplate
from nonebot_plugin_saa import MessageFactory, PlatformTarget
from ..config import config
from ..utils import parse_text
from ..apis import get_cookie_friendly_name
from .utils import ensure_user_info, gen_handle_cancel, generate_sub_list_text
from .utils import gen_handle_cancel, generate_sub_list_text
def do_add_cookie_target(add_cookie_target_matcher: type[Matcher]):
handle_cancel = gen_handle_cancel(add_cookie_target_matcher, "已中止关联 cookie")
add_cookie_target_matcher.handle()(ensure_user_info(add_cookie_target_matcher))
@add_cookie_target_matcher.handle()
async def init_promote(state: T_State, user_info: PlatformTarget = Arg("target_user_info")):
res = await generate_sub_list_text(
add_cookie_target_matcher, state, user_info, is_index=True, is_show_cookie=True
)
async def init_promote(state: T_State):
res = await generate_sub_list_text(add_cookie_target_matcher, state, is_index=True, is_show_cookie=True)
res += "请输入要关联 cookie 的订阅的序号\n输入'取消'中止"
await MessageFactory(await parse_text(res)).send()
@@ -34,11 +30,8 @@ def do_add_cookie_target(add_cookie_target_matcher: type[Matcher]):
@add_cookie_target_matcher.handle()
async def init_promote_cookie(state: T_State):
cookies = await config.get_cookie(
user=state["target_user_info"], platform_name=state["target"]["platform_name"]
)
cookies = await config.get_cookie(platform_name=state["target"]["platform_name"])
associated_cookies = await config.get_cookie(
user=state["target_user_info"],
target=state["target"]["target"],
platform_name=state["target"]["platform_name"],
)
@@ -62,7 +55,7 @@ def do_add_cookie_target(add_cookie_target_matcher: type[Matcher]):
await add_cookie_target_matcher.reject("序号错误")
@add_cookie_target_matcher.handle()
async def add_cookie_target_process(state: T_State, user: PlatformTarget = Arg("target_user_info")):
async def add_cookie_target_process(state: T_State):
await config.add_cookie_target(state["target"]["target"], state["target"]["platform_name"], state["cookie"].id)
await add_cookie_target_matcher.finish(
f"已关联 Cookie: {await get_cookie_friendly_name(state['cookie'])} "
+12 -3
View File
@@ -1,5 +1,7 @@
import contextlib
from typing import Annotated
from itertools import groupby
from operator import attrgetter
from nonebot.rule import Rule
from nonebot.adapters import Event
@@ -66,9 +68,16 @@ def admin_permission():
async def generate_sub_list_text(
matcher: type[Matcher], state: T_State, user_info: PlatformTarget, is_index=False, is_show_cookie=False
matcher: type[Matcher], state: T_State, user_info: PlatformTarget = None, is_index=False, is_show_cookie=False
):
sub_list = await config.list_subscribe(user_info)
if user_info:
sub_list = await config.list_subscribe(user_info)
else:
sub_list = await config.list_subs_with_all_info()
sub_list = [
next(group)
for key, group in groupby(sorted(sub_list, key=attrgetter("target_id")), key=attrgetter("target_id"))
]
if not sub_list:
await matcher.finish("暂无已订阅账号\n请使用“添加订阅”命令添加订阅")
res = "订阅的帐号为:\n"
@@ -88,7 +97,7 @@ async def generate_sub_list_text(
res += " {}".format(", ".join(sub.tags)) + "\n"
if is_show_cookie:
target_cookies = await config.get_cookie(
user=user_info, target=sub.target.target, platform_name=sub.target.platform_name
target=sub.target.target, platform_name=sub.target.platform_name
)
if target_cookies:
res += " 关联的 Cookie\n"