From 900232fde1268bf55ea479443fa2336354e2aced Mon Sep 17 00:00:00 2001 From: UnitedAirforce Date: Sat, 13 Dec 2025 14:38:24 +0800 Subject: [PATCH] fixes --- new_server_7003/api/database.py | 6 ++---- new_server_7003/api/ranking.py | 2 +- new_server_7003/api/shop.py | 4 ++-- new_server_7003/api/user.py | 3 +++ 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/new_server_7003/api/database.py b/new_server_7003/api/database.py index db69bca..0253082 100644 --- a/new_server_7003/api/database.py +++ b/new_server_7003/api/database.py @@ -325,7 +325,7 @@ async def check_blacklist(decrypted_fields): result = await player_database.fetch_one(query) return result is None -async def get_user_entitlement_from_devices(user_id): +async def get_user_entitlement_from_devices(user_id, should_cap = True): devices_query = select(devices.c.my_stage, devices.c.my_avatar).where(devices.c.user_id == user_id) devices_list = await player_database.fetch_all(devices_query) devices_list = [dict(dev) for dev in devices_list] if devices_list else [] @@ -341,7 +341,7 @@ async def get_user_entitlement_from_devices(user_id): stage_set = sorted(stage_set) - if len(stage_set) > 500: + if should_cap and len(stage_set) > 500: rand_toss = True if random.random() < 0.5 else False if rand_toss: stage_set = stage_set[:500] @@ -350,8 +350,6 @@ async def get_user_entitlement_from_devices(user_id): return list(stage_set), list(avatar_set) - - async def set_user_data_using_decrypted_fields(decrypted_fields, data_fields): data_fields['updated_at'] = datetime.utcnow() device_id = decrypted_fields[b'vid'][0].decode() diff --git a/new_server_7003/api/ranking.py b/new_server_7003/api/ranking.py index 489c72e..f72f25d 100644 --- a/new_server_7003/api/ranking.py +++ b/new_server_7003/api/ranking.py @@ -173,7 +173,7 @@ async def user_song_list(request: Request): my_stage = [] if user_info: - my_stage, _ = await get_user_entitlement_from_devices(user_info["id"]) + my_stage, _ = await get_user_entitlement_from_devices(user_info["id"], should_cap=False) elif device_info: my_stage = device_info['my_stage'] diff --git a/new_server_7003/api/shop.py b/new_server_7003/api/shop.py index 81c572d..7e72791 100644 --- a/new_server_7003/api/shop.py +++ b/new_server_7003/api/shop.py @@ -45,7 +45,7 @@ async def api_shop_player_data(request: Request): user_info, device_info = await decrypt_fields_to_user_info(decrypted_fields) if user_info: - my_stage, my_avatar = await get_user_entitlement_from_devices(user_info['id']) + my_stage, my_avatar = await get_user_entitlement_from_devices(user_info['id'], should_cap=False) elif device_info: my_stage = device_info['my_stage'] my_avatar = device_info['my_avatar'] @@ -241,7 +241,7 @@ async def api_shop_purchase_item(request: Request): user_info, device_info = await decrypt_fields_to_user_info(decrypted_fields) if user_info: - my_stage, my_avatar = await get_user_entitlement_from_devices(user_info['id']) + my_stage, my_avatar = await get_user_entitlement_from_devices(user_info['id'], should_cap=False) elif device_info: my_stage = device_info['my_stage'] my_avatar = device_info['my_avatar'] diff --git a/new_server_7003/api/user.py b/new_server_7003/api/user.py index 552f825..5a58829 100644 --- a/new_server_7003/api/user.py +++ b/new_server_7003/api/user.py @@ -101,6 +101,9 @@ async def start(request: Request): now_count = 1 else: now_count = current_day + else: + # Bug fix: In case the device does not exist, create it to avoid issues with daily rewards + await create_device(device_id, datetime.now()) now_count_elem = daily_reward_elem.find("now_count") if now_count_elem is None: