Merge pull request #584 from Fr1ngg/revert-583-bedolaga-bsbzht

Revert "Update Happ CryptoLink message formatting"
This commit is contained in:
Egor
2025-09-30 03:07:37 +03:00
committed by GitHub
6 changed files with 15 additions and 83 deletions
+10 -33
View File
@@ -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",
"🔗 <b>Подключение через Happ</b>",
),
texts.t(
"SUBSCRIPTION_HAPP_OPEN_LINK",
"🔓 Ссылка для Happ:\n<code>{happ_link}</code>",
).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",
"<blockquote expandable>🪙 CryptoLink:\n<code>{crypto_link}</code>\n</blockquote>",
).format(crypto_link=crypto_link_to_hide)
)
message_parts.append(
texts.t(
+ "\n\n"
+ 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",
"💡 Скопируйте ссылку и вставьте её в приложение Happ: <code>{happ_link}</code>",
).format(happ_link=happ_scheme_link)
"💡 Если ссылка не открывается автоматически, скопируйте её вручную: <code>{subscription_link}</code>",
).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",
-5
View File
@@ -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": "🔗 <b>Connect via Happ</b>",
"SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Link for Happ:\n<code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "<blockquote expandable>🪙 CryptoLink:\n<code>{crypto_link}</code>\n</blockquote>",
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Copy the link and paste it into the Happ app: <code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Tap the \"Connect\" button below to open Happ and add the subscription automatically.",
"REFERRAL_PROGRAM_TITLE": "👥 <b>Referral program</b>",
"REFERRAL_STATS_HEADER": "📊 <b>Your statistics:</b>",
"REFERRAL_STATS_INVITED": "• Invited users: <b>{count}</b>",
-5
View File
@@ -360,11 +360,6 @@
"SUBSCRIPTION_LINK_STEP3": "3. Найдите функцию \"Добавить подписку\" или \"Import\"",
"SUBSCRIPTION_LINK_STEP4": "4. Вставьте скопированную ссылку",
"SUBSCRIPTION_LINK_HINT": "💡 Если ссылка не скопировалась, выделите её вручную и скопируйте.",
"SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 <b>Подключение через Happ</b>",
"SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Ссылка для Happ:\n<code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "<blockquote expandable>🪙 CryptoLink:\n<code>{crypto_link}</code>\n</blockquote>",
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Скопируйте ссылку и вставьте её в приложение Happ: <code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Нажмите кнопку \"Подключиться\" ниже, чтобы открыть Happ и добавить подписку автоматически.",
"REFERRAL_PROGRAM_TITLE": "👥 <b>Реферальная программа</b>",
"REFERRAL_STATS_HEADER": "📊 <b>Ваша статистика:</b>",
"REFERRAL_STATS_INVITED": "• Приглашено пользователей: <b>{count}</b>",
+1 -34
View File
@@ -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}"
+2 -3
View File
@@ -420,9 +420,8 @@
"SUBSCRIPTION_DEVICE_APPS_NOT_FOUND": "❌ No apps found for this device",
"SUBSCRIPTION_DEVICE_GUIDE_TITLE": "📱 <b>Setup for {device_name}</b>",
"SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 <b>Connect via Happ</b>",
"SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Link for Happ:\n<code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "<blockquote expandable>🪙 CryptoLink:\n<code>{crypto_link}</code>\n</blockquote>",
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Copy the link and paste it into the Happ app: <code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_LINK": "<a href=\"{subscription_link}\">🔓 Open link in Happ</a>",
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 If the link doesn't open automatically, copy it manually: <code>{subscription_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Tap the \"Connect\" button below to open Happ and add the subscription automatically.",
"SUBSCRIPTION_DEVICE_LINK_TITLE": "🔗 <b>Subscription link:</b>",
"SUBSCRIPTION_DEVICE_FEATURED_APP": "📋 <b>Recommended app:</b> {app_name}",
+2 -3
View File
@@ -420,9 +420,8 @@
"SUBSCRIPTION_DEVICE_APPS_NOT_FOUND": "❌ Приложения для этого устройства не найдены",
"SUBSCRIPTION_DEVICE_GUIDE_TITLE": "📱 <b>Настройка для {device_name}</b>",
"SUBSCRIPTION_HAPP_OPEN_TITLE": "🔗 <b>Подключение через Happ</b>",
"SUBSCRIPTION_HAPP_OPEN_LINK": "🔓 Ссылка для Happ:\n<code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_CRYPTO_BLOCK": "<blockquote expandable>🪙 CryptoLink:\n<code>{crypto_link}</code>\n</blockquote>",
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Скопируйте ссылку и вставьте её в приложение Happ: <code>{happ_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_LINK": "<a href=\"{subscription_link}\">🔓 Открыть ссылку в Happ</a>",
"SUBSCRIPTION_HAPP_OPEN_HINT": "💡 Если ссылка не открывается автоматически, скопируйте её вручную: <code>{subscription_link}</code>",
"SUBSCRIPTION_HAPP_OPEN_BUTTON_HINT": "▶️ Нажмите кнопку \"Подключиться\" ниже, чтобы открыть Happ и добавить подписку автоматически.",
"SUBSCRIPTION_DEVICE_LINK_TITLE": "🔗 <b>Ссылка подписки:</b>",
"SUBSCRIPTION_DEVICE_FEATURED_APP": "📋 <b>Рекомендуемое приложение:</b> {app_name}",