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 50c373c39..f9b181e68 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,26 +15,31 @@ */ package com.hippo.ehviewer.client.data -import com.hippo.ehviewer.client.keyToUrl +import com.hippo.ehviewer.client.getThumbKey +import com.hippo.ehviewer.client.getV2PreviewKey sealed interface GalleryPreview { val url: String val imageKey: String val position: Int + val pToken: String } data class V1GalleryPreview( - override val imageKey: String, + override val url: String, override val position: Int, + override val pToken: String, ) : GalleryPreview { - override val url get() = keyToUrl(imageKey) + override val imageKey get() = getThumbKey(url) } 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 +) : GalleryPreview { + override val imageKey get() = getV2PreviewKey(url) +} 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 ff36b0112..1d1553c69 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,7 +17,6 @@ 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 @@ -40,7 +39,6 @@ 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 @@ -57,25 +55,21 @@ import org.jsoup.select.NodeTraversor object GalleryDetailParser { private val PATTERN_ERROR = Regex("
([^<]+)
") - 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_DETAIL = + Regex("var gid = (\\d+);\\s+var token = \"([a-f0-9]+)\";\\s+var apiuid = ([\\-\\d]+);\\s+var apikey = \"([a-f0-9]+)\";") 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("width:(\\d+)px; height:(\\d+)px.+?url\\((.+?)\\)") + private val PATTERN_COVER = Regex("(\\d+)\\D+(\\d+)[^(]+\\(([^)]+)") private val PATTERN_PAGES = Regex("