mai2: add tables for rivals and favorite music

This commit is contained in:
2024-06-08 19:04:27 -04:00
parent efd249d808
commit f94d22ab0d
5 changed files with 165 additions and 12 deletions

View File

@ -890,21 +890,32 @@ class Mai2Base:
async def handle_get_user_favorite_item_api_request(self, data: Dict) -> Dict:
user_id = data.get("userId", 0)
kind = data.get("kind", 2) # 1 is fav music, 2 is rival user IDs
kind = data.get("kind", 0) # 1 is fav music, 2 is rival user IDs
next_index = data.get("nextIndex", 0)
max_ct = data.get("maxCount", 100) # always 100
is_all = data.get("isAllFavoriteItem", False) # always false
id_list: List[Dict] = []
if user_id:
if kind == 1:
fav_music = await self.data.item.get_fav_music(user_id)
if fav_music:
for fav in fav_music:
id_list.append({"orderId": 0, "id": fav["musicId"]})
if len(id_list) >= 100: # Lazy but whatever
break
elif kind == 2:
rivals = await self.data.profile.get_rivals_game(user_id)
if rivals:
for rival in rivals:
id_list.append({"orderId": 0, "id": rival["rival"]})
"""
class userFavoriteItemList:
orderId: int, never checked
id: int, either song ID for kind 1, or rival user ID for kind 2
"""
return {
"userId": user_id,
"kind": kind,
"nextIndex": 0,
"userFavoriteItemList": [],
"userFavoriteItemList": id_list,
}
async def handle_get_user_recommend_rate_music_api_request(self, data: Dict) -> Dict: