From b0953a9d66820e3d74ce204bcc5204735119c300 Mon Sep 17 00:00:00 2001 From: Stefan Schallerl Date: Thu, 13 Feb 2025 17:38:22 +0100 Subject: [PATCH] Fixes tag serialization. --- app/src/main/kotlin/net/h34t/filemure/Types.kt | 4 +++- app/src/main/kotlin/net/h34t/filemure/Util.kt | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/net/h34t/filemure/Types.kt b/app/src/main/kotlin/net/h34t/filemure/Types.kt index 5082963..59edcd5 100644 --- a/app/src/main/kotlin/net/h34t/filemure/Types.kt +++ b/app/src/main/kotlin/net/h34t/filemure/Types.kt @@ -45,7 +45,9 @@ value class Tag private constructor(val value: String) { private val splitter = Regex("\\s+") fun of(value: String): Tag = value.trim().let { v -> - require(v.matches(validator)) + require(v.matches(validator)) { + "\"$value\" isn't a valid tag" + } Tag(v.lowercase()) } diff --git a/app/src/main/kotlin/net/h34t/filemure/Util.kt b/app/src/main/kotlin/net/h34t/filemure/Util.kt index 7676738..9999b13 100644 --- a/app/src/main/kotlin/net/h34t/filemure/Util.kt +++ b/app/src/main/kotlin/net/h34t/filemure/Util.kt @@ -52,11 +52,16 @@ private val tagSplitRegex = Regex("\\s+") object TagAdapter { fun parse(ser: String?): List { - return ser?.trim()?.let { if (it.isNotBlank()) it.split(tagSplitRegex).map { Tag.of(it) } else emptyList() } + return ser?.trim()?.let { + if (it.isNotBlank()) it + .split(tagSplitRegex) + .filter { it.isNotBlank() } + .map { Tag.of(it) } else emptyList() + } ?: emptyList() } - fun List.serialize() = if (this.isEmpty()) "" else this.joinToString(",") { it.value } + fun List.serialize() = if (this.isEmpty()) "" else this.joinToString(" ") { it.value } } fun List.grouped(): Map>> =