关联cookie时,只显示支持的订阅

This commit is contained in:
suyiiyii 2024-09-06 00:39:57 +08:00
parent 6537f01a34
commit b61bde6e3f
3 changed files with 18 additions and 3 deletions

View File

@ -1,4 +1,5 @@
from .types import Target
from .utils import text_fletten
from .config.db_model import Cookie
from .scheduler import scheduler_dict
from .platform import platform_manager
@ -20,4 +21,4 @@ async def check_sub_target_cookie(platform_name: str, target: Target, cookie: st
async def get_cookie_friendly_name(cookie: Cookie):
# TODO
return f"{cookie.platform_name} [{cookie.content[:10]}]"
return text_fletten(f"{cookie.platform_name} [{cookie.content[:10]}]")

View File

@ -15,7 +15,9 @@ def do_add_cookie_target(add_cookie_target_matcher: type[Matcher]):
@add_cookie_target_matcher.handle()
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 = await generate_sub_list_text(
add_cookie_target_matcher, state, is_index=True, is_show_cookie=True, is_hide_no_cookie_platfrom=True
)
res += "请输入要关联 cookie 的订阅的序号\n输入'取消'中止"
await MessageFactory(await parse_text(res)).send()

View File

@ -16,6 +16,7 @@ from ..types import Category
from ..platform import platform_manager
from ..plugin_config import plugin_config
from ..apis import get_cookie_friendly_name
from ..utils.site import is_cookie_client_manager
def _configurable_to_me(to_me: bool = EventToMe()):
@ -68,7 +69,12 @@ def admin_permission():
async def generate_sub_list_text(
matcher: type[Matcher], state: T_State, user_info: PlatformTarget = None, is_index=False, is_show_cookie=False
matcher: type[Matcher],
state: T_State,
user_info: PlatformTarget = None,
is_index=False,
is_show_cookie=False,
is_hide_no_cookie_platfrom=False,
):
if user_info:
sub_list = await config.list_subscribe(user_info)
@ -78,6 +84,12 @@ async def generate_sub_list_text(
next(group)
for key, group in groupby(sorted(sub_list, key=attrgetter("target_id")), key=attrgetter("target_id"))
]
if is_hide_no_cookie_platfrom:
sub_list = [
sub
for sub in sub_list
if is_cookie_client_manager(platform_manager.get(sub.target.platform_name).site.client_mgr)
]
if not sub_list:
await matcher.finish("暂无已订阅账号\n请使用“添加订阅”命令添加订阅")
res = "订阅的帐号为:\n"