MadTheme: Retry image load with another CDN (#9047)
fallback to cdn Co-authored-by: Vetle Ledaal <13540478+vetleledaal@users.noreply.github.com>
This commit is contained in:
parent
1ad39b7ab6
commit
e55c893b6d
@ -2,4 +2,4 @@ plugins {
|
||||
id("lib-multisrc")
|
||||
}
|
||||
|
||||
baseVersionCode = 18
|
||||
baseVersionCode = 19
|
||||
|
@ -39,7 +39,22 @@ abstract class MadTheme(
|
||||
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
.rateLimit(1, 1, TimeUnit.SECONDS)
|
||||
.build()
|
||||
.addInterceptor { chain ->
|
||||
val request = chain.request()
|
||||
val url = request.url
|
||||
val response = chain.proceed(request)
|
||||
if (!response.isSuccessful && url.fragment == "image-request") {
|
||||
response.close()
|
||||
val newUrl = url.newBuilder()
|
||||
.host("sb.mbcdn.xyz")
|
||||
.encodedPath(url.encodedPath.replaceFirst("/res/", "/"))
|
||||
.fragment(null)
|
||||
.build()
|
||||
|
||||
return@addInterceptor chain.proceed(request.newBuilder().url(newUrl).build())
|
||||
}
|
||||
response
|
||||
}.build()
|
||||
|
||||
protected open val useLegacyApi = false
|
||||
|
||||
@ -329,6 +344,10 @@ abstract class MadTheme(
|
||||
}
|
||||
}
|
||||
|
||||
override fun imageRequest(page: Page): Request {
|
||||
return GET("${page.imageUrl}#image-request", headers)
|
||||
}
|
||||
|
||||
override fun imageUrlParse(document: Document): String =
|
||||
throw UnsupportedOperationException()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user