Apply ktlint standard formatting

This commit is contained in:
2026-09-13 21:26:25 +01:00
parent aa1e862201
commit e8fc28a239
15 changed files with 192 additions and 142 deletions
@@ -18,6 +18,7 @@ class MessageParser(val incoming: Channel<String>) {
abstract class Command(open val command: String, open val parameters: List<String>) {
abstract fun toServerMessage(): ServerMessage
fun getTrailingParameterIndex() = parameters.indexOfFirst { it.startsWith(":") }
fun getTrailingParameterString() =
@@ -35,41 +36,47 @@ class MessageParser(val incoming: Channel<String>) {
fun getNonTrailingParameters() = getNonTrailingParameterString().split(" ")
class NamedCommand(override val command: String, override val parameters: List<String>) : Command(command, parameters) {
override fun toServerMessage() = when (command.uppercase()) {
"PONG" -> ServerMessage.Pong(getTrailingParameterString().removePrefix(":"))
"MODE" -> ServerMessage.Mode(
parameters.first(),
parameters.last().removePrefix(":")
) // TODO MODE, CHANMODE, LOCALMODE
override fun toServerMessage() =
when (command.uppercase()) {
"PONG" -> ServerMessage.Pong(getTrailingParameterString().removePrefix(":"))
"MODE" ->
ServerMessage.Mode(
parameters.first(),
parameters.last().removePrefix(":"),
) // TODO MODE, CHANMODE, LOCALMODE
"NOTICE" -> ServerMessage.Notice(
getNonTrailingParameters(),
getTrailingParameterString()
)
"NOTICE" ->
ServerMessage.Notice(
getNonTrailingParameters(),
getTrailingParameterString(),
)
"PRIVMSG" -> ServerMessage.PrivMsg(
getNonTrailingParameters(),
getTrailingParameterString()
)
"PRIVMSG" ->
ServerMessage.PrivMsg(
getNonTrailingParameters(),
getTrailingParameterString(),
)
else -> {
ServerMessage.UNIMPLEMENTED("$command ${parameters.joinToString(" ")}")
else -> {
ServerMessage.UNIMPLEMENTED("$command ${parameters.joinToString(" ")}")
}
}
}
}
class NumericCommand(override val command: String, override val parameters: List<String>) : Command(command, parameters) {
override fun toServerMessage() = when (command.toInt()) {
5 -> ServerMessage.Numeric.RPL_ISUPPORT(getNonTrailingParameterString())
321 -> ServerMessage.Numeric.RPL_LISTSTART()
322 -> ServerMessage.Numeric.RPL_LIST(
parameters[1],
parameters[2].toInt(),
getTrailingParameterString()
)
323 -> ServerMessage.Numeric.RPL_LISTEND()
else -> ServerMessage.UNIMPLEMENTED(parameters.toString())
}
override fun toServerMessage() =
when (command.toInt()) {
5 -> ServerMessage.Numeric.RPL_ISUPPORT(getNonTrailingParameterString())
321 -> ServerMessage.Numeric.RPL_LISTSTART()
322 ->
ServerMessage.Numeric.RPL_LIST(
parameters[1],
parameters[2].toInt(),
getTrailingParameterString(),
)
323 -> ServerMessage.Numeric.RPL_LISTEND()
else -> ServerMessage.UNIMPLEMENTED(parameters.toString())
}
}
}
@@ -99,21 +106,31 @@ class MessageParser(val incoming: Channel<String>) {
val tokens = commandList.toMutableList()
// remove tags from strlist if present
tags = if (tokens.first().startsWith("@")) {
tokens.removeFirst()
} else null
tags =
if (tokens.first().startsWith("@")) {
tokens.removeFirst()
} else {
null
}
// remove client prefix (nick&opt hostname) if present
prefix = if (tokens.first().startsWith(":")) {
tokens.removeFirst()
} else null
prefix =
if (tokens.first().startsWith(":")) {
tokens.removeFirst()
} else {
null
}
// get command e.g. PING
val commandStr = tokens.removeFirst()
// Check if command is a numeric (RPL/ERR) or named
command = if (commandStr.toIntOrNull() == null) Command.NamedCommand(commandStr, tokens)
else Command.NumericCommand(commandStr, tokens)
command =
if (commandStr.toIntOrNull() == null) {
Command.NamedCommand(commandStr, tokens)
} else {
Command.NumericCommand(commandStr, tokens)
}
return command.toServerMessage()
}
@@ -122,11 +139,10 @@ class MessageParser(val incoming: Channel<String>) {
}
suspend fun start() {
val builder = MessageBuilder()
for (msg in incoming) {
logger.trace { "Receiving: $msg" }
incomingParsedMessages.send(builder.build(msg))
}
}
}
}