From 79fed76487e3685a1c2d79f2f673ff1dfb7375e4 Mon Sep 17 00:00:00 2001 From: Luqman <16263232+Riztard@users.noreply.github.com> Date: Sat, 16 Aug 2025 20:19:07 +0700 Subject: [PATCH] Comick: separate small thumbnail rate limit, tweak parse cover (#10154) Comick: separate thumbnail rate limit, parse cover tweak now that the thumbnail images on browse is using the small version we can make it use lower rate limit and separate from ch image rate limit tweaking the parse cover to do better at handling "." after "#" in the thumbnail url --- src/all/comickfun/build.gradle | 2 +- .../tachiyomi/extension/all/comickfun/Comick.kt | 12 ++++++++++-- .../tachiyomi/extension/all/comickfun/Helpers.kt | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/all/comickfun/build.gradle b/src/all/comickfun/build.gradle index f866d828b..c4370cdb2 100644 --- a/src/all/comickfun/build.gradle +++ b/src/all/comickfun/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Comick' extClass = '.ComickFactory' - extVersionCode = 59 + extVersionCode = 60 isNsfw = true } diff --git a/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Comick.kt b/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Comick.kt index 004ac37a2..53815962e 100644 --- a/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Comick.kt +++ b/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Comick.kt @@ -281,12 +281,20 @@ abstract class Comick( .build() private val imageClient = network.cloudflareClient.newBuilder() - .rateLimit(14, 8, TimeUnit.SECONDS) // == 1.75req/1sec == 7req/4sec == 105req/60sec + .rateLimit(7, 4, TimeUnit.SECONDS) // == 1.75req/1sec == 14req/8sec == 105req/60sec + .build() + + private val smallThumbnailClient = network.cloudflareClient.newBuilder() + .rateLimit(14, 1, TimeUnit.SECONDS) .build() private fun imageInterceptor(chain: Interceptor.Chain): Response { val request = chain.request() - return if (request.url.host.endsWith("comick.pictures")) { + val url = request.url.toString() + + return if ("comick.pictures" in url && "-s." in url) { + smallThumbnailClient.newCall(request).execute() + } else if ("comick.pictures" in url) { imageClient.newCall(request).execute() } else { chain.proceed(request) diff --git a/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Helpers.kt b/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Helpers.kt index a2587e98e..1d55b2f94 100644 --- a/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Helpers.kt +++ b/src/all/comickfun/src/eu/kanade/tachiyomi/extension/all/comickfun/Helpers.kt @@ -47,7 +47,7 @@ enum class CoverQuality { internal fun parseCover(thumbnailUrl: String?, mdCovers: List, coverQuality: CoverQuality = CoverQuality.WebDefault): String? { fun addOrReplaceCoverQualitySuffix(url: String, qualitySuffix: String): String { - return url.substringBeforeLast('.').replace(Regex("-(m|s)$"), "") + + return url.substringBeforeLast('#').substringBeforeLast('.').replace(Regex("-(m|s)$"), "") + "$qualitySuffix.jpg#${url.substringAfter('#', "")}" }