MangaDex - fewer broken covers (#3569)
* MangaDex - fewer broken covers * cleanup * use lq for re-request
This commit is contained in:
parent
ed4f4c4a85
commit
9c60fbeb93
@ -5,7 +5,7 @@ ext {
|
||||
appName = 'Tachiyomi: MangaDex'
|
||||
pkgNameSuffix = 'all.mangadex'
|
||||
extClass = '.MangaDexFactory'
|
||||
extVersionCode = 93
|
||||
extVersionCode = 94
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
@ -35,6 +35,7 @@ import kotlin.collections.set
|
||||
import okhttp3.CacheControl
|
||||
import okhttp3.Headers
|
||||
import okhttp3.HttpUrl
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
@ -70,6 +71,7 @@ abstract class MangaDex(
|
||||
|
||||
override val client: OkHttpClient = network.client.newBuilder()
|
||||
.addNetworkInterceptor(rateLimitInterceptor)
|
||||
.addInterceptor(CoverInterceptor())
|
||||
.build()
|
||||
|
||||
private fun clientBuilder(): OkHttpClient = clientBuilder(getShowR18())
|
||||
@ -946,3 +948,20 @@ abstract class MangaDex(
|
||||
private var hasMangaPlus = false
|
||||
}
|
||||
}
|
||||
|
||||
class CoverInterceptor : Interceptor {
|
||||
private val coverRegex = Regex("""/images/.*\.jpg""")
|
||||
|
||||
override fun intercept(chain: Interceptor.Chain): Response {
|
||||
val originalRequest = chain.request()
|
||||
|
||||
return chain.proceed(chain.request()).let { response ->
|
||||
if (response.code() == 404 && originalRequest.url().toString().contains(coverRegex)) {
|
||||
response.close()
|
||||
chain.proceed(originalRequest.newBuilder().url(originalRequest.url().toString().substringBeforeLast(".") + ".thumb.jpg").build())
|
||||
} else {
|
||||
response
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user