From 314424aa431ddc2c44b3f05eed3e9dbbd17efd95 Mon Sep 17 00:00:00 2001 From: Chopper <156493704+choppeh@users.noreply.github.com> Date: Sat, 22 Jun 2024 04:26:13 -0300 Subject: [PATCH] SSSScanlator: Add random UA (#3669) * Add connection timeout and random UA * Remove jetpackCDN path * Fix lint * Add readTimeout * Remove 'when' statement * Remove 'lazy' in 'getSharedPreferences' --- src/pt/sssscanlator/build.gradle | 6 ++- .../extension/pt/sssscanlator/SSSScanlator.kt | 42 ++++++++++++++++--- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/pt/sssscanlator/build.gradle b/src/pt/sssscanlator/build.gradle index b0eb090b6..746772de2 100644 --- a/src/pt/sssscanlator/build.gradle +++ b/src/pt/sssscanlator/build.gradle @@ -3,7 +3,11 @@ ext { extClass = '.SSSScanlator' themePkg = 'mangathemesia' baseUrl = 'https://sssscanlator.com.br' - overrideVersionCode = 2 + overrideVersionCode = 3 } apply from: "$rootDir/common.gradle" + +dependencies { + implementation project(':lib:randomua') +} diff --git a/src/pt/sssscanlator/src/eu/kanade/tachiyomi/extension/pt/sssscanlator/SSSScanlator.kt b/src/pt/sssscanlator/src/eu/kanade/tachiyomi/extension/pt/sssscanlator/SSSScanlator.kt index 6d355cc4f..22c3c3046 100644 --- a/src/pt/sssscanlator/src/eu/kanade/tachiyomi/extension/pt/sssscanlator/SSSScanlator.kt +++ b/src/pt/sssscanlator/src/eu/kanade/tachiyomi/extension/pt/sssscanlator/SSSScanlator.kt @@ -1,29 +1,48 @@ package eu.kanade.tachiyomi.extension.pt.sssscanlator +import android.app.Application +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.lib.randomua.addRandomUAPreferenceToScreen +import eu.kanade.tachiyomi.lib.randomua.getPrefCustomUA +import eu.kanade.tachiyomi.lib.randomua.getPrefUAType +import eu.kanade.tachiyomi.lib.randomua.setRandomUserAgent import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.model.Page import okhttp3.OkHttpClient import okhttp3.Request +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import java.text.SimpleDateFormat import java.util.Locale import java.util.concurrent.TimeUnit -class SSSScanlator : MangaThemesia( - "SSSScanlator", - "https://sssscanlator.com.br", - "pt-BR", - dateFormat = SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")), -) { +class SSSScanlator : + MangaThemesia( + "SSSScanlator", + "https://sssscanlator.com.br", + "pt-BR", + dateFormat = SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")), + ), + ConfigurableSource { + + private val preferences = Injekt.get().getSharedPreferences("source_$id", 0x0000) override val client: OkHttpClient = super.client.newBuilder() + .setRandomUserAgent( + preferences.getPrefUAType(), + preferences.getPrefCustomUA(), + ) + .readTimeout(1, TimeUnit.MINUTES) .rateLimit(1, 2, TimeUnit.SECONDS) .build() override fun imageRequest(page: Page): Request { val newHeaders = headersBuilder() .set("Referer", page.url) + .set("Alt-Used", baseUrl.substringAfterLast("/")) .set("Accept", "image/avif,image/webp,*/*") .set("Accept-Language", "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3") .set("Sec-Fetch-Dest", "image") @@ -31,6 +50,17 @@ class SSSScanlator : MangaThemesia( .set("Sec-Fetch-Site", "same-origin") .build() + page.apply { + imageUrl = imageUrl?.replace("$JETPACK_CDN/", "") + } return GET(page.imageUrl!!, newHeaders) } + + override fun setupPreferenceScreen(screen: PreferenceScreen) { + addRandomUAPreferenceToScreen(screen) + } + + companion object { + val JETPACK_CDN = "i0.wp.com" + } }