Обновление v2.0.9: Поддержка RemnaWave API v2.1.5 + Улучшения системы уведомлений + Правки и истории операций
🚀 Новые функции
Поддержка RemnaWave API v2.1.5
- Обновленная интеграция API - Полная совместимость с RemnaWave панелью v2.1.5+
- Новые поля данных пользователя - Добавлена поддержка
lifetime_used_traffic_bytes, паролей протоколов и метаданных подключений - Автоматическая миграция базы данных - Авто-миграция создает новые колонки для полей RemnaWave v2.1.5 без ручного вмешательства
- Улучшенный парсинг пользователей - Улучшенная обработка данных для новой структуры ответа API
Технические улучшения
- Обновлен
RemnaWaveUserdataclass с новыми полями из API v2.1.5 - Улучшен метод
_parse_userдля обработки необязательных полей datetime - Схема базы данных теперь включает колонки, специфичные для RemnaWave v2.1.5
- Обратная совместимость с существующими базами данных
🛠️ Исправления ошибок
Исправлены проблемы уведомлений о подписке
- Исправлены грамматические склонения - Уведомления об истечении подписки теперь отображают корректную русскую грамматику ("1 день", "2 дня", "5 дней" вместо "1 дней")
- Устранены дублирующие уведомления - Решена проблема, когда пользователи получали несколько одинаковых предупреждений об истечении
- Улучшено форматирование текста уведомлений - Более чистые и читаемые сообщения с правильными индикаторами статуса
Исправлены дублирующие записи в истории транзакций
- Устранены дубликаты в истории операций - Решена проблема, когда операции покупки подписок и добавления устройств отображались несколько раз
- Улучшена логика отображения транзакций - Добавлена дедупликация записей при показе истории операций
- Сохранена производительность - Фильтрация дубликатов работает без замедления интерфейса
Внесенные изменения
- Добавлена функция
format_days_declension()вapp/utils/formatters.pyдля правильных русских числительных - Обновлены шаблоны уведомлений в
app/localization/texts.pyдля использования динамического форматирования дней - Улучшена логика уведомлений в
app/services/monitoring_service.pyдля предотвращения ошибок форматирования текста - Модифицирована функция
show_balance_history()вapp/handlers/balance.pyдля дедупликации транзакций
📋 Детальный список изменений
Добавлено
- Система склонения русских числительных для текстов уведомлений
- Слой совместимости с RemnaWave API v2.1.5
- Авто-миграция для новых полей базы данных
- Улучшенный парсинг данных пользователей для API v2.1.5
- Дедупликация транзакций в истории операций
Исправлено
- Грамматические ошибки в уведомлениях об истечении подписки
- Дублирование уведомлений
- Несоответствия в форматировании текста в сервисе мониторинга
- Дублирующие записи в истории транзакций (покупка подписок, добавление устройств)
Изменено
- Шаблоны текстов уведомлений теперь используют динамическое форматирование
- Обновлена структура
RemnaWaveUserdataclass - Расширена схема базы данных для новых полей API
- Логика отображения истории транзакций с фильтрацией дубликатов
🔄 Миграция
Обновление включает автоматическую миграцию - ручные изменения базы данных не нужны. Бот автоматически:
- Обнаружит отсутствующие колонки
- Добавит новые поля RemnaWave v2.1.5 в таблицу пользователей
- Продолжит нормальную работу
- Применит улучшения текста уведомлений
📁 Модифицированные файлы
app/utils/formatters.py- Добавлена функция склоненияapp/localization/texts.py- Обновлены шаблоны уведомленийapp/services/monitoring_service.py- Исправлено форматирование уведомленийapp/external/remnawave_api.py- Обновления клиента APIapp/database/models.py- Новые поля базы данныхapp/handlers/balance.py- Дедупликация в истории транзакций
⚠️ Критические изменения
Отсутствуют - полная обратная совместимость.
📝 Примечания
- Поддерживает RemnaWave панель v2.1.5+ сохраняя совместимость со старыми версиями
- Улучшения уведомлений применяются ко всем существующим пользователям немедленно
- Авто-миграция работает с базами данных SQLite, PostgreSQL и MySQL
- Изменения конфигурации не требуются
- Дедупликация транзакций работает без влияния на производительность