From b6ab8fb8432f971f40f61b1deaab871a1e722227 Mon Sep 17 00:00:00 2001 From: lamaxama <163385206+lamaxama@users.noreply.github.com> Date: Sat, 19 Apr 2025 14:04:06 +0800 Subject: [PATCH] RCO: increase timeout & Tachimanga workaround (#8536) * RCO: Add workaround for Tachimanga. * increase the timeout to 30 seconds --- src/en/readcomiconline/build.gradle | 2 +- .../en/readcomiconline/Readcomiconline.kt | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/en/readcomiconline/build.gradle b/src/en/readcomiconline/build.gradle index d8848c50f..17c9f316f 100644 --- a/src/en/readcomiconline/build.gradle +++ b/src/en/readcomiconline/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'ReadComicOnline' extClass = '.Readcomiconline' - extVersionCode = 32 + extVersionCode = 33 } apply from: "$rootDir/common.gradle" diff --git a/src/en/readcomiconline/src/eu/kanade/tachiyomi/extension/en/readcomiconline/Readcomiconline.kt b/src/en/readcomiconline/src/eu/kanade/tachiyomi/extension/en/readcomiconline/Readcomiconline.kt index 12bedd81d..ed58d2e29 100644 --- a/src/en/readcomiconline/src/eu/kanade/tachiyomi/extension/en/readcomiconline/Readcomiconline.kt +++ b/src/en/readcomiconline/src/eu/kanade/tachiyomi/extension/en/readcomiconline/Readcomiconline.kt @@ -252,12 +252,12 @@ class Readcomiconline : ConfigurableSource, ParsedHttpSource() { innerWv.setLayerType(View.LAYER_TYPE_SOFTWARE, null) innerWv.webViewClient = object : WebViewClient() { - private val emptyResponse = WebResourceResponse("text/plain", "utf-8", 200, "OK", mapOf(), "".byteInputStream()) - override fun shouldInterceptRequest( view: WebView?, request: WebResourceRequest?, ): WebResourceResponse? { + val emptyResponse = WebResourceResponse("text/plain", "utf-8", 200, "OK", mapOf(), "".byteInputStream()) + val url = request?.url?.toString() url ?: return emptyResponse @@ -314,7 +314,7 @@ class Readcomiconline : ConfigurableSource, ParsedHttpSource() { ) } - latch.await(10, TimeUnit.SECONDS) + latch.await(30, TimeUnit.SECONDS) handler.post { webView?.destroy() } if (latch.count == 1L) { @@ -330,11 +330,15 @@ class Readcomiconline : ConfigurableSource, ParsedHttpSource() { .headers(headers) .build() - val response = client.newCall(request).await() - val contentType = response.headers["content-type"] ?: "" - val size = response.headers["content-length"]?.toLongOrNull() ?: 0L + try { + val response = client.newCall(request).await() + val contentType = response.headers["content-type"] ?: "" + val size = response.headers["content-length"]?.toLongOrNull() ?: 0L - response.isSuccessful && contentType.startsWith("image") && size > 100 + response.isSuccessful && contentType.startsWith("image") && size > 100 + } catch (e: Exception) { + false + } } }.awaitAll()