[RU]Libmanga/hentai real content type image (#10954)

This commit is contained in:
e-shl 2022-02-28 17:04:05 +05:00 committed by GitHub
parent 2df17713ad
commit 7c566ae604
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 4 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'HentaiLib'
pkgNameSuffix = 'ru.libhentai'
extClass = '.LibHentai'
extVersionCode = 6
extVersionCode = 7
isNsfw = true
}

View File

@ -31,9 +31,12 @@ import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.Interceptor
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import okhttp3.ResponseBody.Companion.toResponseBody
import org.jsoup.nodes.Element
import rx.Observable
import uy.kohesive.injekt.Injekt
@ -63,13 +66,25 @@ class LibHentai : ConfigurableSource, HttpSource() {
add("Accept", "image/webp,*/*;q=0.8")
add("Referer", baseUrl)
}
private fun imageContentTypeIntercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
val response = chain.proceed(originalRequest)
val urlRequest = originalRequest.url.toString()
val possibleType = urlRequest.substringAfterLast("/").split(".")
return if (!urlRequest.contains(baseUrl) and (possibleType.size == 2)) {
val realType = possibleType[1]
val image = response.body?.byteString()?.toResponseBody("image/$realType".toMediaType())
response.newBuilder().body(image).build()
} else
response
}
private val authClient = network.cloudflareClient
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.addNetworkInterceptor(RateLimitInterceptor(3))
.addInterceptor { imageContentTypeIntercept(it) }
.addInterceptor { chain ->
val originalRequest = chain.request()
if (originalRequest.url.toString().contains(baseUrl))

View File

@ -6,7 +6,7 @@ ext {
extName = 'MangaLib'
pkgNameSuffix = 'ru.libmanga'
extClass = '.LibManga'
extVersionCode = 62
extVersionCode = 63
}
dependencies {

View File

@ -31,9 +31,12 @@ import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.Interceptor
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import okhttp3.ResponseBody.Companion.toResponseBody
import org.jsoup.nodes.Element
import rx.Observable
import uy.kohesive.injekt.Injekt
@ -56,11 +59,23 @@ class LibManga : ConfigurableSource, HttpSource() {
override val lang = "ru"
override val supportsLatest = true
private fun imageContentTypeIntercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
val response = chain.proceed(originalRequest)
val urlRequest = originalRequest.url.toString()
val possibleType = urlRequest.substringAfterLast("/").split(".")
return if (!urlRequest.contains(baseUrl) and (possibleType.size == 2)) {
val realType = possibleType[1]
val image = response.body?.byteString()?.toResponseBody("image/$realType".toMediaType())
response.newBuilder().body(image).build()
} else
response
}
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.addNetworkInterceptor(RateLimitInterceptor(3))
.addInterceptor { imageContentTypeIntercept(it) }
.build()
private val baseOrig: String = "https://mangalib.me"