Clean up NetworkHelper

(cherry picked from commit e0733c1a4cef28cf413ca79597ba5ad739b5328a)

# Conflicts:
#	core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
This commit is contained in:
arkon 2023-07-15 13:05:25 -04:00 committed by Jobobby04
parent ef343107fe
commit 8062cb8f6f
3 changed files with 43 additions and 55 deletions

View File

@ -13,62 +13,55 @@ import java.util.concurrent.TimeUnit
/* SY --> */ /* SY --> */
open /* SY <-- */ class NetworkHelper( open /* SY <-- */ class NetworkHelper(
context: Context, private val context: Context,
private val preferences: NetworkPreferences, private val preferences: NetworkPreferences,
) { ) {
private val cacheDir = File(context.cacheDir, "network_cache") /* SY --> */
private val cacheSize = 5L * 1024 * 1024 // 5 MiB open /* SY <-- */val cookieJar by lazy { AndroidCookieJar() }
/* SY --> */ /* SY --> */
open /* SY <-- */val cookieJar = AndroidCookieJar() open /* SY <-- */val client by lazy {
val builder = OkHttpClient.Builder()
.cookieJar(cookieJar)
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.callTimeout(2, TimeUnit.MINUTES)
.cache(
Cache(
directory = File(context.cacheDir, "network_cache"),
maxSize = 5L * 1024 * 1024, // 5 MiB
),
)
.addInterceptor(UncaughtExceptionInterceptor())
.addInterceptor(UserAgentInterceptor(::defaultUserAgentProvider))
private val userAgentInterceptor by lazy { if (BuildConfig.DEBUG) {
UserAgentInterceptor(::defaultUserAgentProvider) val httpLoggingInterceptor = HttpLoggingInterceptor().apply {
} level = HttpLoggingInterceptor.Level.HEADERS
private val cloudflareInterceptor by lazy {
CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider)
}
private val baseClientBuilder: OkHttpClient.Builder
get() {
val builder = OkHttpClient.Builder()
.cookieJar(cookieJar)
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.callTimeout(2, TimeUnit.MINUTES)
.addInterceptor(UncaughtExceptionInterceptor())
.addInterceptor(userAgentInterceptor)
if (BuildConfig.DEBUG) {
val httpLoggingInterceptor = HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.HEADERS
}
builder.addNetworkInterceptor(httpLoggingInterceptor)
} }
builder.addNetworkInterceptor(httpLoggingInterceptor)
builder.addInterceptor(cloudflareInterceptor)
when (preferences.dohProvider().get()) {
PREF_DOH_CLOUDFLARE -> builder.dohCloudflare()
PREF_DOH_GOOGLE -> builder.dohGoogle()
PREF_DOH_ADGUARD -> builder.dohAdGuard()
PREF_DOH_QUAD9 -> builder.dohQuad9()
PREF_DOH_ALIDNS -> builder.dohAliDNS()
PREF_DOH_DNSPOD -> builder.dohDNSPod()
PREF_DOH_360 -> builder.doh360()
PREF_DOH_QUAD101 -> builder.dohQuad101()
PREF_DOH_MULLVAD -> builder.dohMullvad()
PREF_DOH_CONTROLD -> builder.dohControlD()
PREF_DOH_NJALLA -> builder.dohNajalla()
PREF_DOH_SHECAN -> builder.dohShecan()
}
return builder
} }
/* SY --> */ builder.addInterceptor(CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider))
open /* SY <-- */val client by lazy { baseClientBuilder.cache(Cache(cacheDir, cacheSize)).build() }
when (preferences.dohProvider().get()) {
PREF_DOH_CLOUDFLARE -> builder.dohCloudflare()
PREF_DOH_GOOGLE -> builder.dohGoogle()
PREF_DOH_ADGUARD -> builder.dohAdGuard()
PREF_DOH_QUAD9 -> builder.dohQuad9()
PREF_DOH_ALIDNS -> builder.dohAliDNS()
PREF_DOH_DNSPOD -> builder.dohDNSPod()
PREF_DOH_360 -> builder.doh360()
PREF_DOH_QUAD101 -> builder.dohQuad101()
PREF_DOH_MULLVAD -> builder.dohMullvad()
PREF_DOH_CONTROLD -> builder.dohControlD()
PREF_DOH_NJALLA -> builder.dohNajalla()
PREF_DOH_SHECAN -> builder.dohShecan()
}
builder.build()
}
/** /**
* @deprecated Since extension-lib 1.5 * @deprecated Since extension-lib 1.5
@ -76,9 +69,7 @@ open /* SY <-- */ class NetworkHelper(
@Deprecated("The regular client handles Cloudflare by default") @Deprecated("The regular client handles Cloudflare by default")
@Suppress("UNUSED") @Suppress("UNUSED")
/* SY --> */ /* SY --> */
open /* SY <-- */val cloudflareClient by lazy { open /* SY <-- */val cloudflareClient by lazy { client }
client
}
fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim() fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim()
} }

View File

@ -45,11 +45,9 @@ abstract class HttpSource : CatalogueSource {
.maybeInjectEHLogger() .maybeInjectEHLogger()
.build() .build()
@Deprecated("The regular client handles Cloudflare by default")
override val cloudflareClient: OkHttpClient override val cloudflareClient: OkHttpClient
get() = delegate?.networkCloudflareClient ?: network.cloudflareClient get() = delegate?.networkHttpClient ?: client
.newBuilder()
.maybeInjectEHLogger()
.build()
override val cookieJar: AndroidCookieJar override val cookieJar: AndroidCookieJar
get() = network.cookieJar get() = network.cookieJar

View File

@ -134,7 +134,6 @@ abstract class DelegatedHttpSource(val delegate: HttpSource) : HttpSource() {
*/ */
open val baseHttpClient: OkHttpClient? = null open val baseHttpClient: OkHttpClient? = null
open val networkHttpClient: OkHttpClient get() = network.client open val networkHttpClient: OkHttpClient get() = network.client
open val networkCloudflareClient: OkHttpClient get() = network.cloudflareClient
/** /**
* Visible name of the source. * Visible name of the source.