Релиз: Maintenance Mode System v2.1.1
- 🔄 Авто-режим обслуживания при недоступности RemnaWave API и его отключение в момент поднятия панели ремны
- 📡 Мониторинг API каждые 30 секунд
- 🛠 Админ-панель для ручного управления и просмотра статуса
- 🚫 Защита пользователей — обычные пользователи блокируются, админы сохраняют доступ
Технически
- Новый сервис и middleware для режима обслуживания
- Сохранение состояния при перезапуске бота
- Улучшенное завершение работы
- Добавлен
APScheduler==3.10.4
Исправления для админки бота
Проблемы:
- Зачисление баланса через админку не работало - ошибка в количестве параметров функции
- Выдача подписок пользователям падала - отсутствовали константы в конфиге
Исправления:
1. В app/config.py - добавлены недостающие константы:
DEFAULT_TRAFFIC_LIMIT_GB: int = 100
DEFAULT_DEVICE_LIMIT: int = 32. В app/database/crud/user.py - исправлена функция add_user_balance:
- Убран лишний параметр
user_idиз сигнатуры функции - Исправлена логика работы с балансом и транзакциями
- Функция теперь возвращает
boolвместоUser
3. В app/services/user_service.py - исправлена логика метода update_user_balance:
- Добавлен правильный
return Trueдля положительных пополнений - Исправлены вызовы функций баланса
Результат:
- Админы могут зачислять и списывать средства пользователям
- Работает выдача платных и триальных подписок
- Исправлено создание транзакций при изменении баланса
Fix: Исправлена проблема с незачислением средств через Tribute
Проблема:
- В последнем обновлении сломалась функция определения суммы платежа из-за чего платежи по трибьюту зачислялись x100(Ля казино. но быстро поправили, сорян, вайбовый-опенсурс он такой, плюс я уже заебался чуть писать хахаах)
- Tribute мог отправлять разные платежи с одинаковым donation_request_id
Исправления:
tribute_service.py
- Сумма платежа корректно определяется и зачисляется на счет
- Добавлена проверка дубликатов по комбинации: payment_id + сумма + пользователь
- Улучшено логирование процесса обработки платежей
- Исправлена логика создания уникальных external_id для избежания конфликтов
- Добавлена функция принудительной обработки платежей для отладки
transaction.py
- Добавлены новые функции для гибкого поиска Tribute транзакций
check_tribute_payment_duplicate()- проверка точных дубликатовcreate_unique_tribute_transaction()- создание транзакций с защитой от конфликтовfind_tribute_transactions_by_payment_id()- поиск всех транзакций по payment_id
user.py
- Добавлен метод
add_user_balance_by_id()для пополнения баланса по telegram_id
Результат:
Теперь система корректно обрабатывает все Tribute платежи, избегая ложных дубликатов и обеспечивая зачисление средств на баланс пользователей.