From c388889e024f3a0438eb21b898e56fe74fa090ad Mon Sep 17 00:00:00 2001 From: kasperskier <95685115+kasperskier@users.noreply.github.com> Date: Wed, 1 Jun 2022 10:35:48 +0800 Subject: [PATCH] Xinmeitulu: intercept to fix media type of image response body (#11999) * Xinmeitulu: intercept to fix media type of image response body * Move interceptor into companion object --- src/all/xinmeitulu/build.gradle | 2 +- .../extension/all/xinmeitulu/Xinmeitulu.kt | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/all/xinmeitulu/build.gradle b/src/all/xinmeitulu/build.gradle index a2319aaab..2cc4f2276 100644 --- a/src/all/xinmeitulu/build.gradle +++ b/src/all/xinmeitulu/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Xinmeitulu' pkgNameSuffix = 'all.xinmeitulu' extClass = '.Xinmeitulu' - extVersionCode = 1 + extVersionCode = 2 isNsfw = true } diff --git a/src/all/xinmeitulu/src/eu/kanade/tachiyomi/extension/all/xinmeitulu/Xinmeitulu.kt b/src/all/xinmeitulu/src/eu/kanade/tachiyomi/extension/all/xinmeitulu/Xinmeitulu.kt index 1814b41a4..eb077d7fc 100644 --- a/src/all/xinmeitulu/src/eu/kanade/tachiyomi/extension/all/xinmeitulu/Xinmeitulu.kt +++ b/src/all/xinmeitulu/src/eu/kanade/tachiyomi/extension/all/xinmeitulu/Xinmeitulu.kt @@ -9,6 +9,10 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Interceptor +import okhttp3.MediaType.Companion.toMediaType +import okhttp3.Response +import okhttp3.ResponseBody.Companion.asResponseBody import org.jsoup.nodes.Document import org.jsoup.nodes.Element import rx.Observable @@ -19,6 +23,8 @@ class Xinmeitulu : ParsedHttpSource() { override val name = "Xinmeitulu" override val supportsLatest = false + override val client = network.client.newBuilder().addInterceptor(::contentTypeIntercept).build() + // Latest override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException("Not Used.") @@ -79,4 +85,17 @@ class Xinmeitulu : ParsedHttpSource() { } override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") + + companion object { + private fun contentTypeIntercept(chain: Interceptor.Chain): Response { + val response = chain.proceed(chain.request()) + if (response.header("content-type")?.startsWith("image") == true) { + val body = response.body!!.source().asResponseBody(jpegMediaType) + return response.newBuilder().body(body).build() + } + return response + } + + private val jpegMediaType = "image/jpeg".toMediaType() + } }