nhentai: Fix favourites selector and add offset filter (#12746)
This commit is contained in:
parent
3728e2990c
commit
991004a098
|
@ -5,7 +5,7 @@ ext {
|
||||||
extName = 'NHentai'
|
extName = 'NHentai'
|
||||||
pkgNameSuffix = 'all.nhentai'
|
pkgNameSuffix = 'all.nhentai'
|
||||||
extClass = '.NHFactory'
|
extClass = '.NHFactory'
|
||||||
extVersionCode = 34
|
extVersionCode = 35
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ open class NHentai(
|
||||||
|
|
||||||
override fun latestUpdatesRequest(page: Int) = GET(if (nhLang.isBlank()) "$baseUrl/?page=$page" else "$baseUrl/language/$nhLang/?page=$page", headers)
|
override fun latestUpdatesRequest(page: Int) = GET(if (nhLang.isBlank()) "$baseUrl/?page=$page" else "$baseUrl/language/$nhLang/?page=$page", headers)
|
||||||
|
|
||||||
override fun latestUpdatesSelector() = "#content .index-container:not(.index-popular) .gallery"
|
override fun latestUpdatesSelector() = "#content .container:not(.index-popular) .gallery"
|
||||||
|
|
||||||
override fun latestUpdatesFromElement(element: Element) = SManga.create().apply {
|
override fun latestUpdatesFromElement(element: Element) = SManga.create().apply {
|
||||||
setUrlWithoutDomain(element.select("a").attr("href"))
|
setUrlWithoutDomain(element.select("a").attr("href"))
|
||||||
|
@ -130,17 +130,19 @@ open class NHentai(
|
||||||
val advQuery = combineQuery(filterList)
|
val advQuery = combineQuery(filterList)
|
||||||
val favoriteFilter = filterList.findInstance<FavoriteFilter>()
|
val favoriteFilter = filterList.findInstance<FavoriteFilter>()
|
||||||
val isOkayToSort = filterList.findInstance<UploadedFilter>()?.state?.isBlank() ?: true
|
val isOkayToSort = filterList.findInstance<UploadedFilter>()?.state?.isBlank() ?: true
|
||||||
|
val offsetPage =
|
||||||
|
filterList.findInstance<OffsetPageFilter>()?.state?.toIntOrNull()?.plus(page) ?: page
|
||||||
|
|
||||||
if (favoriteFilter?.state == true) {
|
if (favoriteFilter?.state == true) {
|
||||||
val url = "$baseUrl/favorites".toHttpUrlOrNull()!!.newBuilder()
|
val url = "$baseUrl/favorites".toHttpUrlOrNull()!!.newBuilder()
|
||||||
.addQueryParameter("q", "$fixedQuery $advQuery")
|
.addQueryParameter("q", "$fixedQuery $advQuery")
|
||||||
.addQueryParameter("page", page.toString())
|
.addQueryParameter("page", offsetPage.toString())
|
||||||
|
|
||||||
return GET(url.toString(), headers)
|
return GET(url.toString(), headers)
|
||||||
} else {
|
} else {
|
||||||
val url = "$baseUrl/search".toHttpUrlOrNull()!!.newBuilder()
|
val url = "$baseUrl/search".toHttpUrlOrNull()!!.newBuilder()
|
||||||
.addQueryParameter("q", "$fixedQuery $nhLangSearch$advQuery")
|
.addQueryParameter("q", "$fixedQuery $nhLangSearch$advQuery")
|
||||||
.addQueryParameter("page", page.toString())
|
.addQueryParameter("page", offsetPage.toString())
|
||||||
|
|
||||||
if (isOkayToSort) {
|
if (isOkayToSort) {
|
||||||
filterList.findInstance<SortFilter>()?.let { f ->
|
filterList.findInstance<SortFilter>()?.let { f ->
|
||||||
|
@ -262,6 +264,7 @@ open class NHentai(
|
||||||
|
|
||||||
Filter.Separator(),
|
Filter.Separator(),
|
||||||
SortFilter(),
|
SortFilter(),
|
||||||
|
OffsetPageFilter(),
|
||||||
Filter.Header("Sort is ignored if favorites only"),
|
Filter.Header("Sort is ignored if favorites only"),
|
||||||
FavoriteFilter()
|
FavoriteFilter()
|
||||||
)
|
)
|
||||||
|
@ -276,6 +279,8 @@ open class NHentai(
|
||||||
class PagesFilter : AdvSearchEntryFilter("Pages")
|
class PagesFilter : AdvSearchEntryFilter("Pages")
|
||||||
open class AdvSearchEntryFilter(name: String) : Filter.Text(name)
|
open class AdvSearchEntryFilter(name: String) : Filter.Text(name)
|
||||||
|
|
||||||
|
class OffsetPageFilter : Filter.Text("Offset results by # pages")
|
||||||
|
|
||||||
override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Not used")
|
override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Not used")
|
||||||
|
|
||||||
private class FavoriteFilter : Filter.CheckBox("Show favorites only", false)
|
private class FavoriteFilter : Filter.CheckBox("Show favorites only", false)
|
||||||
|
|
Loading…
Reference in New Issue