chawin.chen commited on
Commit ·
44d459b
1
Parent(s): 6507333
feat: 排行榜返回用户昵称
Browse files- database.py +3 -3
- models.py +1 -0
- test/test_ranking_consistency.py +1 -1
database.py
CHANGED
|
@@ -829,8 +829,8 @@ async def get_face_score_leaderboard(
|
|
| 829 |
device_suffix = f"_{current_device_id}" if current_device_id else None
|
| 830 |
result_items: List[Dict[str, Any]] = []
|
| 831 |
for cached_item in cached_or_fresh_items[:limit]:
|
| 832 |
-
nickname = str(cached_item.get("
|
| 833 |
-
public_item =
|
| 834 |
public_item["is_current_user"] = bool(device_suffix and nickname.endswith(device_suffix))
|
| 835 |
result_items.append(public_item)
|
| 836 |
return result_items
|
|
@@ -913,6 +913,7 @@ async def get_face_score_leaderboard(
|
|
| 913 |
"record_id": row_id,
|
| 914 |
"rank": len(items) + 1,
|
| 915 |
"score": score_val,
|
|
|
|
| 916 |
"region_code": row_region,
|
| 917 |
"region_name": row_country_name,
|
| 918 |
"gender": gender,
|
|
@@ -920,7 +921,6 @@ async def get_face_score_leaderboard(
|
|
| 920 |
"avatar_id": avatar_id,
|
| 921 |
"created_at": updated_at_str,
|
| 922 |
"updated_at": updated_at_str,
|
| 923 |
-
"_nickname": str(row.get("nickname") or ""),
|
| 924 |
})
|
| 925 |
if len(items) >= limit:
|
| 926 |
break
|
|
|
|
| 829 |
device_suffix = f"_{current_device_id}" if current_device_id else None
|
| 830 |
result_items: List[Dict[str, Any]] = []
|
| 831 |
for cached_item in cached_or_fresh_items[:limit]:
|
| 832 |
+
nickname = str(cached_item.get("nickname") or "")
|
| 833 |
+
public_item = dict(cached_item)
|
| 834 |
public_item["is_current_user"] = bool(device_suffix and nickname.endswith(device_suffix))
|
| 835 |
result_items.append(public_item)
|
| 836 |
return result_items
|
|
|
|
| 913 |
"record_id": row_id,
|
| 914 |
"rank": len(items) + 1,
|
| 915 |
"score": score_val,
|
| 916 |
+
"nickname": str(row.get("nickname") or ""),
|
| 917 |
"region_code": row_region,
|
| 918 |
"region_name": row_country_name,
|
| 919 |
"gender": gender,
|
|
|
|
| 921 |
"avatar_id": avatar_id,
|
| 922 |
"created_at": updated_at_str,
|
| 923 |
"updated_at": updated_at_str,
|
|
|
|
| 924 |
})
|
| 925 |
if len(items) >= limit:
|
| 926 |
break
|
models.py
CHANGED
|
@@ -126,6 +126,7 @@ class LeaderboardItem(BaseModel):
|
|
| 126 |
record_id: int
|
| 127 |
rank: int
|
| 128 |
score: float
|
|
|
|
| 129 |
region_code: Optional[str] = None
|
| 130 |
region_name: Optional[str] = None
|
| 131 |
gender: Optional[str] = None
|
|
|
|
| 126 |
record_id: int
|
| 127 |
rank: int
|
| 128 |
score: float
|
| 129 |
+
nickname: Optional[str] = None
|
| 130 |
region_code: Optional[str] = None
|
| 131 |
region_name: Optional[str] = None
|
| 132 |
gender: Optional[str] = None
|
test/test_ranking_consistency.py
CHANGED
|
@@ -87,7 +87,7 @@ class RankingConsistencyTest(unittest.IsolatedAsyncioTestCase):
|
|
| 87 |
self.assertEqual(88.85, result["items"][0]["score"])
|
| 88 |
self.assertTrue(result["items"][0]["is_current_user"])
|
| 89 |
self.assertTrue(result["items"][1]["is_current_user"])
|
| 90 |
-
self.
|
| 91 |
query = fetch_all.await_args.args[0]
|
| 92 |
self.assertNotIn("NOT EXISTS", query)
|
| 93 |
self.assertIn("ORDER BY score DESC, candidate.id ASC", query)
|
|
|
|
| 87 |
self.assertEqual(88.85, result["items"][0]["score"])
|
| 88 |
self.assertTrue(result["items"][0]["is_current_user"])
|
| 89 |
self.assertTrue(result["items"][1]["is_current_user"])
|
| 90 |
+
self.assertEqual("android_release_current-device", result["items"][0]["nickname"])
|
| 91 |
query = fetch_all.await_args.args[0]
|
| 92 |
self.assertNotIn("NOT EXISTS", query)
|
| 93 |
self.assertIn("ORDER BY score DESC, candidate.id ASC", query)
|