TempleScan: add random UA (#9130)

Add random UA
This commit is contained in:
Chopper 2025-06-07 23:53:04 -03:00 committed by Draff
parent 801106dee5
commit aa8ab20b95
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 23 additions and 2 deletions

View File

@ -1,8 +1,12 @@
ext { ext {
extName = 'Temple Scan' extName = 'Temple Scan'
extClass = '.TempleScan' extClass = '.TempleScan'
extVersionCode = 45 extVersionCode = 46
isNsfw = true isNsfw = true
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"
dependencies {
implementation project(':lib:randomua')
}

View File

@ -1,7 +1,13 @@
package eu.kanade.tachiyomi.extension.en.templescan package eu.kanade.tachiyomi.extension.en.templescan
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.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.Filter import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.MangasPage
@ -10,6 +16,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferences
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Request import okhttp3.Request
@ -18,7 +25,7 @@ import rx.Observable
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import kotlin.math.min import kotlin.math.min
class TempleScan : HttpSource() { class TempleScan : HttpSource(), ConfigurableSource {
override val name = "Temple Scan" override val name = "Temple Scan"
@ -30,12 +37,18 @@ class TempleScan : HttpSource() {
override val versionId = 3 override val versionId = 3
private val preferences = getPreferences()
override fun headersBuilder() = super.headersBuilder() override fun headersBuilder() = super.headersBuilder()
.set("referer", "$baseUrl/") .set("referer", "$baseUrl/")
.set("origin", baseUrl) .set("origin", baseUrl)
override val client = network.cloudflareClient.newBuilder() override val client = network.cloudflareClient.newBuilder()
.rateLimit(1) .rateLimit(1)
.setRandomUserAgent(
preferences.getPrefUAType(),
preferences.getPrefCustomUA(),
)
.build() .build()
private val json: Json by injectLazy() private val json: Json by injectLazy()
@ -201,6 +214,10 @@ class TempleScan : HttpSource() {
} }
} }
override fun setupPreferenceScreen(screen: PreferenceScreen) {
addRandomUAPreferenceToScreen(screen)
}
private fun String.unescape(): String { private fun String.unescape(): String {
return UNESCAPE_REGEX.replace(this, "$1") return UNESCAPE_REGEX.replace(this, "$1")
} }