MangaDex - fewer broken covers (#3569)

* MangaDex - fewer broken covers

* cleanup

* use lq for re-request
This commit is contained in:
Mike 2020-06-19 18:25:58 -04:00 committed by GitHub
parent ed4f4c4a85
commit 9c60fbeb93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 1 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: MangaDex' appName = 'Tachiyomi: MangaDex'
pkgNameSuffix = 'all.mangadex' pkgNameSuffix = 'all.mangadex'
extClass = '.MangaDexFactory' extClass = '.MangaDexFactory'
extVersionCode = 93 extVersionCode = 94
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -35,6 +35,7 @@ import kotlin.collections.set
import okhttp3.CacheControl import okhttp3.CacheControl
import okhttp3.Headers import okhttp3.Headers
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.Interceptor
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
@ -70,6 +71,7 @@ abstract class MangaDex(
override val client: OkHttpClient = network.client.newBuilder() override val client: OkHttpClient = network.client.newBuilder()
.addNetworkInterceptor(rateLimitInterceptor) .addNetworkInterceptor(rateLimitInterceptor)
.addInterceptor(CoverInterceptor())
.build() .build()
private fun clientBuilder(): OkHttpClient = clientBuilder(getShowR18()) private fun clientBuilder(): OkHttpClient = clientBuilder(getShowR18())
@ -946,3 +948,20 @@ abstract class MangaDex(
private var hasMangaPlus = false 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
}
}
}
}