EHentai: Fix page filter looping (#12707)
This commit is contained in:
parent
5add0416b0
commit
680dd09892
|
@ -5,7 +5,7 @@ ext {
|
|||
extName = 'E-Hentai'
|
||||
pkgNameSuffix = 'all.ehentai'
|
||||
extClass = '.EHFactory'
|
||||
extVersionCode = 16
|
||||
extVersionCode = 17
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
|
@ -48,12 +48,14 @@ abstract class EHentai(
|
|||
|
||||
override val supportsLatest = true
|
||||
|
||||
private var lastMangaId = ""
|
||||
|
||||
// true if lang is a "natural human language"
|
||||
private fun isLangNatural(): Boolean = lang !in listOf("none", "other")
|
||||
|
||||
private fun genericMangaParse(response: Response): MangasPage {
|
||||
val doc = response.asJsoup()
|
||||
val parsedMangas = doc.select("table.itg td.glname")
|
||||
val mangaElements = doc.select("table.itg td.glname")
|
||||
.let { elements ->
|
||||
if (isLangNatural() && getEnforceLanguagePref()) {
|
||||
elements.filter { element ->
|
||||
|
@ -65,12 +67,17 @@ abstract class EHentai(
|
|||
elements
|
||||
}
|
||||
}
|
||||
.map {
|
||||
val parsedMangas: MutableList<SManga> = mutableListOf()
|
||||
for (i in mangaElements.indices) {
|
||||
val manga = mangaElements[i].let {
|
||||
SManga.create().apply {
|
||||
// Get title
|
||||
it.select("a")?.first()?.apply {
|
||||
title = this.select(".glink").text()
|
||||
url = ExGalleryMetadata.normalizeUrl(attr("href"))
|
||||
if (i == mangaElements.lastIndex) {
|
||||
lastMangaId = ExGalleryMetadata.galleryId(attr("href"))
|
||||
}
|
||||
}
|
||||
// Get image
|
||||
it.parent().select(".glthumb img")?.first().apply {
|
||||
|
@ -79,6 +86,8 @@ abstract class EHentai(
|
|||
}
|
||||
}
|
||||
}
|
||||
parsedMangas.add(manga)
|
||||
}
|
||||
|
||||
// Add to page if required
|
||||
val hasNextPage = doc.select("a[onclick=return false]").last()?.text() == ">"
|
||||
|
@ -159,6 +168,9 @@ abstract class EHentai(
|
|||
filters.forEach {
|
||||
if (it is UriFilter) it.addToUri(uri)
|
||||
}
|
||||
if (uri.toString().contains("f_spf") || uri.toString().contains("f_spt")) {
|
||||
if (page > 1) uri.appendQueryParameter("from", lastMangaId)
|
||||
}
|
||||
return exGet(uri.toString(), page)
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ class ExGalleryMetadata {
|
|||
pathSegments.filterNot(String::isNullOrBlank)
|
||||
}
|
||||
|
||||
private fun galleryId(url: String) = splitGalleryUrl(url)[1]
|
||||
fun galleryId(url: String) = splitGalleryUrl(url)[1]
|
||||
|
||||
private fun galleryToken(url: String) = splitGalleryUrl(url)[2]
|
||||
|
||||
|
|
Loading…
Reference in New Issue