v2.5.2
🎉 Основные нововведения
🔄 Автоматическая синхронизация Remnawave
- Добавлен фоновый сервис автосинхронизации пользователей и серверов с панелью RemnaWave по расписанию
- Новые системные настройки:
REMNAWAVE_AUTO_SYNC_ENABLED— включение/отключение автосинхронизации (по умолчанию выключено)REMNAWAVE_AUTO_SYNC_TIMES— расписание запуска в форматеHH:MM(по умолчанию "03:00")
- Автоматическое управление: сервис перезапускается при изменении настроек, поддерживает ручной запуск и детальный статус выполнения
- Graceful shutdown: корректная остановка сервиса при завершении работы бота
💳 Интеграция платежной системы WATA
- Полноценная поддержка WATA для пополнения баланса через банковские карты
- Реализован полный цикл платежей: создание, проверка статуса, автоматическое зачисление средств
- REST API интеграция с асинхронным взаимодействием через aiohttp
- Валидация лимитов на всех этапах (бот, miniapp, webapi)
- Уведомления пользователю и администратору при успешном пополнении
🛒 Сквозная корзина (Persistent Cart) @Gy9vin
- Сохранение параметров подписки при недостатке баланса — пользователь может вернуться к оформлению после пополнения
- Хранение в Redis с TTL 1 час
- Умные уведомления после пополнения с кнопкой "Вернуться к оформлению"
- Автоматическое удаление корзины после покупки или вручную
🎯 Гибкое управление реферальной программой @Gy9vin
- Новая настройка
REFERRAL_PROGRAM_ENABLEDдля включения/отключения партнерской программы - Автоматическое скрытие всех связанных элементов UI при отключении (кнопки "Партнерка", "Рефералы")
- Админ-функции остаются доступны независимо от настройки
🔧 Модульная архитектура платежных методов @Gy9vin
Полный рефакторинг системы пополнения баланса — каждый метод оплаты в отдельном модуле:
app/handlers/balance/cryptobot.py— CryptoBot с актуальным курсом USD/RUBapp/handlers/balance/mulenpay.py— Mulen Payapp/handlers/balance/pal24.py— PayPalych (СБП и карта)app/handlers/balance/stars.py— Telegram Starsapp/handlers/balance/tribute.py— Tribute (банковские карты)app/handlers/balance/yookassa.py— YooKassa (карта, СБП)app/handlers/balance/wata.py— WATA (новый метод)
⚙️ Гибкая настройка PayPalych @Gy9vin
- Раздельное управление кнопками:
PAL24_SBP_BUTTON_VISIBLE— отображение СБПPAL24_CARD_BUTTON_VISIBLE— отображение банковской карты
🔨 Технические улучшения
База данных
- Новая таблица
wata_paymentsс полной информацией о платежах - CRUD-операции для WATA-платежей (создание, поиск, обновление статуса)
- Связи с пользователями и транзакциями
Сервисы
app/services/remnawave_sync_service.py— новый сервис автосинхронизацииapp/services/wata_service.py— REST API клиент для WATAapp/services/payment/wata.py— Mixin для WATA в платежном сервисеapp/services/user_cart_service.py— управление корзиной пользователя (Redis)
Конфигурация
- Расширены описания системных настроек с примерами и зависимостями
- Автоматическое применение изменений настроек с перезапуском сервисов
- Новые параметры в
.env.example
Состояния FSM
- Добавлен класс
RemnaWaveSyncStatesдля автосинхронизации - Улучшена обработка состояний в сценариях оплаты
WebAPI
- WATA добавлена во все эндпоинты miniapp
- Поддержка WATA в схемах запросов/ответов
- Обновлены методы получения способов оплаты
🌍 Локализация и UI/UX
Локализация
- Полная поддержка RU/EN для WATA и всех новых функций
- Обновлены тексты для корзины, платежей, рефералов
- Улучшены формулировки: акцент на "сервис" вместо "VPN"
Интерфейс
- Miniapp: добавлены методы оплаты через WATA в переводах
- Кнопки корзины в главном меню при наличии сохраненных параметров
- Умные уведомления после пополнения баланса
- Подробные инструкции для каждого способа оплаты
- Быстрый выбор суммы пополнения (опционально)
Админка
- Расширена категория настроек WATA
- Добавлены тестовые кнопки
- Улучшена навигация и описания параметров
📚 Документация
docs/persistent_cart_system.md— новый файл с описанием корзиныdocs/referral_program_setting.md— новый файл по управлению партнеркой
✅ Тесты
tests/test_user_cart_service.py— юнит-тесты сервиса корзиныtests/test_subscription_cart_integration.py— интеграционные тесты
⚠️ Важная информация
Требования
- Redis — для работы Persistent Cart (
REDIS_URLв.env) - Токен WATA — для работы платежной системы (
WATA_TOKEN,WATA_TERMINAL_ID)
Настройки по умолчанию
REMNAWAVE_AUTO_SYNC_ENABLED=false— автосинхронизация выключенаREFERRAL_PROGRAM_ENABLED=true— реферальная программа включенаWATA— требует явной настройки токена и терминала
Рекомендации
- Настроить переменные окружения для новых функций
- Перезапустить все инстансы бота и связанных сервисов
- Проверить доступность Redis для корзины
- Настроить расписание автосинхронизации RemnaWave при необходимости
Ограничения
- WATA требует корректной настройки минимальной/максимальной суммы
- Частые синхронизации могут увеличить нагрузку на панель Remnawave
- Старые параметры оформления не мигрируют в корзину автоматически
- Корзина работает только для новых оформлений после обновления
🐛 Исправления
- Улучшена обработка ошибок lazy loading SQLAlchemy (greenlet)
- Расширено логгирование с stack trace для отладки
- Исправлены формулировки в локализации
- Улучшена обработка статусов платежей для всех методов
🔜 Breaking Changes
- Удалён
app/handlers/balance.py— миграция на модульную структуру автоматическая - Старая архитектура обработчиков баланса больше не поддерживается
Полная версия документации доступна в папке docs/
What's Changed
- Партнерка активация по env + убрано упоминание о vpn в русской локализации by @Gy9vin in #1306
- да все до кучи by @Gy9vin in #1318
- Фиксы ошибок запуска by @Gy9vin in #1320
- Wata by @Fr1ngg in #1342
- Автосинк с ремной при старте + по таймеру by @Fr1ngg in #1350
Full Changelog: v2.5.1...v2.5.2