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
This commit is contained in:
Luqman 2025-08-16 20:19:07 +07:00 committed by Draff
parent 2b41b3f29e
commit 79fed76487
Signed by: Draff
GPG Key ID: E8A89F3211677653
3 changed files with 12 additions and 4 deletions

View File

@ -1,7 +1,7 @@
ext {
extName = 'Comick'
extClass = '.ComickFactory'
extVersionCode = 59
extVersionCode = 60
isNsfw = true
}

View File

@ -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)

View File

@ -47,7 +47,7 @@ enum class CoverQuality {
internal fun parseCover(thumbnailUrl: String?, mdCovers: List<MDcovers>, 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('#', "")}"
}