From a8fad4b5c2035db4078025d3fb734ffc3f044177 Mon Sep 17 00:00:00 2001 From: MediocreLegion <162182192+MediocreLegion@users.noreply.github.com> Date: Thu, 31 Jul 2025 10:58:42 -0300 Subject: [PATCH] fix nhentai cdn script selection (#9857) * fix nhentai cdn script selection * apply suggestions --- src/all/nhentai/build.gradle | 2 +- .../tachiyomi/extension/all/nhentai/NHentai.kt | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/all/nhentai/build.gradle b/src/all/nhentai/build.gradle index 9a253e1c0..d47089ea3 100644 --- a/src/all/nhentai/build.gradle +++ b/src/all/nhentai/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'NHentai' extClass = '.NHFactory' - extVersionCode = 51 + extVersionCode = 52 isNsfw = true } diff --git a/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt b/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt index a8b4f1c52..2c1805e7a 100644 --- a/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt +++ b/src/all/nhentai/src/eu/kanade/tachiyomi/extension/all/nhentai/NHentai.kt @@ -255,18 +255,20 @@ open class NHentai( override fun chapterListSelector() = throw UnsupportedOperationException() - override fun pageListParse(document: Document): List { - val script = document.selectFirst("script:containsData(media_server)")!!.data() - val script2 = document.selectFirst(hentaiSelector)!!.data() + override fun pageListParse(document: Document) = throw UnsupportedOperationException() - val mediaServer = Regex("""media_server\s*:\s*(\d+)""").find(script)?.groupValues!![1] - val json = dataRegex.find(script2)?.groupValues!![1] + override fun pageListParse(response: Response): List { + val html = response.body.string() + val json = dataRegex.find(html)?.groupValues!![1] val data = json.parseAs() + val cdnJson = Regex("""image_cdn_urls:\s*(\[.*])""").find(html)?.groupValues!![1] + val cdnList = cdnJson.parseAs>() + return data.images.pages.mapIndexed { i, image -> Page( i, - imageUrl = "${baseUrl.replace("https://", "https://i$mediaServer.")}/galleries/${data.media_id}/${i + 1}" + + imageUrl = "https://${cdnList.random()}/galleries/${data.media_id}/${i + 1}" + when (image.t) { "w" -> ".webp" "p" -> ".png"