mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Add an UserAgent Interceptor to Cloudflare Client (#2685)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							8e539bebea
						
					
				
				
					commit
					bd2dfaad2e
				
			@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ class NetworkHelper(context: Context) {
 | 
			
		||||
            .build()
 | 
			
		||||
 | 
			
		||||
    val cloudflareClient = client.newBuilder()
 | 
			
		||||
            .addInterceptor(UserAgentInterceptor())
 | 
			
		||||
            .addInterceptor(CloudflareInterceptor(context))
 | 
			
		||||
            .build()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user