diff --git a/app/handlers/subscription.py b/app/handlers/subscription.py
index 42392c7b..205c81fd 100644
--- a/app/handlers/subscription.py
+++ b/app/handlers/subscription.py
@@ -68,7 +68,6 @@ from app.utils.pagination import paginate_list
from app.utils.subscription_utils import (
get_display_subscription_link,
get_happ_cryptolink_redirect_link,
- build_happ_scheme_link,
)
logger = logging.getLogger(__name__)
@@ -5049,45 +5048,23 @@ async def handle_open_subscription_link(
if settings.is_happ_cryptolink_mode():
redirect_link = get_happ_cryptolink_redirect_link(subscription_link)
- subscription_crypto_link = getattr(subscription, "subscription_crypto_link", None)
- subscription_base_link = getattr(subscription, "subscription_url", None)
- happ_scheme_link = (
- build_happ_scheme_link(subscription_crypto_link or subscription_link)
- or subscription_link
- )
- crypto_link_to_hide = subscription_crypto_link or subscription_link
-
- if crypto_link_to_hide == happ_scheme_link:
- crypto_link_to_hide = subscription_base_link or crypto_link_to_hide
-
- message_parts = [
+ happ_message = (
texts.t(
"SUBSCRIPTION_HAPP_OPEN_TITLE",
"🔗 Подключение через Happ",
- ),
- texts.t(
- "SUBSCRIPTION_HAPP_OPEN_LINK",
- "🔓 Ссылка для Happ:\n{happ_link}",
- ).format(happ_link=happ_scheme_link),
- ]
-
- if crypto_link_to_hide and crypto_link_to_hide != happ_scheme_link:
- message_parts.append(
- texts.t(
- "SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK",
- "
🪙 CryptoLink:\n{crypto_link}\n",
- ).format(crypto_link=crypto_link_to_hide)
)
-
- message_parts.append(
- texts.t(
+ + "\n\n"
+ + texts.t(
+ "SUBSCRIPTION_HAPP_OPEN_LINK",
+ "🔓 Открыть ссылку в Happ",
+ ).format(subscription_link=subscription_link)
+ + "\n\n"
+ + texts.t(
"SUBSCRIPTION_HAPP_OPEN_HINT",
- "💡 Скопируйте ссылку и вставьте её в приложение Happ: {happ_link}",
- ).format(happ_link=happ_scheme_link)
+ "💡 Если ссылка не открывается автоматически, скопируйте её вручную: {subscription_link}",
+ ).format(subscription_link=subscription_link)
)
- happ_message = "\n\n".join(message_parts)
-
if redirect_link:
happ_message += "\n\n" + texts.t(
"SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT",
diff --git a/app/localization/locales/en.json b/app/localization/locales/en.json
index 42f18185..b71ef1df 100644
--- a/app/localization/locales/en.json
+++ b/app/localization/locales/en.json
@@ -358,11 +358,6 @@
"SUBSCRIPTION_LINK_STEP3": "3. Find the 'Add subscription' or 'Import' option",
"SUBSCRIPTION_LINK_STEP4": "4. Paste the copied link",
"SUBSCRIPTION_LINK_HINT": "💡 If the link didn't copy, select it manually and copy.",
- "SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 Connect via Happ",
- "SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Link for Happ:\n{happ_link}",
- "SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "🪙 CryptoLink:\n{crypto_link}\n",
- "SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Copy the link and paste it into the Happ app: {happ_link}",
- "SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Tap the \"Connect\" button below to open Happ and add the subscription automatically.",
"REFERRAL_PROGRAM_TITLE": "👥 Referral program",
"REFERRAL_STATS_HEADER": "📊 Your statistics:",
"REFERRAL_STATS_INVITED": "• Invited users: {count}",
diff --git a/app/localization/locales/ru.json b/app/localization/locales/ru.json
index 63b4de2b..5824f49d 100644
--- a/app/localization/locales/ru.json
+++ b/app/localization/locales/ru.json
@@ -360,11 +360,6 @@
"SUBSCRIPTION_LINK_STEP3": "3. Найдите функцию \"Добавить подписку\" или \"Import\"",
"SUBSCRIPTION_LINK_STEP4": "4. Вставьте скопированную ссылку",
"SUBSCRIPTION_LINK_HINT": "💡 Если ссылка не скопировалась, выделите её вручную и скопируйте.",
- "SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 Подключение через Happ",
- "SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Ссылка для Happ:\n{happ_link}",
- "SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "🪙 CryptoLink:\n{crypto_link}\n",
- "SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Скопируйте ссылку и вставьте её в приложение Happ: {happ_link}",
- "SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Нажмите кнопку \"Подключиться\" ниже, чтобы открыть Happ и добавить подписку автоматически.",
"REFERRAL_PROGRAM_TITLE": "👥 Реферальная программа",
"REFERRAL_STATS_HEADER": "📊 Ваша статистика:",
"REFERRAL_STATS_INVITED": "• Приглашено пользователей: {count}",
diff --git a/app/utils/subscription_utils.py b/app/utils/subscription_utils.py
index 2060ee3e..a2741b5d 100644
--- a/app/utils/subscription_utils.py
+++ b/app/utils/subscription_utils.py
@@ -1,7 +1,7 @@
import logging
from datetime import datetime
from typing import Optional
-from urllib.parse import quote, urlparse
+from urllib.parse import quote
from sqlalchemy import select, delete, func
from sqlalchemy.ext.asyncio import AsyncSession
from app.database.models import Subscription, User
@@ -141,36 +141,3 @@ def get_happ_cryptolink_redirect_link(subscription_link: Optional[str]) -> Optio
return f"{template}{encoded_link}"
return f"{template}{encoded_link}"
-
-
-def build_happ_scheme_link(subscription_link: Optional[str]) -> Optional[str]:
- """Convert a crypto link into the happ:// URL scheme if possible."""
-
- if not subscription_link:
- return None
-
- if subscription_link.startswith("happ://"):
- return subscription_link
-
- parsed = urlparse(subscription_link)
-
- if parsed.scheme not in {"http", "https"}:
- return None
-
- path_parts = []
-
- if parsed.netloc:
- path_parts.append(parsed.netloc)
-
- if parsed.path:
- path_parts.append(parsed.path.lstrip("/"))
-
- path = "/".join(part for part in path_parts if part)
-
- if not path and not parsed.query and not parsed.fragment:
- return None
-
- query = f"?{parsed.query}" if parsed.query else ""
- fragment = f"#{parsed.fragment}" if parsed.fragment else ""
-
- return f"happ://{path}{query}{fragment}"
diff --git a/locales/en.json b/locales/en.json
index 9a5a72fa..65b77197 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -420,9 +420,8 @@
"SUBSCRIPTION_DEVICE_APPS_NOT_FOUND": "❌ No apps found for this device",
"SUBSCRIPTION_DEVICE_GUIDE_TITLE": "📱 Setup for {device_name}",
"SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 Connect via Happ",
- "SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Link for Happ:\n{happ_link}",
- "SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "🪙 CryptoLink:\n{crypto_link}\n",
- "SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Copy the link and paste it into the Happ app: {happ_link}",
+ "SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Open link in Happ",
+ "SUBSCRIPTION_HAPP_OPEN_HINT": "💡 If the link doesn't open automatically, copy it manually: {subscription_link}",
"SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Tap the \"Connect\" button below to open Happ and add the subscription automatically.",
"SUBSCRIPTION_DEVICE_LINK_TITLE": "🔗 Subscription link:",
"SUBSCRIPTION_DEVICE_FEATURED_APP": "📋 Recommended app: {app_name}",
diff --git a/locales/ru.json b/locales/ru.json
index 41655123..332ce1f0 100644
--- a/locales/ru.json
+++ b/locales/ru.json
@@ -420,9 +420,8 @@
"SUBSCRIPTION_DEVICE_APPS_NOT_FOUND": "❌ Приложения для этого устройства не найдены",
"SUBSCRIPTION_DEVICE_GUIDE_TITLE": "📱 Настройка для {device_name}",
"SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 Подключение через Happ",
- "SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Ссылка для Happ:\n{happ_link}",
- "SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "🪙 CryptoLink:\n{crypto_link}\n",
- "SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Скопируйте ссылку и вставьте её в приложение Happ: {happ_link}",
+ "SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Открыть ссылку в Happ",
+ "SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Если ссылка не открывается автоматически, скопируйте её вручную: {subscription_link}",
"SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Нажмите кнопку \"Подключиться\" ниже, чтобы открыть Happ и добавить подписку автоматически.",
"SUBSCRIPTION_DEVICE_LINK_TITLE": "🔗 Ссылка подписки:",
"SUBSCRIPTION_DEVICE_FEATURED_APP": "📋 Рекомендуемое приложение: {app_name}",