From 4e4ceb8b03857e8fba41c35059fa7dee61aa365f Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Fri, 26 Dec 2025 16:48:20 +0300 Subject: [PATCH] fix traffic in key view --- handlers/keys/key_view.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/handlers/keys/key_view.py b/handlers/keys/key_view.py index 4e434a95..b9b8bd99 100644 --- a/handlers/keys/key_view.py +++ b/handlers/keys/key_view.py @@ -302,9 +302,15 @@ async def build_key_view_payload(session: AsyncSession, key_name: str): if is_full_remnawave and client_id: try: servers = await get_servers(session) - remna_server = next( - (srv for cl in servers.values() for srv in cl if srv.get("panel_type") == "remnawave"), None - ) + remna_server = None + for cluster_name, cluster_servers in servers.items(): + for srv in cluster_servers: + if (srv.get("server_name") == server_name or cluster_name == server_name) and srv.get("panel_type") == "remnawave": + remna_server = srv + break + if remna_server: + break + if remna_server: api = RemnawaveAPI(remna_server["api_url"]) if await api.login(REMNAWAVE_LOGIN, REMNAWAVE_PASSWORD): @@ -312,7 +318,8 @@ async def build_key_view_payload(session: AsyncSession, key_name: str): hwid_count = len(devices or []) user_data = await api.get_user_by_uuid(client_id) if user_data: - used_bytes = user_data.get("usedTrafficBytes", 0) + user_traffic = user_data.get("userTraffic", {}) + used_bytes = user_traffic.get("usedTrafficBytes", 0) remna_used_gb = round(used_bytes / GB, 1) traffic_limit_bytes_actual = user_data.get("trafficLimitBytes") if traffic_limit_bytes_actual is not None: