From 7999064dd4592c2fbe273f3a0b8678de1ca79821 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 4 Nov 2024 10:41:38 +0200 Subject: [PATCH] [MangaFire] Fix search (close #1196) --- .../koitharu/kotatsu/parsers/site/all/MangaFireParser.kt | 2 +- src/main/kotlin/org/koitharu/kotatsu/parsers/util/String.kt | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaFireParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaFireParser.kt index 06fe8ce1..e43e8c24 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaFireParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaFireParser.kt @@ -90,7 +90,7 @@ internal abstract class MangaFireParser( when { !filter.query.isNullOrEmpty() -> { - addQueryParameter("keyword", filter.query) + addQueryParameter("keyword", filter.query.space2plus()) addQueryParameter( name = "sort", value = when (order) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/String.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/String.kt index 0d4d83ba..f3e63d07 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/String.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/String.kt @@ -12,6 +12,8 @@ import java.security.MessageDigest import java.util.* import kotlin.math.min +private val REGEX_WHITESPACE = Regex("\\s+") + public fun String.removeSurrounding(vararg chars: Char): String { if (isEmpty()) { return this @@ -78,7 +80,7 @@ public fun String.transliterate(skipMissing: Boolean): String { public fun String.toFileNameSafe(): String = this.transliterate(false) .replace(Regex("[^a-z0-9_\\-]", arraySetOf(RegexOption.IGNORE_CASE)), " ") - .replace(Regex("\\s+"), "_") + .replace(REGEX_WHITESPACE, "_") public fun String.ellipsize(maxLength: Int): String = if (this.length > maxLength) { this.take(maxLength - 1) + Typography.ellipsis @@ -104,6 +106,8 @@ public fun String.urlDecode(): String = URLDecoder.decode(this, Charsets.UTF_8.n public fun String.nl2br(): String = replace("\n", "
") +public fun String.space2plus(): String = trim().replace(REGEX_WHITESPACE, "+") + public fun ByteArray.byte2HexFormatted(): String { val str = StringBuilder(size * 2) for (i in indices) {