From 92c57483331355b2cb3fec96710881ee9ef16385 Mon Sep 17 00:00:00 2001 From: bapeey <90949336+bapeey@users.noreply.github.com> Date: Mon, 20 Nov 2023 11:40:43 -0500 Subject: [PATCH] LectorManga: Fix images couldn't be loaded (#19016) * Fix * Minor change * bruh I delete the ratelimit * Rename --- src/es/lectormanga/build.gradle | 2 +- .../extension/es/lectormanga/LectorManga.kt | 52 +++++++------------ src/es/tumangaonline/build.gradle | 2 +- .../es/tumangaonline/TuMangaOnline.kt | 22 +++++--- 4 files changed, 37 insertions(+), 41 deletions(-) diff --git a/src/es/lectormanga/build.gradle b/src/es/lectormanga/build.gradle index 18ac05c77..2bb4e184f 100755 --- a/src/es/lectormanga/build.gradle +++ b/src/es/lectormanga/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'LectorManga' pkgNameSuffix = 'es.lectormanga' extClass = '.LectorManga' - extVersionCode = 30 + extVersionCode = 31 isNsfw = true } diff --git a/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt b/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt index 3ce846e82..6593f1d37 100755 --- a/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt +++ b/src/es/lectormanga/src/eu/kanade/tachiyomi/extension/es/lectormanga/LectorManga.kt @@ -51,15 +51,26 @@ class LectorManga : ConfigurableSource, ParsedHttpSource() { } private val imageCDNUrls = arrayOf( - "https://img1.followmanga.com", "https://img1.biggestchef.com", - "https://img1.indalchef.com", "https://img1.recipesandcook.com", - "https://img1.cyclingte.com", "https://img1.japanreader.com", + "https://img1.followmanga.com", + "https://img1.biggestchef.com", + "https://img1.indalchef.com", + "https://img1.recipesandcook.com", + "https://img1.cyclingte.com", + "https://img1.japanreader.com", + "https://japanreader.com", ) private val preferences: SharedPreferences by lazy { Injekt.get().getSharedPreferences("source_$id", 0x0000) } + private fun OkHttpClient.Builder.rateLimitImageCDNs(hosts: Array, permits: Int, period: Long): OkHttpClient.Builder { + hosts.forEach { host -> + rateLimitHost(host.toHttpUrlOrNull()!!, permits, period) + } + return this + } + private var loadWebView = true override val client: OkHttpClient = network.client.newBuilder() .rateLimitHost( @@ -67,40 +78,15 @@ class LectorManga : ConfigurableSource, ParsedHttpSource() { preferences.getString(WEB_RATELIMIT_PREF, WEB_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), 60, ) - .rateLimitHost( - imageCDNUrls[0].toHttpUrlOrNull()!!, - preferences.getString(IMAGE_CDN_RATELIMIT_PREF, IMAGE_CDN_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), - 60, - ) - .rateLimitHost( - imageCDNUrls[1].toHttpUrlOrNull()!!, - preferences.getString(IMAGE_CDN_RATELIMIT_PREF, IMAGE_CDN_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), - 60, - ) - .rateLimitHost( - imageCDNUrls[2].toHttpUrlOrNull()!!, - preferences.getString(IMAGE_CDN_RATELIMIT_PREF, IMAGE_CDN_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), - 60, - ) - .rateLimitHost( - imageCDNUrls[3].toHttpUrlOrNull()!!, - preferences.getString(IMAGE_CDN_RATELIMIT_PREF, IMAGE_CDN_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), - 60, - ) - .rateLimitHost( - imageCDNUrls[4].toHttpUrlOrNull()!!, - preferences.getString(IMAGE_CDN_RATELIMIT_PREF, IMAGE_CDN_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), - 60, - ) - .rateLimitHost( - imageCDNUrls[5].toHttpUrlOrNull()!!, + .rateLimitImageCDNs( + imageCDNUrls, preferences.getString(IMAGE_CDN_RATELIMIT_PREF, IMAGE_CDN_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), 60, ) .addInterceptor { chain -> val request = chain.request() - val url = request.url.toString() - if (url.startsWith("https://img1.japanreader.com") && loadWebView) { + val url = request.url + if (url.host.contains("japanreader.com") && loadWebView) { val handler = Handler(Looper.getMainLooper()) val latch = CountDownLatch(1) var webView: WebView? = null @@ -121,7 +107,7 @@ class LectorManga : ConfigurableSource, ParsedHttpSource() { val headers = mutableMapOf() headers["Referer"] = baseUrl - webview.loadUrl(url, headers) + webview.loadUrl(url.toString(), headers) } latch.await() diff --git a/src/es/tumangaonline/build.gradle b/src/es/tumangaonline/build.gradle index e7782beb7..8fa6d0c5c 100644 --- a/src/es/tumangaonline/build.gradle +++ b/src/es/tumangaonline/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'TuMangaOnline' pkgNameSuffix = 'es.tumangaonline' extClass = '.TuMangaOnline' - extVersionCode = 45 + extVersionCode = 46 isNsfw = true } diff --git a/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt b/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt index 48b4c97ac..7468ad907 100644 --- a/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt +++ b/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt @@ -50,18 +50,28 @@ class TuMangaOnline : ConfigurableSource, ParsedHttpSource() { .add("Referer", "$baseUrl/") } - private val imageCDNUrl = "https://img1.japanreader.com" + private val imageCDNUrls = arrayOf( + "https://japanreader.com", + "https://img1.japanreader.com", + ) private val preferences: SharedPreferences by lazy { Injekt.get().getSharedPreferences("source_$id", 0x0000) } + private fun OkHttpClient.Builder.rateLimitImageCDNs(hosts: Array, permits: Int, period: Long): OkHttpClient.Builder { + hosts.forEach { host -> + rateLimitHost(host.toHttpUrlOrNull()!!, permits, period) + } + return this + } + private var loadWebView = true override val client: OkHttpClient = network.client.newBuilder() .addInterceptor { chain -> val request = chain.request() - val url = request.url.toString() - if (url.startsWith(imageCDNUrl) && loadWebView) { + val url = request.url + if (url.host.contains("japanreader.com") && loadWebView) { val handler = Handler(Looper.getMainLooper()) val latch = CountDownLatch(1) var webView: WebView? = null @@ -84,7 +94,7 @@ class TuMangaOnline : ConfigurableSource, ParsedHttpSource() { val headers = mutableMapOf() headers["Referer"] = baseUrl - webview.loadUrl(url, headers) + webview.loadUrl(url.toString(), headers) } latch.await() @@ -98,8 +108,8 @@ class TuMangaOnline : ConfigurableSource, ParsedHttpSource() { preferences.getString(WEB_RATELIMIT_PREF, WEB_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), 60, ) - .rateLimitHost( - imageCDNUrl.toHttpUrlOrNull()!!, + .rateLimitImageCDNs( + imageCDNUrls, preferences.getString(IMAGE_CDN_RATELIMIT_PREF, IMAGE_CDN_RATELIMIT_PREF_DEFAULT_VALUE)!!.toInt(), 60, )