Skip to content

Commit dc8d1af

Browse files
committed
change default user agent
1 parent 24c1ba6 commit dc8d1af

13 files changed

Lines changed: 56 additions & 19 deletions

File tree

.github/ISSUE_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
I acknowledge that:
44

55
- I have updated:
6-
- To the latest version of the app (stable is v0.12.3.7)
6+
- To the latest version of the app (stable is v0.12.3.8)
77
- All extensions
88
- If this is an issue with an anime extension, that I should be opening an issue in https://github.com/jmir1/aniyomi-extensions
99
- I have searched the existing issues and this is new ticket **NOT** a duplicate or related to another open issue

.github/ISSUE_TEMPLATE/report_issue.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ body:
5252
label: Aniyomi version
5353
description: You can find your Aniyomi version in **More → About**.
5454
placeholder: |
55-
Example: "0.12.3.7"
55+
Example: "0.12.3.8"
5656
validations:
5757
required: true
5858

@@ -97,7 +97,7 @@ body:
9797
required: true
9898
- label: I have tried the [troubleshooting guide](https://aniyomi.jmir.xyz/help/guides/troubleshooting/).
9999
required: true
100-
- label: I have updated the app to version **[0.12.3.7](https://github.com/jmir1/aniyomi/releases/latest)**.
100+
- label: I have updated the app to version **[0.12.3.8](https://github.com/jmir1/aniyomi/releases/latest)**.
101101
required: true
102102
- label: I have updated all installed extensions.
103103
required: true

.github/ISSUE_TEMPLATE/request_feature.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ body:
3232
required: true
3333
- label: If this is an issue with an extension, I should be opening an issue in the [extensions repository](https://github.com/jmir1/aniyomi-extensions/issues/new/choose).
3434
required: true
35-
- label: I have updated the app to version **[0.12.3.7](https://github.com/jmir1/aniyomi/releases/latest)**.
35+
- label: I have updated the app to version **[0.12.3.8](https://github.com/jmir1/aniyomi/releases/latest)**.
3636
required: true
3737
- label: I will fill out all of the requested information in this form.
3838
required: true

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ android {
3030
minSdk = AndroidConfig.minSdk
3131
targetSdk = AndroidConfig.targetSdk
3232
versionCode = 72
33-
versionName = "0.12.3.7"
33+
versionName = "0.12.3.8"
3434

3535
buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"")
3636
buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"")

app/src/main/java/eu/kanade/tachiyomi/animesource/online/AnimeHttpSource.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ abstract class AnimeHttpSource : AnimeCatalogueSource {
7474
* Headers builder for requests. Implementations can override this method for custom headers.
7575
*/
7676
protected open fun headersBuilder() = Headers.Builder().apply {
77-
add("User-Agent", DEFAULT_USER_AGENT)
77+
add("User-Agent", network.defaultUserAgent)
7878
}
7979

8080
/**
@@ -380,8 +380,4 @@ abstract class AnimeHttpSource : AnimeCatalogueSource {
380380
* Returns the list of filters for the source.
381381
*/
382382
override fun getFilterList() = AnimeFilterList()
383-
384-
companion object {
385-
const val DEFAULT_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.124 Safari/537.36 Edg/102.0.1245.44"
386-
}
387383
}

app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ object PreferenceKeys {
4747

4848
const val removeAfterMarkedAsRead = "pref_remove_after_marked_as_read_key"
4949

50+
const val defaultUserAgent = "default_user_agent"
51+
5052
const val removeBookmarkedChapters = "pref_remove_bookmarked"
5153

5254
const val filterDownloaded = "pref_filter_library_downloaded"

app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ class PreferencesHelper(val context: Context) {
254254

255255
fun libraryUpdateInterval() = flowPrefs.getInt("pref_library_update_interval_key", 24)
256256

257+
fun defaultUserAgent() = flowPrefs.getString(Keys.defaultUserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0")
258+
257259
fun libraryUpdateDeviceRestriction() = flowPrefs.getStringSet("library_update_restriction", setOf(DEVICE_ONLY_ON_WIFI))
258260
fun libraryUpdateMangaRestriction() = flowPrefs.getStringSet("library_update_manga_restriction", setOf(MANGA_FULLY_READ, MANGA_ONGOING))
259261

app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,8 @@ class NetworkHelper(context: Context) {
5555
.addInterceptor(CloudflareInterceptor(context))
5656
.build()
5757
}
58+
59+
val defaultUserAgent by lazy {
60+
preferences.defaultUserAgent().get()
61+
}
5862
}

app/src/main/java/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import android.widget.Toast
99
import androidx.core.content.ContextCompat
1010
import eu.kanade.tachiyomi.R
1111
import eu.kanade.tachiyomi.network.NetworkHelper
12-
import eu.kanade.tachiyomi.source.online.HttpSource
1312
import eu.kanade.tachiyomi.util.lang.launchUI
1413
import eu.kanade.tachiyomi.util.system.DeviceUtil
1514
import eu.kanade.tachiyomi.util.system.WebViewClientCompat
@@ -110,7 +109,7 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
110109

111110
// Avoid sending empty User-Agent, Chromium WebView will reset to default if empty
112111
webview.settings.userAgentString = request.header("User-Agent")
113-
?: HttpSource.DEFAULT_USER_AGENT
112+
?: networkHelper.defaultUserAgent
114113

115114
webview.webViewClient = object : WebViewClientCompat() {
116115
override fun onPageFinished(view: WebView, url: String) {

app/src/main/java/eu/kanade/tachiyomi/network/interceptor/UserAgentInterceptor.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
package eu.kanade.tachiyomi.network.interceptor
22

3-
import eu.kanade.tachiyomi.source.online.HttpSource
3+
import eu.kanade.tachiyomi.network.NetworkHelper
44
import okhttp3.Interceptor
55
import okhttp3.Response
6+
import uy.kohesive.injekt.injectLazy
67

78
class UserAgentInterceptor : Interceptor {
9+
10+
private val networkHelper: NetworkHelper by injectLazy()
11+
812
override fun intercept(chain: Interceptor.Chain): Response {
913
val originalRequest = chain.request()
1014

1115
return if (originalRequest.header("User-Agent").isNullOrEmpty()) {
1216
val newRequest = originalRequest
1317
.newBuilder()
1418
.removeHeader("User-Agent")
15-
.addHeader("User-Agent", HttpSource.DEFAULT_USER_AGENT)
19+
.addHeader("User-Agent", networkHelper.defaultUserAgent)
1620
.build()
1721
chain.proceed(newRequest)
1822
} else {

0 commit comments

Comments
 (0)