From e06b5f3c7cb4235b8ef35964f4d76cbd76750f04 Mon Sep 17 00:00:00 2001 From: Stedoss <29103029+Stedoss@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:46:14 +0000 Subject: [PATCH] Implement `getUserMostPlayed` from osu!api --- .../main/kotlin/com/nisemoe/nise/osu/OsuApi.kt | 18 ++++++++++++++++++ .../com/nisemoe/nise/osu/OsuApiModels.kt | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt b/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt index 4112706..6291213 100644 --- a/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt +++ b/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt @@ -294,6 +294,24 @@ class OsuApi( } } + fun getUserMostPlayed(userId: Int, limit: Int? = null, offset: Int? = null): List? { + val queryParams = mapOf( + "limit" to limit, + "offset" to offset, + ) + val response = this.doRequest("https://osu.ppy.sh/api/v2/users/$userId/beatmapsets/most_played/?", queryParams) + + if (response == null) { + this.logger.info("Error getting user most played ($userId)") + return null + } + + return when (response.statusCode()) { + 200 -> serializer.decodeFromString>(response.body()) + else -> null + } + } + var rateLimitRemaining: Long = 0L var rateLimitTotal: Long = 0L diff --git a/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApiModels.kt b/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApiModels.kt index 095a3b4..903f1cc 100644 --- a/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApiModels.kt +++ b/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApiModels.kt @@ -232,4 +232,10 @@ class OsuApiModels { val content: String ) + @Serializable + data class BeatmapPlaycount( + val beatmap_id: Int, + val count: Int, + ) + } \ No newline at end of file