mirror of
https://github.com/qwerfd2/Groove_Coaster_2_Server.git
synced 2026-02-22 17:32:44 +00:00
fixes
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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']
|
||||
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user