diff --git a/core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt b/core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt index 6fd1df33b..fca1f9b1a 100755 --- a/core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt +++ b/core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt @@ -13,62 +13,55 @@ import java.util.concurrent.TimeUnit /* SY --> */ open /* SY <-- */ class NetworkHelper( - context: Context, + private val context: Context, private val preferences: NetworkPreferences, ) { - private val cacheDir = File(context.cacheDir, "network_cache") - private val cacheSize = 5L * 1024 * 1024 // 5 MiB + /* SY --> */ + open /* SY <-- */val cookieJar by lazy { AndroidCookieJar() } /* 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 { - UserAgentInterceptor(::defaultUserAgentProvider) - } - 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) + if (BuildConfig.DEBUG) { + val httpLoggingInterceptor = HttpLoggingInterceptor().apply { + level = HttpLoggingInterceptor.Level.HEADERS } - - 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 + builder.addNetworkInterceptor(httpLoggingInterceptor) } - /* SY --> */ - open /* SY <-- */val client by lazy { baseClientBuilder.cache(Cache(cacheDir, cacheSize)).build() } + builder.addInterceptor(CloudflareInterceptor(context, cookieJar, ::defaultUserAgentProvider)) + + 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 @@ -76,9 +69,7 @@ open /* SY <-- */ class NetworkHelper( @Deprecated("The regular client handles Cloudflare by default") @Suppress("UNUSED") /* SY --> */ - open /* SY <-- */val cloudflareClient by lazy { - client - } + open /* SY <-- */val cloudflareClient by lazy { client } fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim() } diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt index 3f77e5ac4..97c6869bf 100755 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt +++ b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt @@ -45,11 +45,9 @@ abstract class HttpSource : CatalogueSource { .maybeInjectEHLogger() .build() + @Deprecated("The regular client handles Cloudflare by default") override val cloudflareClient: OkHttpClient - get() = delegate?.networkCloudflareClient ?: network.cloudflareClient - .newBuilder() - .maybeInjectEHLogger() - .build() + get() = delegate?.networkHttpClient ?: client override val cookieJar: AndroidCookieJar get() = network.cookieJar diff --git a/source-api/src/commonMain/kotlin/exh/source/DelegatedHttpSource.kt b/source-api/src/commonMain/kotlin/exh/source/DelegatedHttpSource.kt index ce3802252..ad105d248 100644 --- a/source-api/src/commonMain/kotlin/exh/source/DelegatedHttpSource.kt +++ b/source-api/src/commonMain/kotlin/exh/source/DelegatedHttpSource.kt @@ -134,7 +134,6 @@ abstract class DelegatedHttpSource(val delegate: HttpSource) : HttpSource() { */ open val baseHttpClient: OkHttpClient? = null open val networkHttpClient: OkHttpClient get() = network.client - open val networkCloudflareClient: OkHttpClient get() = network.cloudflareClient /** * Visible name of the source.