[NHentai] fix several bugs about search (#4657)
* [NHentai] fix search * 1. remove `+` before language since they have different semantics (add `+` before means this is not concern as a namespace, that time `+` will be encoded to `%2B`). 2. change fallback value of `fixedQuery` to empty string rather than a quote 3. change search url since there have a redirection. * Update build.gradle * Remove fixed query
This commit is contained in:
parent
dc6189f4c2
commit
abf5f64873
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'NHentai'
|
||||
extClass = '.NHFactory'
|
||||
extVersionCode = 43
|
||||
extVersionCode = 44
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
|
@ -136,9 +136,8 @@ open class NHentai(
|
|||
}
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||
val fixedQuery = query.ifEmpty { "\"\"" }
|
||||
val filterList = if (filters.isEmpty()) getFilterList() else filters
|
||||
val nhLangSearch = if (nhLang.isBlank()) "" else "+language:$nhLang "
|
||||
val nhLangSearch = if (nhLang.isBlank()) "" else "language:$nhLang "
|
||||
val advQuery = combineQuery(filterList)
|
||||
val favoriteFilter = filterList.findInstance<FavoriteFilter>()
|
||||
val isOkayToSort = filterList.findInstance<UploadedFilter>()?.state?.isBlank() ?: true
|
||||
|
@ -146,14 +145,14 @@ open class NHentai(
|
|||
filterList.findInstance<OffsetPageFilter>()?.state?.toIntOrNull()?.plus(page) ?: page
|
||||
|
||||
if (favoriteFilter?.state == true) {
|
||||
val url = "$baseUrl/favorites".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("q", "$fixedQuery $advQuery")
|
||||
val url = "$baseUrl/favorites/".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("q", "$query $advQuery")
|
||||
.addQueryParameter("page", offsetPage.toString())
|
||||
|
||||
return GET(url.build(), headers)
|
||||
} else {
|
||||
val url = "$baseUrl/search".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("q", "$fixedQuery $nhLangSearch$advQuery")
|
||||
val url = "$baseUrl/search/".toHttpUrl().newBuilder()
|
||||
.addQueryParameter("q", "$query $nhLangSearch$advQuery")
|
||||
.addQueryParameter("page", offsetPage.toString())
|
||||
|
||||
if (isOkayToSort) {
|
||||
|
@ -173,7 +172,7 @@ open class NHentai(
|
|||
.filterNot(String::isBlank)
|
||||
.forEach { tag ->
|
||||
if (tag.startsWith("-")) append("-")
|
||||
append(filter.name, "\"", tag.removePrefix("-"), "\" ")
|
||||
append(filter.name, ":\"", tag.removePrefix("-"), "\" ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue