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'
This commit is contained in:
Chopper 2024-06-22 04:26:13 -03:00 committed by Draff
parent e46b669169
commit 314424aa43
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
2 changed files with 41 additions and 7 deletions

View File

@ -3,7 +3,11 @@ ext {
extClass = '.SSSScanlator' extClass = '.SSSScanlator'
themePkg = 'mangathemesia' themePkg = 'mangathemesia'
baseUrl = 'https://sssscanlator.com.br' baseUrl = 'https://sssscanlator.com.br'
overrideVersionCode = 2 overrideVersionCode = 3
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"
dependencies {
implementation project(':lib:randomua')
}

View File

@ -1,29 +1,48 @@
package eu.kanade.tachiyomi.extension.pt.sssscanlator 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.multisrc.mangathemesia.MangaThemesia
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
class SSSScanlator : MangaThemesia( class SSSScanlator :
"SSSScanlator", MangaThemesia(
"https://sssscanlator.com.br", "SSSScanlator",
"pt-BR", "https://sssscanlator.com.br",
dateFormat = SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")), "pt-BR",
) { dateFormat = SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
),
ConfigurableSource {
private val preferences = Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = super.client.newBuilder()
.setRandomUserAgent(
preferences.getPrefUAType(),
preferences.getPrefCustomUA(),
)
.readTimeout(1, TimeUnit.MINUTES)
.rateLimit(1, 2, TimeUnit.SECONDS) .rateLimit(1, 2, TimeUnit.SECONDS)
.build() .build()
override fun imageRequest(page: Page): Request { override fun imageRequest(page: Page): Request {
val newHeaders = headersBuilder() val newHeaders = headersBuilder()
.set("Referer", page.url) .set("Referer", page.url)
.set("Alt-Used", baseUrl.substringAfterLast("/"))
.set("Accept", "image/avif,image/webp,*/*") .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("Accept-Language", "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3")
.set("Sec-Fetch-Dest", "image") .set("Sec-Fetch-Dest", "image")
@ -31,6 +50,17 @@ class SSSScanlator : MangaThemesia(
.set("Sec-Fetch-Site", "same-origin") .set("Sec-Fetch-Site", "same-origin")
.build() .build()
page.apply {
imageUrl = imageUrl?.replace("$JETPACK_CDN/", "")
}
return GET(page.imageUrl!!, newHeaders) return GET(page.imageUrl!!, newHeaders)
} }
override fun setupPreferenceScreen(screen: PreferenceScreen) {
addRandomUAPreferenceToScreen(screen)
}
companion object {
val JETPACK_CDN = "i0.wp.com"
}
} }