mai2: fixes round 3

This commit is contained in:
Hay1tsme 2023-07-01 01:56:52 -04:00
parent dc8c27046e
commit d89eb61e62
2 changed files with 13 additions and 11 deletions

View File

@ -113,7 +113,7 @@ class Mai2Base:
def handle_get_user_preview_api_request(self, data: Dict) -> Dict: def handle_get_user_preview_api_request(self, data: Dict) -> Dict:
p = self.data.profile.get_profile_detail(data["userId"], self.version, True) p = self.data.profile.get_profile_detail(data["userId"], self.version, True)
w = self.data.profile.get_web_option(data["userId"]) w = self.data.profile.get_web_option(data["userId"], self.version)
if p is None or w is None: if p is None or w is None:
return {} # Register return {} # Register
profile = p._asdict() profile = p._asdict()
@ -229,6 +229,7 @@ class Mai2Base:
self.data.profile.put_recent_rating(user_id, upsert["userRecentRatingList"]) self.data.profile.put_recent_rating(user_id, upsert["userRecentRatingList"])
if "userOption" in upsert and len(upsert["userOption"]) > 0: if "userOption" in upsert and len(upsert["userOption"]) > 0:
upsert["userOption"][0].pop("userId")
self.data.profile.put_profile_option( self.data.profile.put_profile_option(
user_id, self.version, upsert["userOption"][0], False user_id, self.version, upsert["userOption"][0], False
) )
@ -239,9 +240,8 @@ class Mai2Base:
) )
if "userActivityList" in upsert and len(upsert["userActivityList"]) > 0: if "userActivityList" in upsert and len(upsert["userActivityList"]) > 0:
for k, v in upsert["userActivityList"][0].items(): for act in upsert["userActivityList"]:
for act in v: self.data.profile.put_profile_activity(user_id, act)
self.data.profile.put_profile_activity(user_id, act)
if "userChargeList" in upsert and len(upsert["userChargeList"]) > 0: if "userChargeList" in upsert and len(upsert["userChargeList"]) > 0:
for charge in upsert["userChargeList"]: for charge in upsert["userChargeList"]:
@ -265,8 +265,7 @@ class Mai2Base:
user_id, user_id,
char["characterId"], char["characterId"],
char["level"], char["level"],
char["awakening"], char["point"],
char["useCount"],
) )
if "userItemList" in upsert and len(upsert["userItemList"]) > 0: if "userItemList" in upsert and len(upsert["userItemList"]) > 0:
@ -276,7 +275,6 @@ class Mai2Base:
int(item["itemKind"]), int(item["itemKind"]),
item["itemId"], item["itemId"],
item["stock"], item["stock"],
item["isValid"],
) )
if "userLoginBonusList" in upsert and len(upsert["userLoginBonusList"]) > 0: if "userLoginBonusList" in upsert and len(upsert["userLoginBonusList"]) > 0:
@ -302,7 +300,7 @@ class Mai2Base:
if "userMusicDetailList" in upsert and len(upsert["userMusicDetailList"]) > 0: if "userMusicDetailList" in upsert and len(upsert["userMusicDetailList"]) > 0:
for music in upsert["userMusicDetailList"]: for music in upsert["userMusicDetailList"]:
self.data.score.put_best_score(user_id, music) self.data.score.put_best_score(user_id, music, False)
if "userCourseList" in upsert and len(upsert["userCourseList"]) > 0: if "userCourseList" in upsert and len(upsert["userCourseList"]) > 0:
for course in upsert["userCourseList"]: for course in upsert["userCourseList"]:

View File

@ -678,7 +678,9 @@ class Mai2ProfileData(BaseData):
return None return None
return result.fetchall() return result.fetchall()
def put_web_option(self, user_id: int, web_opts: Dict) -> Optional[int]: def put_web_option(self, user_id: int, version: int, web_opts: Dict) -> Optional[int]:
web_opts["user"] = user_id
web_opts["version"] = version
sql = insert(web_opt).values(**web_opts) sql = insert(web_opt).values(**web_opts)
conflict = sql.on_duplicate_key_update(**web_opts) conflict = sql.on_duplicate_key_update(**web_opts)
@ -691,8 +693,8 @@ class Mai2ProfileData(BaseData):
return None return None
return result.lastrowid return result.lastrowid
def get_web_option(self, user_id: int) -> Optional[Row]: def get_web_option(self, user_id: int, version: int) -> Optional[Row]:
sql = web_opt.select(web_opt.c.user == user_id) sql = web_opt.select(and_(web_opt.c.user == user_id, web_opt.c.version == version))
result = self.execute(sql) result = self.execute(sql)
if result is None: if result is None:
@ -700,6 +702,7 @@ class Mai2ProfileData(BaseData):
return result.fetchone() return result.fetchone()
def put_grade_status(self, user_id: int, grade_stat: Dict) -> Optional[int]: def put_grade_status(self, user_id: int, grade_stat: Dict) -> Optional[int]:
grade_stat["user"] = user_id
sql = insert(grade_status).values(**grade_stat) sql = insert(grade_status).values(**grade_stat)
conflict = sql.on_duplicate_key_update(**grade_stat) conflict = sql.on_duplicate_key_update(**grade_stat)
@ -721,6 +724,7 @@ class Mai2ProfileData(BaseData):
return result.fetchone() return result.fetchone()
def put_boss_list(self, user_id: int, boss_stat: Dict) -> Optional[int]: def put_boss_list(self, user_id: int, boss_stat: Dict) -> Optional[int]:
boss_stat["user"] = user_id
sql = insert(boss).values(**boss_stat) sql = insert(boss).values(**boss_stat)
conflict = sql.on_duplicate_key_update(**boss_stat) conflict = sql.on_duplicate_key_update(**boss_stat)