feat: add TV Quick Connect to connection page for Android TV / Apple TV

When user selects Android TV or Apple TV platform (from non-TV device),
shows 5-char code input + QR scanner to send subscription to TV via
Happ TV API. Hybrid QR strategy: native Telegram scanner on mobile,
html5-qrcode CDN fallback on desktop. i18n keys for ru/en/zh/fa.

Based on PR #415 by @smediainfo.
This commit is contained in:
Fringg
2026-05-04 06:22:29 +03:00
parent d21c6637bf
commit 65f94931c5
6 changed files with 444 additions and 3 deletions

View File

@@ -593,6 +593,20 @@
"label": "Traffic",
"selectVolume": "Select traffic volume",
"default": "Default: {{label}}"
},
"tvQuickConnect": {
"title": "Connect TV",
"description": "Enter the 5-character code from your TV screen",
"sendBtn": "Send to TV",
"badCode": "Enter a 5-character code (letters and digits)",
"sent": "Sent to TV!",
"error": "Failed to send to TV",
"scanTitle": "Scan QR Code",
"scanDescription": "Scan the QR code from your TV screen",
"scanBtn": "Scan QR from TV",
"stopScan": "Close camera",
"noCamera": "Camera access denied",
"codeFound": "Code found"
}
},
"balance": {

View File

@@ -472,6 +472,20 @@
"resumeBtn": "ادامه",
"title": "توقف اشتراک",
"willBeCharged": "کسر خواهد شد"
},
"tvQuickConnect": {
"title": "اتصال تلویزیون",
"description": "کد ۵ رقمی نمایش داده شده روی صفحه تلویزیون را وارد کنید",
"sendBtn": "ارسال به تلویزیون",
"badCode": "کد ۵ رقمی وارد کنید (حروف و اعداد)",
"sent": "به تلویزیون ارسال شد!",
"error": "خطا در ارسال به تلویزیون",
"scanTitle": "اسکن کد QR",
"scanDescription": "کد QR روی صفحه تلویزیون را اسکن کنید",
"scanBtn": "اسکن QR از تلویزیون",
"stopScan": "بستن دوربین",
"noCamera": "دسترسی به دوربین امکان‌پذیر نیست",
"codeFound": "کد پیدا شد"
}
},
"balance": {

View File

@@ -621,6 +621,20 @@
"label": "Трафик",
"selectVolume": "Выбрать объём трафика",
"default": "По умолчанию: {{label}}"
},
"tvQuickConnect": {
"title": "Подключить TV",
"description": "Введите 5-значный код с экрана телевизора",
"sendBtn": "Отправить на TV",
"badCode": "Введите 5-значный код (буквы и цифры)",
"sent": "Отправлено на TV!",
"error": "Ошибка отправки на TV",
"scanTitle": "Сканировать QR-код",
"scanDescription": "Отсканируйте QR-код с экрана телевизора",
"scanBtn": "Сканировать QR с TV",
"stopScan": "Закрыть камеру",
"noCamera": "Нет доступа к камере",
"codeFound": "Код найден"
}
},
"balance": {

View File

@@ -472,6 +472,20 @@
"resumeBtn": "恢复",
"title": "暂停订阅",
"willBeCharged": "将扣费"
},
"tvQuickConnect": {
"title": "连接电视",
"description": "输入电视屏幕上显示的5位代码",
"sendBtn": "发送到电视",
"badCode": "请输入5位代码字母和数字",
"sent": "已发送到电视!",
"error": "发送到电视失败",
"scanTitle": "扫描二维码",
"scanDescription": "扫描电视屏幕上的二维码",
"scanBtn": "扫描电视二维码",
"stopScan": "关闭摄像头",
"noCamera": "无法访问摄像头",
"codeFound": "找到代码"
}
},
"balance": {