fix: enforce fullwidth

This commit is contained in:
Raymond
2026-06-07 00:00:11 -04:00
parent 593783866a
commit 898939485c
5 changed files with 7 additions and 9 deletions

View File

@@ -1,8 +1,6 @@
package icu.samnyan.aqua.net.games
import ext.isoDate
import ext.minus
import ext.mut
import ext.*
import java.time.LocalDate
const val LETTERS = "" +
@@ -17,10 +15,10 @@ const val WACCA_USERNAME_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
"0123456789" +
"~|?!=()[]{},.:;\"@/_-+#*&%$"
fun usernameCheck(chars: String): (IUserData, String) -> Unit = { u, v ->
u.userName = v
fun usernameCheck(isWacca: Bool): (IUserData, String) -> Unit = { u, v ->
if (v.isBlank()) { 400 - "Username cannot be blank" }
if (v.length > 8) { 400 - "Username too long" }
u.userName = toFullWidth(v)
// v.find { it !in chars }?.let { 400 - "Invalid character '$it' in username" }
}

View File

@@ -33,7 +33,7 @@ class Chusan(
// Only show > AAA rank
override val shownRanks = chu3Scores.filter { it.first >= 95 * 10000 }
override val settableFields: Map<String, (Chu3UserData, String) -> Unit> by lazy { mapOf(
"userName" to usernameCheck(SEGA_USERNAME_CHARS),
"userName" to usernameCheck(false),
"nameplateId" to { u, v -> u.nameplateId = v.int },
"frameId" to { u, v -> u.frameId = v.int },
"trophyId" to { u, v -> u.trophyId = v.int },

View File

@@ -40,7 +40,7 @@ class Maimai2(
// Only show > S rank
override val shownRanks = mai2Scores.filter { it.first >= 97 * 10000 }
override val settableFields: Map<String, (Mai2UserDetail, String) -> Unit> by lazy { mapOf(
"userName" to usernameCheck(SEGA_USERNAME_CHARS),
"userName" to usernameCheck(false),
"iconId" to { u, v -> u.iconId = v.int() },
"plateId" to { u, v -> u.plateId = v.int() },
"titleId" to { u, v -> u.titleId = v.int() },

View File

@@ -35,7 +35,7 @@ class Ongeki(
override val shownRanks = ongekiScores.filter { it.first >= 950000 }
override val settableFields: Map<String, (UserData, String) -> Unit> by lazy { mapOf(
"userName" to usernameCheck(SEGA_USERNAME_CHARS),
"userName" to usernameCheck(false),
"lastRomVersion" to { u, v -> u.lastRomVersion = v },
"lastDataVersion" to { u, v -> u.lastDataVersion = v },

View File

@@ -22,7 +22,7 @@ class Wacca(
override val userMusicRepo: WcUserBestScoreRepo,
): GameApiController<WaccaUser>("wacca", WaccaUser::class) {
override val settableFields: Map<String, (WaccaUser, String) -> Unit> by lazy { mapOf(
"userName" to usernameCheck(WACCA_USERNAME_CHARS),
"userName" to usernameCheck(true),
"lastRomVersion" to { u, v -> u.lastRomVersion = v },
) }