From 60b03dcd0e1c76a0c1868b7b9bbaf1ccc19b4239 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Fri, 7 Jun 2024 14:49:29 +0800 Subject: [PATCH] Fix integrity check for non-H@H resampled images Their URLs contain hashes for both original and resampled images. --- app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt index cd4431ec4..989eeb0e8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt @@ -196,7 +196,7 @@ class SpiderDen(val info: GalleryInfo) { outFile.openOutputStream().use { response.bodyAsChannel().copyTo(it.channel) } - val expected = FileHashRegex.find(url)?.run { groupValues[0] } + val expected = FileHashRegex.findAll(url).last().groupValues[1] val actual = outFile.sha1() check(expected == actual) { "File hash mismatch: expected $expected, but got $actual\nURL: $url" } } @@ -344,7 +344,7 @@ class SpiderDen(val info: GalleryInfo) { } private val FileNameRegex = Regex("^\\d{8}\\.\\w{3,4}") -private val FileHashRegex = Regex("[0-9a-f]{40}") +private val FileHashRegex = Regex("/([0-9a-f]{40})(?:-\\d+){3}-\\w+") fun perFilename(index: Int, extension: String = ""): String { return "%08d.%s".format(index + 1, extension)