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:
bapeey 2025-05-31 21:34:22 -05:00 committed by Draff
parent 1ad39b7ab6
commit e55c893b6d
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 21 additions and 2 deletions

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 18 baseVersionCode = 19

View File

@ -39,7 +39,22 @@ abstract class MadTheme(
override val client: OkHttpClient = network.cloudflareClient.newBuilder() override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimit(1, 1, TimeUnit.SECONDS) .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 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 = override fun imageUrlParse(document: Document): String =
throw UnsupportedOperationException() throw UnsupportedOperationException()