diff --git a/lib-multisrc/madtheme/build.gradle.kts b/lib-multisrc/madtheme/build.gradle.kts index 92c1c905d..ed1c83ed6 100644 --- a/lib-multisrc/madtheme/build.gradle.kts +++ b/lib-multisrc/madtheme/build.gradle.kts @@ -2,4 +2,4 @@ plugins { id("lib-multisrc") } -baseVersionCode = 18 +baseVersionCode = 19 diff --git a/lib-multisrc/madtheme/src/eu/kanade/tachiyomi/multisrc/madtheme/MadTheme.kt b/lib-multisrc/madtheme/src/eu/kanade/tachiyomi/multisrc/madtheme/MadTheme.kt index 1b62b2b9a..2849570fd 100644 --- a/lib-multisrc/madtheme/src/eu/kanade/tachiyomi/multisrc/madtheme/MadTheme.kt +++ b/lib-multisrc/madtheme/src/eu/kanade/tachiyomi/multisrc/madtheme/MadTheme.kt @@ -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()