nhentai fixes (#11020)
* fix nhentai images * increase version * fix popularmanga for all languages * dont include popular now in latest * fix empty query
This commit is contained in:
parent
d9e6047ce2
commit
1a77eee1aa
|
@ -5,7 +5,7 @@ ext {
|
||||||
extName = 'NHentai'
|
extName = 'NHentai'
|
||||||
pkgNameSuffix = 'all.nhentai'
|
pkgNameSuffix = 'all.nhentai'
|
||||||
extClass = '.NHFactory'
|
extClass = '.NHFactory'
|
||||||
extVersionCode = 30
|
extVersionCode = 31
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,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 .gallery"
|
override fun latestUpdatesSelector() = "#content .index-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"))
|
||||||
|
@ -99,7 +99,7 @@ open class NHentai(
|
||||||
|
|
||||||
override fun latestUpdatesNextPageSelector() = "#content > section.pagination > a.next"
|
override fun latestUpdatesNextPageSelector() = "#content > section.pagination > a.next"
|
||||||
|
|
||||||
override fun popularMangaRequest(page: Int) = GET(if (nhLang.isBlank()) "$baseUrl/?page=$page" else "$baseUrl/language/$nhLang/popular?page=$page", headers)
|
override fun popularMangaRequest(page: Int) = GET(if (nhLang.isBlank()) "$baseUrl/search/?q=\"\"&sort=popular&page=$page" else "$baseUrl/language/$nhLang/popular?page=$page", headers)
|
||||||
|
|
||||||
override fun popularMangaFromElement(element: Element) = latestUpdatesFromElement(element)
|
override fun popularMangaFromElement(element: Element) = latestUpdatesFromElement(element)
|
||||||
|
|
||||||
|
@ -131,6 +131,7 @@ open class NHentai(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||||
|
val fixedQuery = query.ifEmpty { "\"\"" }
|
||||||
val filterList = if (filters.isEmpty()) getFilterList() else filters
|
val filterList = if (filters.isEmpty()) getFilterList() else filters
|
||||||
val nhLangSearch = if (nhLang.isBlank()) "" else "+$nhLang "
|
val nhLangSearch = if (nhLang.isBlank()) "" else "+$nhLang "
|
||||||
val advQuery = combineQuery(filterList)
|
val advQuery = combineQuery(filterList)
|
||||||
|
@ -139,13 +140,13 @@ open class NHentai(
|
||||||
|
|
||||||
if (favoriteFilter?.state == true) {
|
if (favoriteFilter?.state == true) {
|
||||||
val url = "$baseUrl/favorites".toHttpUrlOrNull()!!.newBuilder()
|
val url = "$baseUrl/favorites".toHttpUrlOrNull()!!.newBuilder()
|
||||||
.addQueryParameter("q", "$query $advQuery")
|
.addQueryParameter("q", "$fixedQuery $advQuery")
|
||||||
.addQueryParameter("page", page.toString())
|
.addQueryParameter("page", page.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", "$query $nhLangSearch$advQuery")
|
.addQueryParameter("q", "$fixedQuery $nhLangSearch$advQuery")
|
||||||
.addQueryParameter("page", page.toString())
|
.addQueryParameter("page", page.toString())
|
||||||
|
|
||||||
if (isOkayToSort) {
|
if (isOkayToSort) {
|
||||||
|
@ -243,8 +244,11 @@ open class NHentai(
|
||||||
override fun chapterListSelector() = throw UnsupportedOperationException("Not used")
|
override fun chapterListSelector() = throw UnsupportedOperationException("Not used")
|
||||||
|
|
||||||
override fun pageListParse(document: Document): List<Page> {
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
|
val script = document.select("script:containsData(media_server)").first().data()
|
||||||
|
val media_server = Regex("""media_server\s*:\s*(\d+)""").find(script)?.groupValues!!.get(1)
|
||||||
|
|
||||||
return document.select("div.thumbs a > img").mapIndexed { i, img ->
|
return document.select("div.thumbs a > img").mapIndexed { i, img ->
|
||||||
Page(i, "", img.attr("abs:data-src").replace("t.nh", "i.nh").replace("t.", "."))
|
Page(i, "", img.attr("abs:data-src").replace("t.nh", "i.nh").replace("t\\d+.nh".toRegex(), "i$media_server.nh").replace("t.", "."))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue