From beaa825a9fae5319cb5134ade7337f1757543b57 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 18 Mar 2020 19:22:10 +0200 Subject: [PATCH] Add UserAgent --- .../java/org/koitharu/kotatsu/KotatsuApp.kt | 3 +++ .../core/parser/UserAgentInterceptor.kt | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 app/src/main/java/org/koitharu/kotatsu/core/parser/UserAgentInterceptor.kt diff --git a/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt b/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt index 8f9f7b3e7..53327f67b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt +++ b/app/src/main/java/org/koitharu/kotatsu/KotatsuApp.kt @@ -8,6 +8,7 @@ import coil.ImageLoader import coil.util.CoilUtils import com.itkacher.okhttpprofiler.OkHttpProfilerInterceptor import okhttp3.OkHttpClient +import okhttp3.internal.userAgent import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidLogger import org.koin.core.context.startKoin @@ -18,6 +19,7 @@ import org.koitharu.kotatsu.core.local.PagesCache import org.koitharu.kotatsu.core.local.cookies.PersistentCookieJar import org.koitharu.kotatsu.core.local.cookies.cache.SetCookieCache import org.koitharu.kotatsu.core.local.cookies.persistence.SharedPrefsCookiePersistor +import org.koitharu.kotatsu.core.parser.UserAgentInterceptor import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.domain.MangaLoaderContext import org.koitharu.kotatsu.utils.CacheUtils @@ -82,6 +84,7 @@ class KotatsuApp : Application() { readTimeout(60, TimeUnit.SECONDS) writeTimeout(20, TimeUnit.SECONDS) cookieJar(cookieJar) + addInterceptor(UserAgentInterceptor) if (BuildConfig.DEBUG) { addInterceptor(OkHttpProfilerInterceptor()) } diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/UserAgentInterceptor.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/UserAgentInterceptor.kt new file mode 100644 index 000000000..98891b3b5 --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/UserAgentInterceptor.kt @@ -0,0 +1,27 @@ +package org.koitharu.kotatsu.core.parser + +import android.annotation.SuppressLint +import android.os.Build +import okhttp3.Interceptor +import okhttp3.Response +import org.koitharu.kotatsu.BuildConfig +import java.util.* + +@SuppressLint("ConstantLocale") +object UserAgentInterceptor : Interceptor { + + private val userAgent = "Kotatsu/%s (Android %s; %s; %s %s; %s)".format( + BuildConfig.VERSION_NAME, + Build.VERSION.RELEASE, + Build.MODEL, + Build.BRAND, + Build.DEVICE, + Locale.getDefault().language + ) + + override fun intercept(chain: Interceptor.Chain) = chain.proceed( + chain.request().newBuilder() + .header("User-Agent", userAgent) + .build() + ) +} \ No newline at end of file