forked from Hay1tsme/artemis
Fixed Rival Music retrieval
This commit is contained in:
parent
480551f942
commit
c78a62de14
@ -201,9 +201,33 @@ class ChuniScoreData(BaseData):
|
||||
return None
|
||||
return result.lastrowid
|
||||
|
||||
def get_rival_music(self, rival_id: int, index: int, max_count: int) -> Optional[List[Dict]]:
|
||||
sql = select(playlog).where(playlog.c.user == rival_id).limit(max_count).offset(index)
|
||||
def get_rival_music(self, rival_id: int) -> Optional[List[Dict]]:
|
||||
sql = select(playlog).where(playlog.c.user == rival_id)
|
||||
result = self.execute(sql)
|
||||
if result is None:
|
||||
return None
|
||||
return result.fetchall()
|
||||
def get_rival_music_highest_scores(self, rival_id: int) -> Optional[List[Dict]]:
|
||||
# Define the subquery to retrieve the highest scoreMax for each level and musicId
|
||||
subquery = (
|
||||
select([
|
||||
self.playlog.c.musicId,
|
||||
self.playlog.c.level,
|
||||
func.max(self.playlog.c.score)
|
||||
])
|
||||
.where(self.playlog.c.user == rival_id)
|
||||
.group_by(self.playlog.c.musicId, self.playlog.c.level)
|
||||
)
|
||||
|
||||
# Join the subquery with the playlog table to get the full records
|
||||
query = select([
|
||||
self.playlog,
|
||||
subquery.scalar()
|
||||
]).where(self.playlog.c.user == rival_id)
|
||||
|
||||
result = self.execute(query)
|
||||
|
||||
if result is None:
|
||||
return None
|
||||
|
||||
return result.fetchall()
|
||||
|
Loading…
Reference in New Issue
Block a user