支持对话添加cookie

This commit is contained in:
suyiiyii 2024-08-26 10:37:03 +08:00
parent c264ad374b
commit b655eff755
4 changed files with 11 additions and 8 deletions

View File

@ -10,3 +10,8 @@ async def check_sub_target(platform_name: str, target: Target):
client = await scheduler.client_mgr.get_query_name_client()
return await platform_manager[platform_name].get_target_name(client, target)
async def check_sub_target_cookie(platform_name: str, target: Target, cookie: str):
# TODO
return "check pass"

View File

@ -48,6 +48,7 @@ add_cookie_matcher = on_command(
priority=5,
block=True,
)
add_cookie_matcher.handle()(set_target_user_info)
do_add_cookie(add_cookie_matcher)
group_manage_matcher = on_command("群管理", rule=to_me(), permission=SUPERUSER, priority=4, block=True)

View File

@ -6,8 +6,8 @@ from nonebot.adapters import Message, MessageTemplate
from ..types import Target
from ..config import config
from ..apis import check_sub_target
from ..platform import platform_manager
from ..apis import check_sub_target_cookie
from .utils import common_platform, ensure_user_info, gen_handle_cancel
@ -44,21 +44,18 @@ def do_add_cookie(add_cookie: type[Matcher]):
async def prepare_get_id(matcher: Matcher, state: T_State):
cur_platform = platform_manager[state["platform"]]
if cur_platform.has_target:
state["_prompt"] = (
("1." + cur_platform.parse_target_promot + "\n2.") if cur_platform.parse_target_promot else ""
) + "请输入 Cookie \n查询id获取方法请回复:“查询”"
state["_prompt"] = "请输入 Cookie"
else:
matcher.set_arg("cookie", None) # type: ignore
state["id"] = "default"
state["name"] = await check_sub_target(state["platform"], Target(""))
@add_cookie.got("cookie", MessageTemplate("{_prompt}"), [handle_cancel])
async def got_id(state: T_State, cookie: Message = Arg()):
async def got_cookie(state: T_State, cookie: Message = Arg()):
cookie_text = cookie.extract_plain_text()
state["cookie"] = cookie_text
state["name"] = await check_sub_target(state["platform"], Target(""))
state["name"] = await check_sub_target_cookie(state["platform"], Target(""), cookie_text)
@add_cookie.handle()
async def add_cookie(state: T_State, user: PlatformTarget = Arg("target_user_info")):
async def add_cookie_process(state: T_State, user: PlatformTarget = Arg("target_user_info")):
await config.add_cookie(user, state["platform"], state["cookie"])
await add_cookie.finish(f"已添加 Cookie: {state['cookie']} 到平台 {state['platform']}")