fix: android tv connection for remnawave

This commit is contained in:
Capybara-z
2025-06-05 19:16:05 +03:00
parent d61c0dcb30
commit c76c8d6544
4 changed files with 9 additions and 23 deletions
+6 -20
View File
@@ -145,18 +145,11 @@ async def process_macos_menu(callback_query: CallbackQuery, session: Any):
@router.callback_query(F.data.startswith("connect_tv|"))
async def process_connect_tv(callback_query: CallbackQuery, session: Any):
data = callback_query.data.split("|")
key_name = data[1]
callback_data = callback_query.data
if key_name == "direct" and len(data) > 2:
callback_data = f"continue_tv|{key_name}|{data[2]}"
else:
callback_data = callback_data.replace("connect_tv", "continue_tv")
key_name = callback_query.data.split("|")[1]
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(text=TV_CONTINUE, callback_data=callback_data)
InlineKeyboardButton(text=TV_CONTINUE, callback_data=f"continue_tv|{key_name}")
)
builder.row(InlineKeyboardButton(text=BACK, callback_data=f"view_key|{key_name}"))
builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile"))
@@ -172,20 +165,13 @@ async def process_connect_tv(callback_query: CallbackQuery, session: Any):
@router.callback_query(F.data.startswith("continue_tv|"))
async def process_continue_tv(callback_query: CallbackQuery, session: Any):
data = callback_query.data.split("|")
key_name = data[1]
subscription_link = None
if key_name == "direct" and len(data) > 2:
subscription_link = data[2]
else:
record = await get_key_details(session, key_name)
subscription_link = record["key"]
key_name = callback_query.data.split("|")[1]
record = await get_key_details(session, key_name)
subscription_link = record.get("key") or record.get("remnawave_link")
message_text = SUBSCRIPTION_DETAILS_TEXT.format(subscription_link=subscription_link)
builder = InlineKeyboardBuilder()
builder.row(InlineKeyboardButton(text=BACK, callback_data=f"connect_tv|{key_name}|{subscription_link}" if subscription_link else f"connect_tv|{key_name}"))
builder.row(InlineKeyboardButton(text=BACK, callback_data=f"connect_tv|{key_name}"))
builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile"))
await edit_or_send_message(
+1 -1
View File
@@ -153,7 +153,7 @@ async def key_cluster_mode(
)
)
builder.row(
InlineKeyboardButton(text=TV_BUTTON, callback_data=f"connect_tv|direct|{final_link}")
InlineKeyboardButton(text=TV_BUTTON, callback_data=f"connect_tv|{email}")
)
elif CONNECT_PHONE_BUTTON:
builder.row(
+1 -1
View File
@@ -529,7 +529,7 @@ async def finalize_key_creation(
)
)
builder.row(
InlineKeyboardButton(text=TV_BUTTON, callback_data=f"connect_tv|direct|{public_link or remnawave_link}")
InlineKeyboardButton(text=TV_BUTTON, callback_data=f"connect_tv|{email}")
)
elif CONNECT_PHONE_BUTTON:
builder.row(
+1 -1
View File
@@ -327,7 +327,7 @@ async def render_key_info(
)
)
builder.row(
InlineKeyboardButton(text=TV_BUTTON, callback_data=f"connect_tv|direct|{final_link}")
InlineKeyboardButton(text=TV_BUTTON, callback_data=f"connect_tv|{key_name}")
)
else:
if CONNECT_PHONE_BUTTON: