Merge pull request #1552 - palaks-1/source/fixes

[NHentai.xxx] Fixes
This commit is contained in:
Draken
2025-03-10 01:11:38 +07:00
committed by GitHub

View File

@@ -110,10 +110,23 @@ internal class NHentaiXxxParser(context: MangaLoaderContext) :
}
}
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
val totalPages = doc.selectFirstOrThrow(selectTotalPage).text().toInt()
val firstPageUrl = doc.requireElementById(idImg).requireSrc()
return (1..totalPages).map {
val url = replacePageNumber(firstPageUrl, it)
MangaPage(
id = generateUid(url),
url = url,
preview = null,
source = source,
)
}
}
override suspend fun getPageUrl(page: MangaPage): String {
val doc = webClient.httpGet(page.url.toAbsoluteUrl(domain)).parseHtml()
val root = doc.body()
return root.requireElementById(idImg).requireSrc()
return page.url
}
override fun Element.parseTags() = select("a").mapToSet {
@@ -125,4 +138,15 @@ internal class NHentaiXxxParser(context: MangaLoaderContext) :
source = source,
)
}
private fun replacePageNumber(url: String, newPageNumber: Int): String {
val lastSegment = url.substringAfterLast("/")
val extension = lastSegment.substringAfterLast(".", "")
return if (extension.isNotEmpty()) {
url.substringBeforeLast("/") + "/$newPageNumber.$extension"
} else {
url.substringBeforeLast("/") + "/$newPageNumber"
}
}
}