LectorManga: Fix images couldn't be loaded (#19016)

* Fix

* Minor change

* bruh I delete the ratelimit

* Rename
This commit is contained in:
bapeey 2023-11-20 11:40:43 -05:00 committed by GitHub
parent 5176d3bdab
commit 92c5748333
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 37 additions and 41 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'LectorManga'
pkgNameSuffix = 'es.lectormanga'
extClass = '.LectorManga'
extVersionCode = 30
extVersionCode = 31
isNsfw = true
}

View File

@ -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<Application>().getSharedPreferences("source_$id", 0x0000)
}
private fun OkHttpClient.Builder.rateLimitImageCDNs(hosts: Array<String>, 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<String, String>()
headers["Referer"] = baseUrl
webview.loadUrl(url, headers)
webview.loadUrl(url.toString(), headers)
}
latch.await()

View File

@ -5,7 +5,7 @@ ext {
extName = 'TuMangaOnline'
pkgNameSuffix = 'es.tumangaonline'
extClass = '.TuMangaOnline'
extVersionCode = 45
extVersionCode = 46
isNsfw = true
}

View File

@ -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<Application>().getSharedPreferences("source_$id", 0x0000)
}
private fun OkHttpClient.Builder.rateLimitImageCDNs(hosts: Array<String>, 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<String, String>()
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,
)