支持对话添加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() client = await scheduler.client_mgr.get_query_name_client()
return await platform_manager[platform_name].get_target_name(client, target) 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, priority=5,
block=True, block=True,
) )
add_cookie_matcher.handle()(set_target_user_info)
do_add_cookie(add_cookie_matcher) do_add_cookie(add_cookie_matcher)
group_manage_matcher = on_command("群管理", rule=to_me(), permission=SUPERUSER, priority=4, block=True) 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 ..types import Target
from ..config import config from ..config import config
from ..apis import check_sub_target
from ..platform import platform_manager 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, 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): async def prepare_get_id(matcher: Matcher, state: T_State):
cur_platform = platform_manager[state["platform"]] cur_platform = platform_manager[state["platform"]]
if cur_platform.has_target: if cur_platform.has_target:
state["_prompt"] = ( state["_prompt"] = "请输入 Cookie"
("1." + cur_platform.parse_target_promot + "\n2.") if cur_platform.parse_target_promot else ""
) + "请输入 Cookie \n查询id获取方法请回复:“查询”"
else: else:
matcher.set_arg("cookie", None) # type: ignore matcher.set_arg("cookie", None) # type: ignore
state["id"] = "default" state["id"] = "default"
state["name"] = await check_sub_target(state["platform"], Target(""))
@add_cookie.got("cookie", MessageTemplate("{_prompt}"), [handle_cancel]) @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() cookie_text = cookie.extract_plain_text()
state["cookie"] = cookie_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() @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 config.add_cookie(user, state["platform"], state["cookie"])
await add_cookie.finish(f"已添加 Cookie: {state['cookie']} 到平台 {state['platform']}") await add_cookie.finish(f"已添加 Cookie: {state['cookie']} 到平台 {state['platform']}")