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.
This commit is contained in:
@@ -132,17 +132,16 @@ ${
|
|||||||
player.getString("num")!!.padStart(4, ' ')
|
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)
|
}".padEnd(30, ' ').take(30)
|
||||||
} ${
|
} ${
|
||||||
displayRank(player.getInt("rank")!!).uppercase().padStart(3, ' ')
|
displayRank(player.getInt("rank")!!).uppercase().padStart(3, ' ')
|
||||||
} ${
|
} ${
|
||||||
player.getString("country")?.uppercase() ?: ""
|
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, ' ') }
|
criteria.joinToString(" ") { numFormat.format(player.getDouble(it.name)!!).let { if (it.contains('.')) it else "$it " }.padStart(7, ' ') }
|
||||||
} ${
|
} ${
|
||||||
@@ -156,14 +155,12 @@ ${
|
|||||||
writer.println(ret)
|
writer.println(ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun String.toSnake(upper: Boolean = false): String {
|
private fun String.toCapitals(): String {
|
||||||
val sanitized = sanitizeISO()
|
val sanitized = sanitizeISO()
|
||||||
val parts = sanitized.trim().split(Regex("(?:\\s|\\xA0)+"))
|
val parts = sanitized.trim().split(Regex("(?:\\s|\\xA0)+"))
|
||||||
val snake = parts.joinToString("_") { part ->
|
return parts.joinToString("_") { part ->
|
||||||
if (upper) part.uppercase(Locale.ROOT)
|
part.lowercase(Locale.ROOT).replaceFirstChar { it.titlecase(Locale.ROOT) }
|
||||||
else part.capitalize()
|
|
||||||
}
|
}
|
||||||
return snake
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun String.sanitizeISO(): String {
|
private fun String.sanitizeISO(): String {
|
||||||
@@ -202,14 +199,14 @@ ${
|
|||||||
"${
|
"${
|
||||||
player.getString("num")!!.padStart(4, ' ')
|
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, ' ')
|
displayRank(player.getInt("rank")!!).uppercase().padStart(3, ' ')
|
||||||
} ${
|
} ${
|
||||||
player.getString("ffg") ?: " "
|
player.getString("ffg") ?: " "
|
||||||
} ${
|
} ${
|
||||||
if (player.getString("country") == "FR")
|
if (player.getString("country") == "FR")
|
||||||
(player.getString("club") ?: "").toSnake().padEnd(4).take(4)
|
(player.getString("club") ?: "").toCapitals().padEnd(4).take(4)
|
||||||
else
|
else
|
||||||
(player.getString("country") ?: "").padEnd(4).take(4)
|
(player.getString("country") ?: "").padEnd(4).take(4)
|
||||||
} ${
|
} ${
|
||||||
|
|||||||
Reference in New Issue
Block a user