From 5fd29623ceffb7e1adc807bb35cc255595dba1fa Mon Sep 17 00:00:00 2001 From: UnitedAirforce Date: Sat, 6 Dec 2025 08:41:31 +0800 Subject: [PATCH] Fixes --- new_server_7003/api/account.py | 1 + new_server_7003/api/admin.py | 13 +++++++++---- new_server_7003/api/database.py | 12 ++++++++++++ new_server_7003/db-conv.py | 4 ++-- new_server_7003/web/admin.html | 16 ++++++++++++---- new_server_7003/web/profile.html | 10 ++++++++++ 6 files changed, 46 insertions(+), 10 deletions(-) diff --git a/new_server_7003/api/account.py b/new_server_7003/api/account.py index d7f00b8..a0f25e0 100644 --- a/new_server_7003/api/account.py +++ b/new_server_7003/api/account.py @@ -382,6 +382,7 @@ async def ttag(request: Request): gcoin_mp_4='selected' if gcoin_mp == 4 else '', gcoin_mp_5='selected' if gcoin_mp == 5 else '', savefile_id=savefile_id, + debug_info=original_field, ) else: diff --git a/new_server_7003/api/admin.py b/new_server_7003/api/admin.py index 32290d5..b3a6bcf 100644 --- a/new_server_7003/api/admin.py +++ b/new_server_7003/api/admin.py @@ -150,12 +150,12 @@ async def web_admin_table_set(request: Request): raise ValueError("Row data must be a JSON object.") id_field = None # Find primary key field (id or objectId) - for pk in ["id"]: + for pk in ["id", "device_id"]: if pk in row_data: id_field = pk break if not id_field: - raise ValueError("Row data must contain a primary key ('id' or 'objectId').") + raise ValueError("Row data must contain a primary key ('id' or 'device_id').") for key, value in row_data.items(): if key not in schema: raise ValueError(f"Field '{key}' does not exist in table schema.") @@ -236,6 +236,11 @@ async def web_admin_table_delete(request: Request): table_name = params.get("table") row_id = params.get("id") + if not row_id: + row_id = params.get("device_id") + if not row_id: + return JSONResponse({"status": "failed", "message": "Row ID is required."}, status_code=402) + if table_name not in TABLE_MAP: return JSONResponse({"status": "failed", "message": "Invalid table name."}, status_code=401) @@ -244,8 +249,8 @@ async def web_admin_table_delete(request: Request): table, _ = TABLE_MAP[table_name] - if table_name in ["results"]: - delete_query = table.delete().where(table.c.rid == row_id) + if table_name in ["devices"]: + delete_query = table.delete().where(table.c.device_id == row_id) else: delete_query = table.delete().where(table.c.id == row_id) diff --git a/new_server_7003/api/database.py b/new_server_7003/api/database.py index 765ab44..db69bca 100644 --- a/new_server_7003/api/database.py +++ b/new_server_7003/api/database.py @@ -5,6 +5,7 @@ from sqlalchemy import select, update import base64 import aiofiles import json +import random from config import START_COIN, SIMULTANEOUS_LOGINS from api.template import START_AVATARS, START_STAGES @@ -338,8 +339,19 @@ async def get_user_entitlement_from_devices(user_id): stage_set.update(my_stages) avatar_set.update(my_avatars) + stage_set = sorted(stage_set) + + if len(stage_set) > 500: + rand_toss = True if random.random() < 0.5 else False + if rand_toss: + stage_set = stage_set[:500] + else: + stage_set = stage_set[-500:] + 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/db-conv.py b/new_server_7003/db-conv.py index 1ef74aa..a901192 100644 --- a/new_server_7003/db-conv.py +++ b/new_server_7003/db-conv.py @@ -160,7 +160,8 @@ devices = Table( Column("avatar", Integer, default=1), Column("created_at", DateTime, default=datetime.utcnow), Column("updated_at", DateTime, default=datetime.utcnow, onupdate=datetime.utcnow), - Column("last_login_at", DateTime, default=None) + Column("last_login_at", DateTime, default=None), + Column("bind_token", String(64), unique=True), ) results = Table( @@ -237,7 +238,6 @@ binds = Table( Column("bind_account", String(128), unique=True, nullable=False), Column("bind_code", String(6), nullable=False), Column("is_verified", Integer, default=0), - Column("auth_token", String(64), unique=True), Column("bind_date", DateTime, default=datetime.utcnow) ) diff --git a/new_server_7003/web/admin.html b/new_server_7003/web/admin.html index 8e0b3d1..439a5bd 100644 --- a/new_server_7003/web/admin.html +++ b/new_server_7003/web/admin.html @@ -192,10 +192,18 @@
- - - - + + + + + + + + + + + +