diff --git a/src/en/templescan/build.gradle b/src/en/templescan/build.gradle index 7484fd9ec..49508e66d 100644 --- a/src/en/templescan/build.gradle +++ b/src/en/templescan/build.gradle @@ -1,8 +1,12 @@ ext { extName = 'Temple Scan' extClass = '.TempleScan' - extVersionCode = 45 + extVersionCode = 46 isNsfw = true } apply from: "$rootDir/common.gradle" + +dependencies { + implementation project(':lib:randomua') +} diff --git a/src/en/templescan/src/eu/kanade/tachiyomi/extension/en/templescan/TempleScan.kt b/src/en/templescan/src/eu/kanade/tachiyomi/extension/en/templescan/TempleScan.kt index 25d3e7c0f..3c7f49a9b 100644 --- a/src/en/templescan/src/eu/kanade/tachiyomi/extension/en/templescan/TempleScan.kt +++ b/src/en/templescan/src/eu/kanade/tachiyomi/extension/en/templescan/TempleScan.kt @@ -1,7 +1,13 @@ 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.interceptor.rateLimit +import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.FilterList 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.online.HttpSource import eu.kanade.tachiyomi.util.asJsoup +import keiyoushi.utils.getPreferences import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json import okhttp3.Request @@ -18,7 +25,7 @@ import rx.Observable import uy.kohesive.injekt.injectLazy import kotlin.math.min -class TempleScan : HttpSource() { +class TempleScan : HttpSource(), ConfigurableSource { override val name = "Temple Scan" @@ -30,12 +37,18 @@ class TempleScan : HttpSource() { override val versionId = 3 + private val preferences = getPreferences() + override fun headersBuilder() = super.headersBuilder() .set("referer", "$baseUrl/") .set("origin", baseUrl) override val client = network.cloudflareClient.newBuilder() .rateLimit(1) + .setRandomUserAgent( + preferences.getPrefUAType(), + preferences.getPrefCustomUA(), + ) .build() 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 { return UNESCAPE_REGEX.replace(this, "$1") }