🔧 Версия 2.9.0
Релиз: Интеграция с новым API Remnawave, теги пользователей и улучшенный расчёт звёзд
Этот выпуск добавляет поддержку нового формата API Remnawave, систему автоматических тегов для пользователей и исправляет расчёт конверсии рублей в звёзды!
🔗 Интеграция с новым API RemnaWave
📊 Расширенная информация о нодах
Полная поддержка новых полей и метаданных от панели Remnawave!
Что добавлено:
- ✅ Новые метаданные нод — порт, версия Xray, версия ноды, CPU, RAM, провайдер
- ✅ Статусы и uptime — изменение статуса, сообщение статуса, uptime Xray
- ✅ Трекинг трафика — новая модель
UserTrafficс детальной статистикой - ✅ Модели Inbound и AccessibleNode — расширенная работа со сквадами
- ✅ Bulk-операции для сквадов — массовое добавление/удаление пользователей, переупорядочивание
Обратная совместимость:
- 🔄 Поддержка старого формата трафика (
usedTrafficBytes) и нового (userTraffic.*) - 🔄 Fallback-значения для новых полей при работе со старыми версиями панели
- 🔄 Автоматическое логирование при неожиданных значениях от API
🏷️ Теги пользователей
🎯 Автоматическая маркировка по типу подписки
Новая система тегов для категоризации пользователей в RemnaWave!
Новые настройки:
- ✅
TRIAL_USER_TAG— тег при активации триального плана - ✅
PAID_SUBSCRIPTION_USER_TAG— тег для платных подписок - ✅
USER_TAG_PATTERN— валидация тегов (A-Z, 0-9, _, до 16 символов)
Особенности:
- 🎯 Централизованная нормализация и валидация тегов
- 🎯 Логирование предупреждений при неправильном формате
- 🎯 Автоматическая простановка при создании/обновлении пользователя
⭐ Улучшенный расчёт звёзд
💫 Корректная конверсия рублей в звёзды
Исправлен алгоритм расчёта количества звёзд при оплате!
Изменения:
- ✅ Округление вверх —
math.ceilвместоROUND_FLOOR - ✅ Гарантия минимум 1 звезды при любой сумме
- ✅ Централизованная логика в
settings.rubles_to_stars
Пример изменения:
Сумма: 15.3 руб. при курсе 1 звезда = 2 руб.
До: 15.3 / 2 = 7.65 → 7 звёзд (ROUND_FLOOR)
После: 15.3 / 2 = 7.65 → 8 звёзд (math.ceil)
🖥️ Улучшения админ-панели
📈 Расширенное отображение информации
- ✅ Детали нод — CPU/RAM/провайдер, uptime, день сброса трафика
- ✅ Статистика сквадов — более подробные данные
- ✅ WebAPI —
create_squadтеперь возвращаетuuidсозданного сквада
🔧 Технические улучшения
✅ Рефакторинг
- Использование
model_copy(...).as_(bot)вместо ручного конструированияCallbackQuery - Вынесение повторяющейся логики в утилиты
- Новые dataclass-модели:
UserTraffic,RemnaWaveInbound,RemnaWaveAccessibleNode
✅ Устойчивость
- Обработка неполных данных от панели с дефолтными значениями
- Fallback-логика и логирование для новых полей
- Приведение
inbounds/сквадов к простымdictпри необходимости
📋 Миграция
Новые настройки окружения:
TRIAL_USER_TAG=TRIAL # Опционально
PAID_SUBSCRIPTION_USER_TAG=PAID # ОпциональноВажно:
- Теги: только
A-Z,0-9,_, максимум 16 символов - Невалидные значения будут проигнорированы и залогированы
- Миграции БД не требуются
- Обратная совместимость с текущим форматом API сохранена
Полный журнал изменений: v2.8.0...v2.9.0