diff --git a/src/main/java/ext/Ext.kt b/src/main/java/ext/Ext.kt index 507c9ead..d6a2e40d 100644 --- a/src/main/java/ext/Ext.kt +++ b/src/main/java/ext/Ext.kt @@ -103,6 +103,7 @@ fun millis() = System.currentTimeMillis() val DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd") fun LocalDate.isoDate() = format(DATE_FORMAT) fun String.isoDate() = DATE_FORMAT.parse(this, LocalDate::from) +fun Date.utc() = toInstant().atZone(java.time.ZoneOffset.UTC).toLocalDate() fun LocalDate.toDate() = Date(atStartOfDay().toInstant(java.time.ZoneOffset.UTC).toEpochMilli()) fun LocalDateTime.isoDateTime() = format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) fun String.isoDateTime() = LocalDateTime.parse(this, DateTimeFormatter.ISO_LOCAL_DATE_TIME) diff --git a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt index cf869a00..29510dbd 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt @@ -1,14 +1,9 @@ package icu.samnyan.aqua.net.games.wacca -import ext.API -import ext.minus +import ext.* import icu.samnyan.aqua.net.db.AquaUserServices -import icu.samnyan.aqua.net.games.GameApiController -import icu.samnyan.aqua.net.games.GenericGameSummary -import icu.samnyan.aqua.net.games.TrendOut -import icu.samnyan.aqua.net.games.USERNAME_CHARS -import icu.samnyan.aqua.net.utils.AquaNetProps -import icu.samnyan.aqua.sega.wacca.model.db.WaccaRepos +import icu.samnyan.aqua.net.games.* +import icu.samnyan.aqua.net.utils.waccaScores import icu.samnyan.aqua.sega.wacca.model.db.WaccaUser import icu.samnyan.aqua.sega.wacca.model.db.WcUserPlayLogRepo import icu.samnyan.aqua.sega.wacca.model.db.WcUserRepo @@ -20,8 +15,6 @@ class Wacca( override val us: AquaUserServices, override val playlogRepo: WcUserPlayLogRepo, override val userDataRepo: WcUserRepo, - val repos: WaccaRepos, - val netProps: AquaNetProps, ): GameApiController("wacca", WaccaUser::class) { override val settableFields: Map Unit> by lazy { mapOf( "userName" to { u, v -> u.userName = v @@ -29,13 +22,15 @@ class Wacca( }, ) } - override suspend fun trend(username: String): List { - TODO("Not yet implemented") + override suspend fun trend(@RP username: String) = us.cardByName(username) { card -> + findTrend(playlogRepo.findByUserCardExtId(card.extId) + .map { TrendLog(it.userPlayDate.utc().isoDate(), it.afterRating) }) } - override suspend fun userSummary(username: String): GenericGameSummary { - TODO("Not yet implemented") + override suspend fun userSummary(@RP username: String) = us.cardByName(username) { card -> + // TODO: Rating composition + genericUserSummary(card, mapOf()) } - override val shownRanks: List> = emptyList() + override val shownRanks: List> = waccaScores.filter { it.first > 83 * 10000 } } \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/net/utils/GameScoring.kt b/src/main/java/icu/samnyan/aqua/net/utils/GameScoring.kt index 293871f3..d9143a09 100644 --- a/src/main/java/icu/samnyan/aqua/net/utils/GameScoring.kt +++ b/src/main/java/icu/samnyan/aqua/net/utils/GameScoring.kt @@ -45,4 +45,17 @@ val ongekiScores = listOf( 70.0 to "B", 50.0 to "C", 0.0 to "D", +).map { (k, v) -> (k * 10000).toInt() to v } + +val waccaScores = listOf( + 100.0 to "AP", + 98.0 to "SSS", + 95.0 to "SS", + 90.0 to "S", + 85.0 to "AAA", + 80.0 to "AA", + 70.0 to "A", + 60.0 to "B", + 1.0 to "C", + 0.0 to "D", ).map { (k, v) -> (k * 10000).toInt() to v } \ No newline at end of file