Mangabz: fix stubbed CookieManager (#13398)

This commit is contained in:
stevenyomi 2022-09-08 23:20:10 +08:00 committed by GitHub
parent 58204ce520
commit 57df836362
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 2 deletions

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.extension.zh.mangabz package eu.kanade.tachiyomi.extension.zh.mangabz
import android.util.Log
import android.webkit.CookieManager import android.webkit.CookieManager
import okhttp3.Interceptor import okhttp3.Interceptor
import okhttp3.Response import okhttp3.Response
@ -13,7 +14,7 @@ class CookieInterceptor(
init { init {
val url = "https://$domain/" val url = "https://$domain/"
val cookie = "$key=$value; Domain=$domain; Path=/" val cookie = "$key=$value; Domain=$domain; Path=/"
CookieManager.getInstance().setCookie(url, cookie) setCookie(url, cookie)
} }
override fun intercept(chain: Interceptor.Chain): Response { override fun intercept(chain: Interceptor.Chain): Response {
@ -24,7 +25,7 @@ class CookieInterceptor(
val cookieList = request.header("Cookie")?.split("; ") ?: emptyList() val cookieList = request.header("Cookie")?.split("; ") ?: emptyList()
if (cookie in cookieList) return chain.proceed(request) if (cookie in cookieList) return chain.proceed(request)
CookieManager.getInstance().setCookie("https://$domain/", "$cookie; Domain=$domain; Path=/") setCookie("https://$domain/", "$cookie; Domain=$domain; Path=/")
val prefix = "$key=" val prefix = "$key="
val newCookie = buildList(cookieList.size + 1) { val newCookie = buildList(cookieList.size + 1) {
cookieList.filterNotTo(this) { it.startsWith(prefix) } cookieList.filterNotTo(this) { it.startsWith(prefix) }
@ -33,4 +34,13 @@ class CookieInterceptor(
val newRequest = request.newBuilder().header("Cookie", newCookie).build() val newRequest = request.newBuilder().header("Cookie", newCookie).build()
return chain.proceed(newRequest) return chain.proceed(newRequest)
} }
private fun setCookie(url: String, value: String) {
try {
CookieManager.getInstance().setCookie(url, value)
} catch (e: Exception) {
// Probably running on Tachidesk
Log.e("Mangabz", "failed to set cookie", e)
}
}
} }