[NHentai] Fix search with exact tag (#4644)
* [NHentai] Fix language filter * Update build.gradle * Fix filter with exact search * Fix code style * Update build.gradle * Update build.gradle
This commit is contained in:
parent
cb8cac580f
commit
9758bd897f
@ -166,27 +166,18 @@ open class NHentai(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun combineQuery(filters: FilterList): String {
|
private fun combineQuery(filters: FilterList): String = buildString {
|
||||||
val stringBuilder = StringBuilder()
|
filters.filterIsInstance<AdvSearchEntryFilter>().forEach { filter ->
|
||||||
val advSearch = filters.filterIsInstance<AdvSearchEntryFilter>().flatMap { filter ->
|
filter.state.split(",")
|
||||||
val splitState = filter.state.split(",").map(String::trim).filterNot(String::isBlank)
|
.map(String::trim)
|
||||||
splitState.map {
|
.filterNot(String::isBlank)
|
||||||
AdvSearchEntry(filter.name, it.removePrefix("-"), it.startsWith("-"))
|
.forEach { tag ->
|
||||||
|
if (tag.startsWith("-")) append("-")
|
||||||
|
append(filter.name, "\"", tag.removePrefix("-"), "\" ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
advSearch.forEach { entry ->
|
|
||||||
if (entry.exclude) stringBuilder.append("-")
|
|
||||||
stringBuilder.append("${entry.name}:")
|
|
||||||
stringBuilder.append(entry.text)
|
|
||||||
stringBuilder.append(" ")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return stringBuilder.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
data class AdvSearchEntry(val name: String, val text: String, val exclude: Boolean)
|
|
||||||
|
|
||||||
private fun searchMangaByIdRequest(id: String) = GET("$baseUrl/g/$id", headers)
|
private fun searchMangaByIdRequest(id: String) = GET("$baseUrl/g/$id", headers)
|
||||||
|
|
||||||
private fun searchMangaByIdParse(response: Response, id: String): MangasPage {
|
private fun searchMangaByIdParse(response: Response, id: String): MangasPage {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user