Tune users rating

This commit is contained in:
3252a8
2026-02-09 10:29:40 +03:00
parent 3b9043332c
commit 18a6b3e18d
8 changed files with 118 additions and 1 deletions
+26
View File
@@ -18,6 +18,24 @@ from bot.middlewares.i18n import JsonI18n
router = Router(name="admin_sync_router")
def _extract_lifetime_used_traffic_bytes(panel_user_data: dict) -> Optional[int]:
user_traffic = panel_user_data.get("userTraffic") or {}
raw_value = (
user_traffic.get("lifetimeUsedTrafficBytes")
if isinstance(user_traffic, dict)
else None
)
if raw_value is None:
raw_value = panel_user_data.get("lifetimeUsedTrafficBytes")
try:
if raw_value is None:
return None
return int(raw_value)
except (TypeError, ValueError):
return None
async def perform_sync(
panel_service: PanelApiService,
session: AsyncSession,
@@ -176,6 +194,14 @@ async def perform_sync(
f"Updated panel UUID for user {actual_user_id}: {panel_uuid}"
)
lifetime_used = _extract_lifetime_used_traffic_bytes(panel_user_dict)
if (
lifetime_used is not None
and existing_user.lifetime_used_traffic_bytes != lifetime_used
):
existing_user.lifetime_used_traffic_bytes = lifetime_used
user_was_updated = True
# Ensure panel description contains Telegram fields
try:
if panel_uuid and existing_user: