From 95679f3fb990a7de573adc45bd88bf668aabe4f0 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 9 Nov 2023 00:35:15 +0800 Subject: [PATCH] Append skip H@H key to original image url on retry Since original images may be served by H@H now --- .../com/hippo/ehviewer/spider/SpiderQueen.kt | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt index d048c8ead..4a2c35022 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt @@ -619,8 +619,9 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS var originImageUrl: String? = null var error: String? = null var forceHtml = false + val original = Settings.downloadOriginImage || orgImg runCatching { - repeat(2) { + repeat(2) { index -> var imageUrl: String? = null var localShowKey: String? @@ -630,11 +631,7 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS var pageUrl = EhUrl.getPageUrl(mSpiderInfo.gid, index, pToken) // Skipping H@H costs 50 points, only use it as last resort if (skipHathKey != null) { - pageUrl += if ("?" in pageUrl) { - "&nl=$skipHathKey" - } else { - "?nl=$skipHathKey" - } + pageUrl += "?nl=$skipHathKey" } EhEngine.getGalleryPage(pageUrl, mSpiderInfo.gid, mSpiderInfo.token) .let { result -> @@ -671,7 +668,10 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS val targetImageUrl: String? val referer: String? - if ((Settings.downloadOriginImage || orgImg) && !originImageUrl.isNullOrBlank()) { + if (original && originImageUrl != null) { + if (index == 1 && skipHathKey != null) { + originImageUrl += "?nl=$skipHathKey" + } val pageUrl = EhUrl.getPageUrl(mSpiderInfo.gid, index, pToken) targetImageUrl = EhEngine.getOriginalImageUrl(originImageUrl!!, pageUrl) referer = EhUrl.referer @@ -771,14 +771,9 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS private val PTOKEN_FAILED_MESSAGE = appCtx.getString(R.string.error_get_ptoken_error) private val ERROR_TIMEOUT = appCtx.getString(R.string.error_timeout) private val DECODE_ERROR = appCtx.getString(R.string.error_decoding_failed) -private val URL_509_ARRAY = arrayOf( - "https://ehgt.org/g/509.gif", - "https://ehgt.org/g/509s.gif", - "https://exhentai.org/img/509.gif", - "https://exhentai.org/img/509s.gif", -) +private val URL_509_PATTERN = Regex("\\.org/.+/509s?\\.gif") private const val WORKER_DEBUG_TAG = "SpiderQueenWorker" private fun check509(url: String) { - if (url in URL_509_ARRAY) throw QuotaExceededException() + if (URL_509_PATTERN in url) throw QuotaExceededException() }