🚀 Обновление v2.4.2 — Telegram Mini App & Расширенный функционал
✨ Основные нововведения
📱 Telegram Mini App для подписки
Добавлено полноценное мини-приложение для просмотра информации о подписке в Telegram.
Что включено:
- 🎨 Кастомизируемый брендинг через переменные окружения
- 🔐 Валидация Telegram WebApp init data с проверкой подписи
- 📊 API endpoint
/miniapp/subscriptionдля получения данных о подписке - 🌐 Поддержка русского и английского языков
- 📖 Документация по развертыванию в
docs/miniapp-setup.md
Новые переменные окружения:
MINIAPP_SERVICE_NAME_EN=Your Service Name
MINIAPP_SERVICE_NAME_RU=Название вашего сервиса
MINIAPP_SERVICE_DESCRIPTION_EN=Service description
MINIAPP_SERVICE_DESCRIPTION_RU=Описание сервиса
MINIAPP_PURCHASE_URL=https://t.me/your_botТехнические детали:
- Новый роутер
app/webapi/routes/miniapp.py - Схемы API в
app/webapi/schemas/miniapp.py - Утилиты валидации в
app/utils/telegram_webapp.py - Метод
get_miniapp_branding()вapp/config.py
💳 Улучшенная интеграция PayPalych
Переработана система оплаты через PayPalych.
Изменения:
- ✅ Раздельные кнопки для оплаты через СБП и банковскую карту
- 🎯 Настройка текста кнопок через конфигурацию
- 📝 Динамическая генерация инструкций по оплате
- 🔗 Отдельные ссылки для СБП и карты в статусе платежа
- ⚡ Рефакторинг функций обработки платежей
📖 Логи бота
Изменения:
- ✅ Новый раздел в админменю с выводом и скачкой логов
🔔 Новый тип уведомления
Добавлено уведомление trial_channel_unsubscribed для пользователей на триале.
Функционал:
- 🚨 Автоматическая отправка при отписке от обязательного канала
- 📋 Содержит инструкции по восстановлению доступа
- ⚙️ Управление из админ-панели (включение/отключение)
- 🧪 Возможность тестовой отправки
- 🔄 Автоматическое удаление при повторной подписке на канал
Реализация:
- Обработка в
app/database/crud/notification.py - Интеграция с системой мониторинга подписок
- Поддержка обоих языков в уведомлении
🎛️ Улучшения админ-панели
Новые типы сортировки пользователей by @Gy9vin
Добавлено 6 новых критериев сортировки:
- 📊 По трафику — общее потребление данных
- 💰 По сумме трат — общая сумма всех транзакций
- 🛒 По количеству покупок — число успешных платежей
- ⏰ По последней активности — последнее подключение
- 💵 По балансу — текущий баланс пользователя
- 🎯 По кампаниям — источник регистрации
Технические детали:
- Отдельные FSM-состояния для каждого типа сортировки
- Новые функции в
app/database/crud/user.py - Обновленные клавиатуры в
app/keyboards/admin.py
Управление системой by @PEDZEO
- Настройка модераторов и их прав доступа
- Управление SLA и временем ответа поддержки
- Кастомизация меню поддержки
- Управление уведомлениями
🌍 Массовая локализация
Добавлено 250+ новых ключей в locales/ru.json и locales/en.json.
Охват:
- 📋 Все меню и интерфейсы админ-панели
- 🔔 Тексты уведомлений и статусов
- 📱 Инструкции для всех платформ
- ⚠️ Сообщения об ошибках
- 💳 Процессы оплаты
- 🎫 Система поддержки
Динамическое формирование:
- Все тексты берутся из файлов локализации
- Поддержка переключения языка на лету
- Правильное форматирование дат и чисел
- Корректные склонения и множественное число
🖥️ app-config.json актуализация под шаблон Remnawave by @SantaSpeen
Расширен app-config.json с инструкциями для:
- 🍎 macOS — установка и настройка
- 🪟 Windows — все версии
- 📺 Android TV — ТВ-приставки
- 🐧 Linux — основные дистрибутивы
- 🍏 Apple TV — tvOS
🔧 Технические улучшения
Backend
- Новый роутер
/miniappв FastAPI - Оптимизация запросов к базе данных
- Сервисные функции для статистики пользователей
- Улучшенная обработка ошибок
Рефакторинг
- Вынос логики PayPalych в отдельные структуры
- Оптимизация генерации кнопок оплаты
- Улучшенное форматирование времени
- Расширенная кастомизация кнопок рассылок
Интеграция Remnawave
- Актуализация
app-config.jsonпод шаблон Remnawave - Оптимизация отображения ссылок подписки
📦 Измененные файлы
Backend & API:
app/config.pyapp/webapi/routes/miniapp.py(новый)app/webapi/schemas/miniapp.py(новый)app/utils/telegram_webapp.py(новый)app/database/crud/notification.pyapp/database/crud/user.pyapp/external/webhook_server.pyapp/services/*app/states.py
Handlers:
app/handlers/admin/*app/handlers/balance.pyapp/handlers/menu.pyapp/handlers/start.pyapp/handlers/subscription.py
UI & Localization:
app/keyboards/admin.pylocales/ru.json(+250 ключей)locales/en.json(+250 ключей)app/utils/formatters.py
Configuration:
app-config.json.env.exampleREADME.mddocs/miniapp-setup.md(новый)miniapp/index.html(новый)miniapp/app-config.json(новый)
🚀 Установка и развертывание
1. Обновите переменные окружения
Добавьте в .env:
MINIAPP_SERVICE_NAME_EN=Your VPN Service
MINIAPP_SERVICE_NAME_RU=Ваш VPN Сервис
MINIAPP_SERVICE_DESCRIPTION_EN=Secure and fast VPN
MINIAPP_SERVICE_DESCRIPTION_RU=Безопасный и быстрый VPN
MINIAPP_PURCHASE_URL=https://t.me/your_bot2. Настройте прокси-сервер
Инструкции и примеры для nginx/Caddy в [docs/miniapp-setup.md](https://claude.ai/chat/docs/miniapp-setup.md)
3. Перезапустите сервис
docker-compose restartМиграции не требуются. Обратная совместимость сохранена.
✅ Тестирование
PayPalych:
- Две кнопки (СБП и Карта) отображаются
- Корректные ссылки для каждого способа
- Инструкции на обоих языках
Уведомления:
- Отписка триального пользователя → уведомление приходит
- Повторная подписка → уведомление удаляется
- Тестовая отправка из админки
Админ-панель:
- Все типы сортировки работают
- Переключение языка
- Расширенная статистика пользователей
Mini App:
- Открывается из Telegram
- Корректная авторизация
- Информация о подписке отображается
- Брендинг соответствует настройкам
- Работа на обоих языках
📖 Документация
- Гайд по Mini App:
docs/miniapp-setup.md - API документация:
/docsэндпоинт - Переменные окружения:
.env.example
Дата релиза: 1 октября 2025
Версия: v2.4.2
What's Changed
- Логи в боте by @Fr1ngg in #593
- Расширенный фильтр пользователей by @Gy9vin in #594
- Support PayPalych card payments with configurable button labels by @Fr1ngg in #604
- Improve MulenPay webhook signature handling by @Fr1ngg in #606
- W by @Fr1ngg in #616
- Миниапка с подпиской by @Fr1ngg in #648
New Contributors
- @SantaSpeen made their first contribution in #599
Full Changelog: v2.4.1...v2.4.2