Browse Source

Add an UserAgent Interceptor to Cloudflare Client (#2685)

Thiago França da Silva 5 years ago
parent
commit
bd2dfaad2e

+ 1 - 11
app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt

@@ -57,17 +57,7 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
                     .firstOrNull { it.name == "cf_clearance" }
             resolveWithWebView(originalRequest, oldCookie)
 
-            // Avoid use empty User-Agent
-            return if (originalRequest.header("User-Agent").isNullOrEmpty()) {
-                val newRequest = originalRequest
-                        .newBuilder()
-                        .removeHeader("User-Agent")
-                        .addHeader("User-Agent", HttpSource.DEFAULT_USERAGENT)
-                        .build()
-                chain.proceed(newRequest)
-            } else {
-                chain.proceed(originalRequest)
-            }
+            return chain.proceed(originalRequest)
         } catch (e: Exception) {
             // Because OkHttp's enqueue only handles IOExceptions, wrap the exception so that
             // we don't crash the entire app

+ 1 - 0
app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt

@@ -19,6 +19,7 @@ class NetworkHelper(context: Context) {
             .build()
 
     val cloudflareClient = client.newBuilder()
+            .addInterceptor(UserAgentInterceptor())
             .addInterceptor(CloudflareInterceptor(context))
             .build()
 }

+ 22 - 0
app/src/main/java/eu/kanade/tachiyomi/network/UserAgentInterceptor.kt

@@ -0,0 +1,22 @@
+package eu.kanade.tachiyomi.network
+
+import eu.kanade.tachiyomi.source.online.HttpSource
+import okhttp3.Interceptor
+import okhttp3.Response
+
+class UserAgentInterceptor : Interceptor {
+    override fun intercept(chain: Interceptor.Chain): Response {
+        val originalRequest = chain.request()
+
+        return if (originalRequest.header("User-Agent").isNullOrEmpty()) {
+            val newRequest = originalRequest
+                    .newBuilder()
+                    .removeHeader("User-Agent")
+                    .addHeader("User-Agent", HttpSource.DEFAULT_USERAGENT)
+                    .build()
+            chain.proceed(newRequest)
+        } else {
+            chain.proceed(originalRequest)
+        }
+    }
+}