From 7565e51f951328c663ee32ffc101a926bf3334e3 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Fri, 27 Oct 2023 17:13:54 -0400 Subject: [PATCH] Fix page previews after E-H update (cherry picked from commit d45563e58d7f5f8f50046e0dbb8dc2e147ac0789) --- .../tachiyomi/source/online/all/EHentai.kt | 77 ++++++++++--------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt index d2279482e..3aad2d3bf 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt @@ -1143,18 +1143,23 @@ class EHentai( .toString(), ), ).awaitSuccess().asJsoup() - val previews = if (doc.selectFirst("div#gdo4 .ths")!!.attr("onClick").contains("inline_set=ts_l")) { - doc.body() - .select("#gdt div a") - .map { - PagePreviewInfo(it.text().toInt(), imageUrl = it.select("img").attr("src")) - } - } else { - parseNormalPreviewSet(doc) - .map { preview -> - PagePreviewInfo(preview.index, imageUrl = preview.toUrl()) - } - } + + val body = doc.body() + val previews = body + .select("#gdt div div") + .map { + val preview = parseNormalPreview(it) + PagePreviewInfo(preview.index, imageUrl = preview.toUrl()) + } + .ifEmpty { + body.select("#gdt div a img") + .map { + PagePreviewInfo( + it.attr("alt").toInt(), + imageUrl = it.attr("src") + ) + } + } return PagePreviewPage( page = page, @@ -1175,37 +1180,33 @@ class EHentai( /** * Parse normal previews with regular expressions */ - private fun parseNormalPreviewSet(doc: Document): List { - return doc.body() - .select("#gdt div div") - .map { it.selectFirst("img")!!.attr("alt").toInt() to it.attr("style") } - .map { (index, style) -> - val styles = style.split(";").mapNotNull { it.trimOrNull() } - val width = styles.first { it.startsWith("width:") } - .removePrefix("width:") - .removeSuffix("px") - .toInt() + private fun parseNormalPreview(element: Element): EHentaiThumbnailPreview { + val index = element.selectFirst("img")!!.attr("alt").toInt() + val styles = element.attr("style").split(";").mapNotNull { it.trimOrNull() } + val width = styles.first { it.startsWith("width:") } + .removePrefix("width:") + .removeSuffix("px") + .toInt() - val height = styles.first { it.startsWith("height:") } - .removePrefix("height:") - .removeSuffix("px") - .toInt() + val height = styles.first { it.startsWith("height:") } + .removePrefix("height:") + .removeSuffix("px") + .toInt() - val background = styles.first { it.startsWith("background:") } - .removePrefix("background:") - .split(" ") + val background = styles.first { it.startsWith("background:") } + .removePrefix("background:") + .split(" ") - val url = background.first { it.startsWith("url(") } - .removePrefix("url(") - .removeSuffix(")") + val url = background.first { it.startsWith("url(") } + .removePrefix("url(") + .removeSuffix(")") - val widthOffset = background.first { it.startsWith("-") } - .removePrefix("-") - .removeSuffix("px") - .toInt() + val widthOffset = background.first { it.startsWith("-") } + .removePrefix("-") + .removeSuffix("px") + .toInt() - EHentaiThumbnailPreview(url, width, height, widthOffset, index) - } + return EHentaiThumbnailPreview(url, width, height, widthOffset, index).also(::println) } data class EHentaiThumbnailPreview( val imageUrl: String,