From c6dd723ccd8dfab4f47b1c6820c8739cac834aa7 Mon Sep 17 00:00:00 2001 From: Stedoss <29103029+Stedoss@users.noreply.github.com> Date: Tue, 11 Mar 2025 16:45:44 +0000 Subject: [PATCH] Return `leaderboard_rank` in `similar-scores` endpoint --- .../src/main/kotlin/com/nisemoe/nise/Models.kt | 2 ++ .../com/nisemoe/nise/database/ScoreService.kt | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/nise-backend/src/main/kotlin/com/nisemoe/nise/Models.kt b/nise-backend/src/main/kotlin/com/nisemoe/nise/Models.kt index e561f64..dc21ee1 100644 --- a/nise-backend/src/main/kotlin/com/nisemoe/nise/Models.kt +++ b/nise-backend/src/main/kotlin/com/nisemoe/nise/Models.kt @@ -72,6 +72,8 @@ data class SimilarReplayEntry( val replay_date_2: String, val replay_pp_1: Double, val replay_pp_2: Double, + val replay_leaderboard_rank_1: Long?, + val replay_leaderboard_rank_2: Long?, val beatmap_id: Long, val beatmap_title: String, val beatmap_star_rating: Double, diff --git a/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt b/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt index 33b303b..4f2710e 100644 --- a/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt +++ b/nise-backend/src/main/kotlin/com/nisemoe/nise/database/ScoreService.kt @@ -324,11 +324,13 @@ class ScoreService( osuUserAlias1.USERNAME, osuScoreAlias1.DATE, osuScoreAlias1.PP, + osuScoreAlias1.LEADERBOARD_RANK, osuScoreAlias2.REPLAY_ID, osuScoreAlias2.USER_ID, osuUserAlias2.USERNAME, osuScoreAlias2.DATE, osuScoreAlias2.PP, + osuScoreAlias2.LEADERBOARD_RANK, BEATMAPS.BEATMAP_ID, BEATMAPS.TITLE, BEATMAPS.STAR_RATING, @@ -386,6 +388,9 @@ class ScoreService( var replayPp1 = it.get(osuScoreAlias1.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 if (replayDate1.isAfter(replayDate2)) { val tempReplayId = replayId1 @@ -407,6 +412,10 @@ class ScoreService( val tempReplayPp = replayPp1 replayPp1 = replayPp2 replayPp2 = tempReplayPp + + val tempLeaderboardRank = replayLeaderboardRank1 + replayLeaderboardRank1 = replayLeaderboardRank2 + replayLeaderboardRank2 = tempLeaderboardRank } SimilarReplayEntry( @@ -421,10 +430,12 @@ class ScoreService( replay_date_2 = Format.formatLocalDateTime(replayDate2), replay_pp_1 = replayPp1, 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_title = it.get(BEATMAPS.TITLE, String::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 { val (smallerId, largerId) = listOf(it.replay_id_1, it.replay_id_2).sorted()