From 667b3e17dab720066ce951ae27898e2c6ef9f38e Mon Sep 17 00:00:00 2001 From: Claude Brisson Date: Sat, 29 Nov 2025 10:32:30 +0100 Subject: [PATCH] Fix EGF/FFG export name case: Title_Case instead of UPPERCASE toCapitals() properly capitalizes each word part (e.g., "ACIKGOZ" -> "Acikgoz", "alen ibrahim" -> "Alen_Ibrahim"). Format: "Last_Name First_Name" with underscores joining multi-part names. --- .../jeudego/pairgoth/api/StandingsHandler.kt | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/StandingsHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/StandingsHandler.kt index fa3e400..66110c6 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/StandingsHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/StandingsHandler.kt @@ -132,17 +132,16 @@ ${ player.getString("num")!!.padStart(4, ' ') } ${ "${ - player.getString("name")?.toSnake(true) - + player.getString("name")?.toCapitals() } ${ - player.getString("firstname")?.toSnake() ?: "" + player.getString("firstname")?.toCapitals() ?: "" }".padEnd(30, ' ').take(30) } ${ displayRank(player.getInt("rank")!!).uppercase().padStart(3, ' ') } ${ player.getString("country")?.uppercase() ?: "" } ${ - (player.getString("club") ?: "").toSnake().padStart(4).take(4) + (player.getString("club") ?: "").toCapitals().padStart(4).take(4) } ${ criteria.joinToString(" ") { numFormat.format(player.getDouble(it.name)!!).let { if (it.contains('.')) it else "$it " }.padStart(7, ' ') } } ${ @@ -156,14 +155,12 @@ ${ writer.println(ret) } - private fun String.toSnake(upper: Boolean = false): String { + private fun String.toCapitals(): String { val sanitized = sanitizeISO() val parts = sanitized.trim().split(Regex("(?:\\s|\\xA0)+")) - val snake = parts.joinToString("_") { part -> - if (upper) part.uppercase(Locale.ROOT) - else part.capitalize() + return parts.joinToString("_") { part -> + part.lowercase(Locale.ROOT).replaceFirstChar { it.titlecase(Locale.ROOT) } } - return snake } private fun String.sanitizeISO(): String { @@ -202,14 +199,14 @@ ${ "${ player.getString("num")!!.padStart(4, ' ') } ${ - "${player.getString("name")?.toSnake(true)} ${player.getString("firstname")?.toSnake() ?: ""}".padEnd(24, ' ').take(24) + "${player.getString("name")?.toCapitals()} ${player.getString("firstname")?.toCapitals() ?: ""}".padEnd(24, ' ').take(24) } ${ displayRank(player.getInt("rank")!!).uppercase().padStart(3, ' ') } ${ player.getString("ffg") ?: " " } ${ if (player.getString("country") == "FR") - (player.getString("club") ?: "").toSnake().padEnd(4).take(4) + (player.getString("club") ?: "").toCapitals().padEnd(4).take(4) else (player.getString("country") ?: "").padEnd(4).take(4) } ${