This commit is contained in:
UnitedAirforce
2025-12-13 14:38:24 +08:00
parent a6a258e817
commit 900232fde1
4 changed files with 8 additions and 7 deletions

View File

@@ -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()

View File

@@ -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']

View File

@@ -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']

View File

@@ -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: