From c76290b51ec57eab7abb7dad3c05686f4f850eb3 Mon Sep 17 00:00:00 2001 From: Egor Date: Thu, 4 Sep 2025 20:55:01 +0300 Subject: [PATCH] Update users.py --- app/handlers/admin/users.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/handlers/admin/users.py b/app/handlers/admin/users.py index cadc99d4..a83b836d 100644 --- a/app/handlers/admin/users.py +++ b/app/handlers/admin/users.py @@ -16,6 +16,7 @@ from app.localization.texts import get_texts from app.services.user_service import UserService from app.utils.decorators import admin_required, error_handler from app.utils.formatters import format_datetime, format_time_ago +from app.services.remnawave_service import RemnaWaveService logger = logging.getLogger(__name__) @@ -1330,19 +1331,24 @@ async def show_user_servers_management( for squad_uuid in current_squads: try: - from app.database.crud.server_squad import get_server_squad_by_uuid server = await get_server_squad_by_uuid(db, squad_uuid) if server: text += f"• {server.display_name}\n" else: text += f"• {squad_uuid[:8]}... (неизвестный)\n" - except: + except Exception as e: + logger.error(f"Ошибка получения сервера {squad_uuid}: {e}") text += f"• {squad_uuid[:8]}... (ошибка загрузки)\n" else: text += "Серверы: Не подключены\n" text += f"\nУстройства: {subscription.device_limit}\n" - text += f"Трафик: {subscription.traffic_used_gb:.1f}/{subscription.traffic_limit_gb} ГБ\n" + traffic_display = f"{subscription.traffic_used_gb:.1f}/" + if subscription.traffic_limit_gb == 0: + traffic_display += "∞ ГБ" + else: + traffic_display += f"{subscription.traffic_limit_gb} ГБ" + text += f"Трафик: {traffic_display}\n" else: text += "❌ Подписка отсутствует" @@ -1424,7 +1430,7 @@ async def change_user_server( ): parts = callback.data.split('_') user_id = int(parts[-2]) - server_id = int(parts[-1]) + server_id = int(parts[-1]) try: user = await get_user_by_id(db, user_id) @@ -1432,13 +1438,14 @@ async def change_user_server( await callback.answer("❌ Пользователь или подписка не найдены", show_alert=True) return - server = await get_server_squad_by_uuid(db, server_id) + from app.database.crud.server_squad import get_server_squad_by_id + server = await get_server_squad_by_id(db, server_id) if not server: await callback.answer("❌ Сервер не найден", show_alert=True) return subscription = user.subscription - subscription.connected_squads = [server.squad_uuid] + subscription.connected_squads = [server.squad_uuid] subscription.updated_at = datetime.utcnow() await db.commit()