Fix page previews after E-H update

(cherry picked from commit d45563e58d7f5f8f50046e0dbb8dc2e147ac0789)
This commit is contained in:
Jobobby04 2023-10-27 17:13:54 -04:00
parent 230aec370c
commit 7565e51f95

View File

@ -1143,18 +1143,23 @@ class EHentai(
.toString(), .toString(),
), ),
).awaitSuccess().asJsoup() ).awaitSuccess().asJsoup()
val previews = if (doc.selectFirst("div#gdo4 .ths")!!.attr("onClick").contains("inline_set=ts_l")) {
doc.body() val body = doc.body()
.select("#gdt div a") val previews = body
.map { .select("#gdt div div")
PagePreviewInfo(it.text().toInt(), imageUrl = it.select("img").attr("src")) .map {
} val preview = parseNormalPreview(it)
} else { PagePreviewInfo(preview.index, imageUrl = preview.toUrl())
parseNormalPreviewSet(doc) }
.map { preview -> .ifEmpty {
PagePreviewInfo(preview.index, imageUrl = preview.toUrl()) body.select("#gdt div a img")
} .map {
} PagePreviewInfo(
it.attr("alt").toInt(),
imageUrl = it.attr("src")
)
}
}
return PagePreviewPage( return PagePreviewPage(
page = page, page = page,
@ -1175,37 +1180,33 @@ class EHentai(
/** /**
* Parse normal previews with regular expressions * Parse normal previews with regular expressions
*/ */
private fun parseNormalPreviewSet(doc: Document): List<EHentaiThumbnailPreview> { private fun parseNormalPreview(element: Element): EHentaiThumbnailPreview {
return doc.body() val index = element.selectFirst("img")!!.attr("alt").toInt()
.select("#gdt div div") val styles = element.attr("style").split(";").mapNotNull { it.trimOrNull() }
.map { it.selectFirst("img")!!.attr("alt").toInt() to it.attr("style") } val width = styles.first { it.startsWith("width:") }
.map { (index, style) -> .removePrefix("width:")
val styles = style.split(";").mapNotNull { it.trimOrNull() } .removeSuffix("px")
val width = styles.first { it.startsWith("width:") } .toInt()
.removePrefix("width:")
.removeSuffix("px")
.toInt()
val height = styles.first { it.startsWith("height:") } val height = styles.first { it.startsWith("height:") }
.removePrefix("height:") .removePrefix("height:")
.removeSuffix("px") .removeSuffix("px")
.toInt() .toInt()
val background = styles.first { it.startsWith("background:") } val background = styles.first { it.startsWith("background:") }
.removePrefix("background:") .removePrefix("background:")
.split(" ") .split(" ")
val url = background.first { it.startsWith("url(") } val url = background.first { it.startsWith("url(") }
.removePrefix("url(") .removePrefix("url(")
.removeSuffix(")") .removeSuffix(")")
val widthOffset = background.first { it.startsWith("-") } val widthOffset = background.first { it.startsWith("-") }
.removePrefix("-") .removePrefix("-")
.removeSuffix("px") .removeSuffix("px")
.toInt() .toInt()
EHentaiThumbnailPreview(url, width, height, widthOffset, index) return EHentaiThumbnailPreview(url, width, height, widthOffset, index).also(::println)
}
} }
data class EHentaiThumbnailPreview( data class EHentaiThumbnailPreview(
val imageUrl: String, val imageUrl: String,