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>> =