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'
|
appName = 'Tachiyomi: MangaDex'
|
||||||
pkgNameSuffix = 'all.mangadex'
|
pkgNameSuffix = 'all.mangadex'
|
||||||
extClass = '.MangaDexFactory'
|
extClass = '.MangaDexFactory'
|
||||||
extVersionCode = 93
|
extVersionCode = 94
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user