Return leaderboard_rank in similar-scores endpoint

This commit is contained in:
Stedoss 2025-03-11 16:45:44 +00:00
parent c8ded05194
commit c6dd723ccd
2 changed files with 14 additions and 1 deletions

View File

@ -72,6 +72,8 @@ data class SimilarReplayEntry(
val replay_date_2: String, val replay_date_2: String,
val replay_pp_1: Double, val replay_pp_1: Double,
val replay_pp_2: Double, val replay_pp_2: Double,
val replay_leaderboard_rank_1: Long?,
val replay_leaderboard_rank_2: Long?,
val beatmap_id: Long, val beatmap_id: Long,
val beatmap_title: String, val beatmap_title: String,
val beatmap_star_rating: Double, val beatmap_star_rating: Double,

View File

@ -324,11 +324,13 @@ class ScoreService(
osuUserAlias1.USERNAME, osuUserAlias1.USERNAME,
osuScoreAlias1.DATE, osuScoreAlias1.DATE,
osuScoreAlias1.PP, osuScoreAlias1.PP,
osuScoreAlias1.LEADERBOARD_RANK,
osuScoreAlias2.REPLAY_ID, osuScoreAlias2.REPLAY_ID,
osuScoreAlias2.USER_ID, osuScoreAlias2.USER_ID,
osuUserAlias2.USERNAME, osuUserAlias2.USERNAME,
osuScoreAlias2.DATE, osuScoreAlias2.DATE,
osuScoreAlias2.PP, osuScoreAlias2.PP,
osuScoreAlias2.LEADERBOARD_RANK,
BEATMAPS.BEATMAP_ID, BEATMAPS.BEATMAP_ID,
BEATMAPS.TITLE, BEATMAPS.TITLE,
BEATMAPS.STAR_RATING, BEATMAPS.STAR_RATING,
@ -386,6 +388,9 @@ class ScoreService(
var replayPp1 = it.get(osuScoreAlias1.PP, Double::class.java) var replayPp1 = it.get(osuScoreAlias1.PP, Double::class.java)
var replayPp2 = it.get(osuScoreAlias2.PP, Double::class.java) var replayPp2 = it.get(osuScoreAlias2.PP, Double::class.java)
var replayLeaderboardRank1 = it.get(osuScoreAlias1.LEADERBOARD_RANK, Long::class.java)
var replayLeaderboardRank2 = it.get(osuScoreAlias2.LEADERBOARD_RANK, Long::class.java)
// Swap logic if replayDate1 is after replayDate2 // Swap logic if replayDate1 is after replayDate2
if (replayDate1.isAfter(replayDate2)) { if (replayDate1.isAfter(replayDate2)) {
val tempReplayId = replayId1 val tempReplayId = replayId1
@ -407,6 +412,10 @@ class ScoreService(
val tempReplayPp = replayPp1 val tempReplayPp = replayPp1
replayPp1 = replayPp2 replayPp1 = replayPp2
replayPp2 = tempReplayPp replayPp2 = tempReplayPp
val tempLeaderboardRank = replayLeaderboardRank1
replayLeaderboardRank1 = replayLeaderboardRank2
replayLeaderboardRank2 = tempLeaderboardRank
} }
SimilarReplayEntry( SimilarReplayEntry(
@ -421,10 +430,12 @@ class ScoreService(
replay_date_2 = Format.formatLocalDateTime(replayDate2), replay_date_2 = Format.formatLocalDateTime(replayDate2),
replay_pp_1 = replayPp1, replay_pp_1 = replayPp1,
replay_pp_2 = replayPp2, replay_pp_2 = replayPp2,
replay_leaderboard_rank_1 = replayLeaderboardRank1,
replay_leaderboard_rank_2 = replayLeaderboardRank2,
beatmap_id = it.get(BEATMAPS.BEATMAP_ID, Long::class.java), beatmap_id = it.get(BEATMAPS.BEATMAP_ID, Long::class.java),
beatmap_title = it.get(BEATMAPS.TITLE, String::class.java), beatmap_title = it.get(BEATMAPS.TITLE, String::class.java),
beatmap_star_rating = it.get(BEATMAPS.STAR_RATING, Double::class.java), beatmap_star_rating = it.get(BEATMAPS.STAR_RATING, Double::class.java),
similarity = it.get(SCORES_SIMILARITY.SIMILARITY, Double::class.java) similarity = it.get(SCORES_SIMILARITY.SIMILARITY, Double::class.java),
) )
}.distinctBy { }.distinctBy {
val (smallerId, largerId) = listOf(it.replay_id_1, it.replay_id_2).sorted() val (smallerId, largerId) = listOf(it.replay_id_1, it.replay_id_2).sorted()