github BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot v2.1.4

latest releases: v3.3.0, v3.2.0, v3.1.3...
5 months ago

Full Changelog: v2.1.3...v2.1.4

⚙️ Улучшения системы управления серверами

🌟 Добавлено

  • Автоматический пропуск выбора серверов при покупке подписки, если доступен только один сервер
  • Условное отображение управления серверами в настройках подписки в зависимости от количества доступных серверов
  • Функция _should_show_countries_management() для проверки необходимости отображения управления серверами

🔄 Изменено

  • Логика покупки подписки: при выборе периода и трафика система автоматически проверяет количество доступных серверов
  • Настройки подписки: кнопка "Добавить страны" отображается только при наличии более одного доступного сервера
  • Обработка добавления серверов: добавлена проверка доступности функции с информативным сообщением

🧑‍🦽‍➡️ Поведение системы

  • При одном доступном сервере:

    • Автоматический выбор сервера при покупке подписки
    • Скрытие кнопки управления серверами в настройках
    • Блокировка функции добавления серверов с уведомлением пользователя
  • При нескольких доступных серверах:

    • Стандартный процесс выбора серверов при покупке
    • Полный доступ к управлению серверами в настройках
    • Возможность добавления и отключения серверов как раньше

Файлы изменены

  • app/handlers/subscription.py - основная логика
  • app/keyboards/inline.py - клавиатуры интерфейса

🔧 Добавлена система уведомлений администраторов о техническом состоянии

✨ Новые возможности

📨 Система уведомлений администраторов

  • Добавлены автоматические уведомления в Telegram для администраторов о критических событиях
  • Интеграция maintenance_service с ботом для отправки сообщений
  • Предотвращение спама уведомлений (кеширование на 5 минут)
  • Красиво оформленные сообщения с эмодзи и подробной информацией

🚨 Мониторинг состояния API

  • Уведомления при первой ошибке подключения к RemnaWave API
  • Предупреждения о недоступности сервисов
  • Уведомления о восстановлении работы API
  • Информация о длительности простоя

⚙️ Управление техническими работами

  • Уведомления о включении/выключении режима техработ
  • Информация об автоматическом и ручном включении режима
  • Отчеты о причинах включения техработ
  • Статистика по неудачным проверкам

🔄 Жизненный цикл сервисов

  • Уведомления о запуске/остановке мониторинга
  • Информация о конфигурации системы
  • Статус подключения бота к системе уведомлений

🛠️ Технические улучшения

MaintenanceService

  • Добавлен метод set_bot() для подключения к Telegram боту
  • Новый метод _notify_admins() с поддержкой разных типов уведомлений
  • Улучшенное логирование событий
  • Кеширование статуса для предотвращения потери данных

Интеграция с основным процессом

  • Исправлено подключение бота к maintenance_service в main.py
  • Обновлен bot.py для корректной инициализации сервиса
  • Улучшена последовательность запуска сервисов

Типы уведомлений

  • 🚨 error - критические ошибки и недоступность API
  • ⚠️ warning - предупреждения и автоматические действия
  • ✅ success - восстановление работы и успешные операции
  • ℹ️ info - информационные сообщения о состоянии системы

📋 Что получают администраторы

При недоступности API:

🚨 Maintenance Service

API RemnaWave недоступно!

❌ Статус: Недоступно
🕐 Время обнаружения: 14:32:15
🔄 Попытка: 1

Началась серия неудачных проверок API.

При восстановлении:

✅ Maintenance Service

API RemnaWave восстановлено!

✅ Статус: Доступно
🕐 Время восстановления: 14:35:22
🔄 Неудачных попыток было: 3

API снова отвечает на запросы.

При автоматическом включении техработ:

⚠️ Maintenance Service

Режим технических работ ВКЛЮЧЕН

📋 Причина: Автоматическое включение после 3 неудачных проверок API
🤖 Автоматически: Да
🕐 Время: 02.09.2025 14:32:45

Обычные пользователи временно не смогут использовать бота.

🔧 Настраиваемые описания платежей для избежания блокировок

Что было исправлено:

  • Убран хардкод "пополнение баланса VPN" из всех платежных систем
  • Добавлены настраиваемые переменные окружения для описаний платежей
  • Реализована система шаблонов для генерации безопасных описаний

Новые переменные в .env:

PAYMENT_SERVICE_NAME=Интернет-сервис
PAYMENT_BALANCE_DESCRIPTION=Пополнение баланса  
PAYMENT_SUBSCRIPTION_DESCRIPTION=Оплата подписки
PAYMENT_BALANCE_TEMPLATE={service_name} - {description}
PAYMENT_SUBSCRIPTION_TEMPLATE={service_name} - {description}

Изменения в коде:

app/config.py:

  • Добавлены новые настройки для описаний платежей
  • Добавлены методы get_balance_payment_description(), get_subscription_payment_description(), get_custom_payment_description()

app/handlers/balance.py:

  • Заменен хардкод в process_yookassa_payment_amount()
  • Заменен хардкод в process_stars_payment_amount()
  • Заменен хардкод в start_tribute_payment()

Результат:

Теперь вместо "Пополнение баланса VPN на 150.00 ₽" в YooKassa будет отправляться "Интернет-сервис - Пополнение баланса на 150.00 ₽" или любое другое безопасное описание, настроенное в .env файле.

Это решает проблему блокировок платежных систем за упоминание VPN в описании транзакций.

✍️ Улучшение админского UX

  • Частично убраны лишние кнопки

✍️ Улучшены Readme + docker-compose.yml + dockerfile

  • Описаны все параметры env
  • Обновлен env.example
    Теперь достаточно сделать
    git clone https://github.com/Fr1ngg/remnawave-bedolaga-telegram-bot.git
    настроить .env + вебхуки и бот полностью готов к запуску

Don't miss a new remnawave-bedolaga-telegram-bot release

NewReleases is sending notifications on new releases.