mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-03-05 13:23:48 +00:00
Revert "Handle unsupported Happ cryptolink URLs in Telegram"
This commit is contained in:
@@ -4589,45 +4589,11 @@ async def handle_no_traffic_packages(
|
||||
):
|
||||
await callback.answer(
|
||||
"⚠️ В данный момент нет доступных пакетов трафика. "
|
||||
"Обратитесь в техподдержку для получения информации.",
|
||||
"Обратитесь в техподдержку для получения информации.",
|
||||
show_alert=True
|
||||
)
|
||||
|
||||
|
||||
async def handle_happ_copy_subscription_link(
|
||||
callback: types.CallbackQuery,
|
||||
db_user: User,
|
||||
db: AsyncSession
|
||||
):
|
||||
texts = get_texts(db_user.language)
|
||||
subscription = db_user.subscription
|
||||
subscription_link = get_display_subscription_link(subscription)
|
||||
|
||||
if not subscription_link:
|
||||
await callback.answer(
|
||||
texts.t("SUBSCRIPTION_LINK_UNAVAILABLE", "❌ Ссылка подписки недоступна"),
|
||||
show_alert=True,
|
||||
)
|
||||
return
|
||||
|
||||
await callback.message.answer(
|
||||
texts.t(
|
||||
"SUBSCRIPTION_HAPP_COPY_MESSAGE",
|
||||
"🔗 <b>Ссылка для Happ:</b>\n<code>{subscription_link}</code>",
|
||||
).format(subscription_link=subscription_link),
|
||||
parse_mode="HTML",
|
||||
disable_web_page_preview=True,
|
||||
)
|
||||
|
||||
await callback.answer(
|
||||
texts.t(
|
||||
"SUBSCRIPTION_HAPP_COPY_ALERT",
|
||||
"📋 Ссылка отправлена отдельным сообщением.",
|
||||
),
|
||||
show_alert=False,
|
||||
)
|
||||
|
||||
|
||||
async def handle_open_subscription_link(
|
||||
callback: types.CallbackQuery,
|
||||
db_user: User,
|
||||
@@ -4645,37 +4611,21 @@ async def handle_open_subscription_link(
|
||||
return
|
||||
|
||||
if settings.is_happ_cryptolink_mode():
|
||||
allowed_schemes = ("http://", "https://", "tg://", "ton://", "ftp://")
|
||||
link_supported = subscription_link.startswith(allowed_schemes)
|
||||
|
||||
if link_supported:
|
||||
link_line = texts.t(
|
||||
"SUBSCRIPTION_HAPP_OPEN_LINK",
|
||||
"<a href=\"{subscription_link}\">🔓 Открыть ссылку в Happ</a>",
|
||||
).format(subscription_link=subscription_link)
|
||||
else:
|
||||
link_line = texts.t(
|
||||
"SUBSCRIPTION_HAPP_OPEN_LINK_UNSUPPORTED",
|
||||
"🔓 Скопируйте ссылку из блока ниже и откройте её в Happ вручную.",
|
||||
)
|
||||
|
||||
happ_message = (
|
||||
texts.t(
|
||||
"SUBSCRIPTION_HAPP_OPEN_TITLE",
|
||||
"🔗 <b>Подключение через Happ</b>",
|
||||
)
|
||||
+ "\n\n"
|
||||
+ link_line
|
||||
+ texts.t(
|
||||
"SUBSCRIPTION_HAPP_OPEN_LINK",
|
||||
"<a href=\"{subscription_link}\">🔓 Открыть ссылку в Happ</a>",
|
||||
).format(subscription_link=subscription_link)
|
||||
+ "\n\n"
|
||||
+ texts.t(
|
||||
"SUBSCRIPTION_HAPP_OPEN_HINT",
|
||||
"💡 Если ссылка не открывается автоматически, скопируйте её вручную: <code>{subscription_link}</code>",
|
||||
).format(subscription_link=subscription_link)
|
||||
+ "\n\n"
|
||||
+ texts.t(
|
||||
"SUBSCRIPTION_HAPP_OPEN_COPY_HINT",
|
||||
"📋 Нажмите кнопку ниже, чтобы получить ссылку одним нажатием.",
|
||||
)
|
||||
)
|
||||
|
||||
keyboard = get_happ_cryptolink_keyboard(subscription_link, db_user.language)
|
||||
@@ -5416,16 +5366,11 @@ def register_handlers(dp: Dispatcher):
|
||||
F.data == "happ_download_back"
|
||||
)
|
||||
|
||||
dp.callback_query.register(
|
||||
handle_happ_copy_subscription_link,
|
||||
F.data == "happ_copy_link"
|
||||
)
|
||||
|
||||
dp.callback_query.register(
|
||||
handle_connect_subscription,
|
||||
F.data == "subscription_connect"
|
||||
)
|
||||
|
||||
|
||||
dp.callback_query.register(
|
||||
handle_device_guide,
|
||||
F.data.startswith("device_guide_")
|
||||
|
||||
@@ -2,7 +2,6 @@ from typing import List, Optional
|
||||
from aiogram import types
|
||||
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
||||
from datetime import datetime
|
||||
from urllib.parse import urlparse
|
||||
from app.database.models import User
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
@@ -255,74 +254,49 @@ def get_happ_download_button_row(texts) -> Optional[List[InlineKeyboardButton]]:
|
||||
]
|
||||
|
||||
|
||||
def _is_supported_inline_button_url(url: str) -> bool:
|
||||
try:
|
||||
parsed = urlparse(url)
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
if not parsed.scheme:
|
||||
return False
|
||||
|
||||
return parsed.scheme.lower() in {"http", "https", "tg", "ton", "ftp"}
|
||||
|
||||
|
||||
def get_happ_cryptolink_keyboard(
|
||||
subscription_link: str,
|
||||
language: str = DEFAULT_LANGUAGE,
|
||||
) -> InlineKeyboardMarkup:
|
||||
texts = get_texts(language)
|
||||
buttons = []
|
||||
|
||||
if _is_supported_inline_button_url(subscription_link):
|
||||
buttons.append([
|
||||
buttons = [
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("CONNECT_BUTTON", "🔗 Подключиться"),
|
||||
url=subscription_link,
|
||||
)
|
||||
])
|
||||
else:
|
||||
buttons.append([
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_COPY_LINK_BUTTON", "📋 Получить ссылку"),
|
||||
callback_data="happ_copy_link",
|
||||
)
|
||||
])
|
||||
|
||||
buttons.extend(
|
||||
],
|
||||
[
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_IOS", "🍎 iOS"),
|
||||
callback_data="happ_download_ios",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_ANDROID", "🤖 Android"),
|
||||
callback_data="happ_download_android",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_MACOS", "🖥️ Mac OS"),
|
||||
callback_data="happ_download_macos",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_WINDOWS", "💻 Windows"),
|
||||
callback_data="happ_download_windows",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("BACK_TO_MAIN_MENU_BUTTON", "⬅️ В главное меню"),
|
||||
callback_data="back_to_menu",
|
||||
)
|
||||
],
|
||||
]
|
||||
)
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_IOS", "🍎 iOS"),
|
||||
callback_data="happ_download_ios",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_ANDROID", "🤖 Android"),
|
||||
callback_data="happ_download_android",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_MACOS", "🖥️ Mac OS"),
|
||||
callback_data="happ_download_macos",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("HAPP_PLATFORM_WINDOWS", "💻 Windows"),
|
||||
callback_data="happ_download_windows",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=texts.t("BACK_TO_MAIN_MENU_BUTTON", "⬅️ В главное меню"),
|
||||
callback_data="back_to_menu",
|
||||
)
|
||||
],
|
||||
]
|
||||
|
||||
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
"HAPP_PLATFORM_ANDROID": "🤖 Android",
|
||||
"HAPP_PLATFORM_MACOS": "🖥️ Mac OS",
|
||||
"HAPP_PLATFORM_WINDOWS": "💻 Windows",
|
||||
"HAPP_COPY_LINK_BUTTON": "📋 Get link",
|
||||
"HAPP_PLATFORM_PC": "💻 PC",
|
||||
"HAPP_DOWNLOAD_LINK_MESSAGE": "⬇️ Download Happ for {platform}:",
|
||||
"HAPP_DOWNLOAD_LINK_NOT_SET": "❌ Download link for this device is not configured",
|
||||
@@ -409,11 +408,7 @@
|
||||
"SUBSCRIPTION_DEVICE_GUIDE_TITLE": "📱 <b>Setup for {device_name}</b>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 <b>Connect via Happ</b>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_LINK": "<a href=\"{subscription_link}\">🔓 Open link in Happ</a>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_LINK_UNSUPPORTED": "🔓 Copy the link from the block below and open it in Happ manually.",
|
||||
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 If the link doesn't open automatically, copy it manually: <code>{subscription_link}</code>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_COPY_HINT": "📋 Use the button below to get the link in one tap.",
|
||||
"SUBSCRIPTION_HAPP_COPY_MESSAGE": "🔗 <b>Happ link:</b>\n<code>{subscription_link}</code>",
|
||||
"SUBSCRIPTION_HAPP_COPY_ALERT": "📋 The link was sent as a separate message.",
|
||||
"SUBSCRIPTION_DEVICE_LINK_TITLE": "🔗 <b>Subscription link:</b>",
|
||||
"SUBSCRIPTION_DEVICE_FEATURED_APP": "📋 <b>Recommended app:</b> {app_name}",
|
||||
"SUBSCRIPTION_DEVICE_STEP_INSTALL_TITLE": "<b>Step 1 - Install:</b>",
|
||||
|
||||
@@ -189,7 +189,6 @@
|
||||
"HAPP_PLATFORM_ANDROID": "🤖 Android",
|
||||
"HAPP_PLATFORM_MACOS": "🖥️ Mac OS",
|
||||
"HAPP_PLATFORM_WINDOWS": "💻 Windows",
|
||||
"HAPP_COPY_LINK_BUTTON": "📋 Получить ссылку",
|
||||
"HAPP_PLATFORM_PC": "💻 ПК",
|
||||
"HAPP_DOWNLOAD_LINK_MESSAGE": "⬇️ Скачайте Happ для {platform}:",
|
||||
"HAPP_DOWNLOAD_LINK_NOT_SET": "❌ Ссылка для этого устройства не настроена",
|
||||
@@ -409,11 +408,7 @@
|
||||
"SUBSCRIPTION_DEVICE_GUIDE_TITLE": "📱 <b>Настройка для {device_name}</b>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 <b>Подключение через Happ</b>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_LINK": "<a href=\"{subscription_link}\">🔓 Открыть ссылку в Happ</a>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_LINK_UNSUPPORTED": "🔓 Скопируйте ссылку из блока ниже и откройте её в Happ вручную.",
|
||||
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Если ссылка не открывается автоматически, скопируйте её вручную: <code>{subscription_link}</code>",
|
||||
"SUBSCRIPTION_HAPP_OPEN_COPY_HINT": "📋 Нажмите кнопку ниже, чтобы получить ссылку одним нажатием.",
|
||||
"SUBSCRIPTION_HAPP_COPY_MESSAGE": "🔗 <b>Ссылка для Happ:</b>\n<code>{subscription_link}</code>",
|
||||
"SUBSCRIPTION_HAPP_COPY_ALERT": "📋 Ссылка отправлена отдельным сообщением.",
|
||||
"SUBSCRIPTION_DEVICE_LINK_TITLE": "🔗 <b>Ссылка подписки:</b>",
|
||||
"SUBSCRIPTION_DEVICE_FEATURED_APP": "📋 <b>Рекомендуемое приложение:</b> {app_name}",
|
||||
"SUBSCRIPTION_DEVICE_STEP_INSTALL_TITLE": "<b>Шаг 1 - Установка:</b>",
|
||||
|
||||
Reference in New Issue
Block a user