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

latest releases: v3.8.0, v3.7.2, v3.7.1...
4 months ago

🔄 Обновление интеграции с Remnawave API

🔐 Расширенная поддержка авторизации

  • Добавлена поддержка X-Api-Key заголовка для стандартной авторизации
  • Поддержка Basic Authentication через X-Api-Key заголовок
  • Автоматическое определение типа авторизации на основе конфигурации
  • Полная обратная совместимость с существующими Bearer token авторизациями

⚙️ Новые параметры конфигурации

# Новые переменные окружения
REMNAWAVE_USERNAME=         # Имя пользователя для Basic Auth
REMNAWAVE_PASSWORD=         # Пароль для Basic Auth  
REMNAWAVE_AUTH_TYPE=api_key # Тип авторизации: api_key или basic_auth

🛠️ Улучшения API клиента

  • Новый метод _prepare_auth_headers() для гибкого формирования заголовков
  • Поддержка множественных типов авторизации в одном запросе
  • Улучшенное логирование типа используемой авторизации
  • Централизованное управление авторизацией через get_remnawave_auth_params()

📚 Поддерживаемые методы авторизации

Метод Заголовок Описание
API Key X-Api-Key: your_api_key Стандартный API ключ
Bearer Token Authorization: Bearer token Классический Bearer token
Basic Auth X-Api-Key: Basic base64(user:pass) Basic Authentication
eGames Cookies Cookies в формате key:value Для панелей eGames

🛠️ Критические исправления стабильности

🚨 Исправлена критическая ошибка с устаревшими callback queries

  • Проблема: При перезапуске бота пользователи могли нажимать на inline кнопки, что приводило к ошибке TelegramBadRequest: query is too old и падению бота
  • Решение: Реализована двухуровневая система защиты:
    • GlobalErrorMiddleware для глобальной обработки ошибок Telegram API
    • Улучшенный декоратор @error_handler для дополнительной защиты

🛡️ Многоуровневая система защиты от ошибок

  • Middleware-уровень: перехватывает ошибки до обработки хендлерами
  • Декоратор-уровень: дополнительная защита в критических местах
  • Автоматическое игнорирование устаревших запросов с подробным логированием

🔧 Обработка дополнительных типов ошибок Telegram API

  • "message is not modified" - попытка изменить неизмененное сообщение
  • "bot was blocked by the user" - корректное логирование блокировки
  • "user is deactivated" - обработка деактивированных аккаунтов
  • "chat not found" / "message not found" - защита от удаленных чатов

🌐 Исправления Webhook сервера

🔧 Исправлено

  • Проблема запуска: Исправлена проблема с запуском webhook сервера при отключенном Tribute но включенном CryptoBot
  • Healthcheck: Теперь /health на порту 8081 работает корректно независимо от состояния Tribute
  • Логика запуска: Webhook сервер запускается если включен любой из платежных методов (Tribute ИЛИ CryptoBot)

📈 Улучшено

  • Логирование: Добавлено более детальное логирование активных webhook endpoints
  • Мониторинг: Улучшено отображение статуса запущенных сервисов в логах
  • Производительность: Устранены избыточные исключения, улучшающие общую производительность

📋 Технические изменения

🆕 Новые файлы

  • app/middlewares/global_error.py - глобальный middleware для обработки ошибок
  • Обновлена логика авторизации в remnawave_api.py

🔄 Обновленные файлы

  • app/bot.py - добавлен GlobalErrorMiddleware первым в цепочке middleware
  • app/utils/decorators.py - улучшена обработка ошибок в декораторе @error_handler
  • main.py - изменена логика запуска webhook: webhook_needed = settings.TRIBUTE_ENABLED or settings.is_cryptobot_enabled()

🔍 Улучшения логирования и мониторинга

  • Улучшено логирование устаревших callback queries с информацией о пользователе
  • Добавлены debug-сообщения для отслеживания работы системы обработки ошибок
  • Разделение уровней логирования: warning для нормальных ситуаций, error для проблем
  • Более информативные сообщения об ошибках авторизации в Remnawave API

🚀 Совместимость и миграция

✅ Полная обратная совместимость

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

📝 Инструкции по обновлению

Для существующих установок

Никаких изменений не требуется - все существующие конфигурации продолжат работать.

Для новых панелей с X-Api-Key авторизацией

# Обычный API ключ
REMNAWAVE_AUTH_TYPE=api_key
REMNAWAVE_API_KEY=your_api_key_here

Basic Authentication

REMNAWAVE_AUTH_TYPE=basic_auth
REMNAWAVE_USERNAME=your_username
REMNAWAVE_PASSWORD=your_password

Для панелей eGames

Существующая конфигурация продолжает работать:

REMNAWAVE_SECRET_KEY=XXXXXXX:DDDDDDDD

Результат обновления: Значительно повышена стабильность работы бота, расширены возможности интеграции с различными типами панелей Remnawave, улучшена система мониторинга и диагностики.

What's Changed

  • X-Api-key заголовки + TinyAuth by @Fr1ngg in #65
  • Исправлена ошибок с устаревшими callback queries при перезапуске бота by @Fr1ngg in #66

Full Changelog: v2.3.0...v2.3.1

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

NewReleases is sending notifications on new releases.