From e3362fd497704ae8d84c84b00a4ff16d029cbfa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20J=C3=B6ns?= <34899572+jopejoe1@users.noreply.github.com> Date: Wed, 24 Jan 2024 19:04:13 +0000 Subject: [PATCH] Setsu Scans: Fix some more pages not loading (#590) --- .../madara/setsuscans/src/SetsuScans.kt | 29 ++++++++++++++++++- .../multisrc/madara/MadaraGenerator.kt | 2 +- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/multisrc/overrides/madara/setsuscans/src/SetsuScans.kt b/multisrc/overrides/madara/setsuscans/src/SetsuScans.kt index f0b5844c3..9688788d8 100644 --- a/multisrc/overrides/madara/setsuscans/src/SetsuScans.kt +++ b/multisrc/overrides/madara/setsuscans/src/SetsuScans.kt @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.extension.en.setsuscans import eu.kanade.tachiyomi.multisrc.madara.Madara import eu.kanade.tachiyomi.network.interceptor.rateLimit import eu.kanade.tachiyomi.source.model.MangasPage +import okhttp3.Interceptor import okhttp3.Response class SetsuScans : Madara( @@ -17,7 +18,6 @@ class SetsuScans : Madara( if (url.host == "i0.wp.com") { val newUrl = url.newBuilder() .removeAllQueryParameters("fit") - .removeAllQueryParameters("ssl") .build() return@addNetworkInterceptor chain.proceed( @@ -29,9 +29,36 @@ class SetsuScans : Madara( return@addNetworkInterceptor chain.proceed(request) } + .addInterceptor(::handleFailedImages) .rateLimit(2) .build() + private fun handleFailedImages(chain: Interceptor.Chain): Response { + val response: Response = chain.proceed(chain.request()) + val url = response.request.url + if (url.host == "i0.wp.com" && response.code == 404) { + val ssl = response.request.url.queryParameter("ssl") + var newUrl = url.newBuilder() + .removeAllQueryParameters("ssl") + + if (ssl.isNullOrBlank()) { + newUrl = newUrl.addQueryParameter("ssl", "0") + } else if (ssl.toInt() >= 5) { + return response + } else if (ssl.toInt() == 0) { + newUrl = newUrl.addQueryParameter("ssl", "2") + } else if (ssl.toInt() >= 2) { + newUrl = newUrl.addQueryParameter("ssl", (ssl.toInt() + 1).toString()) + } + + val newRequest = chain.request().newBuilder() + .url(newUrl.build()) + .build() + return client.newCall(newRequest).execute() + } + return response + } + override val useNewChapterEndpoint = true override fun searchPage(page: Int): String { diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt index fe2c10e7f..0fdd7e028 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt @@ -436,7 +436,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Scan Hentai Menu", "https://scan.hentai.menu", "fr", isNsfw = true, overrideVersionCode = 1), SingleLang("Scantrad-VF", "https://scantrad-vf.co", "fr", className = "ScantradVF"), SingleLang("Sdl scans", "https://sdlscans.com", "es", className = "SdlScans"), - SingleLang("Setsu Scans", "https://setsuscans.com", "en", overrideVersionCode = 1), + SingleLang("Setsu Scans", "https://setsuscans.com", "en", overrideVersionCode = 2), SingleLang("Shadowtrad", "https://shadowtrad.net", "fr"), SingleLang("ShavelProiection", "https://www.shavelproiection.com", "it", true), SingleLang("Shayami", "https://shayami.com", "es"),