From 5b8d3a282481a22633243423f8d29fe02908572e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <99822064+revonateB0T@users.noreply.github.com> Date: Thu, 5 Jun 2025 15:17:26 +0800 Subject: [PATCH] Revert "Store pToken in `GalleryPreview` and refine parser" (#2390) --- .../ehviewer/client/data/GalleryPreview.kt | 15 +++---- .../client/parser/GalleryDetailParser.kt | 44 +++++++++++++------ .../com/hippo/ehviewer/coil/Extensions.kt | 5 +-- .../hippo/ehviewer/legacy/SpiderInfoCompat.kt | 12 ++--- .../com/hippo/ehviewer/spider/SpiderInfo.kt | 2 + .../com/hippo/ehviewer/spider/SpiderQueen.kt | 29 ++++++++---- .../ui/screen/GalleryDetailContent.kt | 2 +- 7 files changed, 67 insertions(+), 42 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/data/GalleryPreview.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/data/GalleryPreview.kt index f9b181e68..50c373c39 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/data/GalleryPreview.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/data/GalleryPreview.kt @@ -15,31 +15,26 @@ */ package com.hippo.ehviewer.client.data -import com.hippo.ehviewer.client.getThumbKey -import com.hippo.ehviewer.client.getV2PreviewKey +import com.hippo.ehviewer.client.keyToUrl sealed interface GalleryPreview { val url: String val imageKey: String val position: Int - val pToken: String } data class V1GalleryPreview( - override val url: String, + override val imageKey: String, override val position: Int, - override val pToken: String, ) : GalleryPreview { - override val imageKey get() = getThumbKey(url) + override val url get() = keyToUrl(imageKey) } data class V2GalleryPreview( override val url: String, + override val imageKey: String, override val position: Int, - override val pToken: String, val offsetX: Int, val clipWidth: Int, val clipHeight: Int, -) : GalleryPreview { - override val imageKey get() = getV2PreviewKey(url) -} +) : GalleryPreview diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt index b9a5e1834..ff36b0112 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt @@ -17,6 +17,7 @@ package com.hippo.ehviewer.client.parser import arrow.core.Either import arrow.core.getOrElse +import arrow.core.unzip import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhFilter @@ -39,6 +40,7 @@ import com.hippo.ehviewer.client.exception.OffensiveException import com.hippo.ehviewer.client.exception.ParseException import com.hippo.ehviewer.client.exception.PiningException import com.hippo.ehviewer.client.getThumbKey +import com.hippo.ehviewer.client.getV2PreviewKey import com.hippo.ehviewer.util.toEpochMillis import com.hippo.ehviewer.util.toFloatOrDefault import com.hippo.ehviewer.util.toIntOrDefault @@ -55,21 +57,25 @@ import org.jsoup.select.NodeTraversor object GalleryDetailParser { private val PATTERN_ERROR = Regex("
([^<]+)
") - private val PATTERN_DETAIL = - Regex("var gid = (\\d+);\\s+var token = \"([a-f0-9]+)\";\\s+var apiuid = ([\\-\\d]+);\\s+var apikey = \"([a-f0-9]+)\";") + private val PATTERN_DETAIL = Regex( + "var gid = (\\d+);.+?var token = \"([a-f0-9]+)\";.+?var apiuid = ([\\-\\d]+);.+?var apikey = \"([a-f0-9]+)\";", + RegexOption.DOT_MATCHES_ALL, + ) private val PATTERN_TORRENT = Regex("]*onclick=\"return popUp\\('([^']+)'[^)]+\\)\">Torrent Download \\((\\d+)\\)") private val PATTERN_ARCHIVE = Regex("]*onclick=\"return popUp\\('([^']+)'[^)]+\\)\">Archive Download") - private val PATTERN_COVER = Regex("(\\d+)\\D+(\\d+)[^(]+\\(([^)]+)") + private val PATTERN_COVER = Regex("width:(\\d+)px; height:(\\d+)px.+?url\\((.+?)\\)") private val PATTERN_PAGES = Regex("