diff --git a/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt b/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt index b41c09a2c..d132c38e9 100644 --- a/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt +++ b/app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt @@ -46,7 +46,7 @@ class OkHttpStreamFetcher( private var call: Call? = null companion object { - val failUrl = hashSetOf() + private val failUrl = hashSetOf() } override fun loadData(priority: Priority, callback: DataFetcher.DataCallback) { @@ -114,7 +114,9 @@ class OkHttpStreamFetcher( responseBody = response.body if (response.isSuccessful) { val decodeResult = runScriptWithContext(coroutineContext) { - if (manga) { + if (ImageUtils.skipDecode(source, !manga)) { + responseBody!!.byteStream() + } else if (manga) { ImageUtils.decode( oldUrl.toString(), responseBody!!.bytes(), diff --git a/app/src/main/java/io/legado/app/utils/ImageUtils.kt b/app/src/main/java/io/legado/app/utils/ImageUtils.kt index f23da6973..5cae6f371 100644 --- a/app/src/main/java/io/legado/app/utils/ImageUtils.kt +++ b/app/src/main/java/io/legado/app/utils/ImageUtils.kt @@ -1,12 +1,12 @@ package io.legado.app.utils import io.legado.app.constant.AppLog -import io.legado.app.data.entities.Book import io.legado.app.data.entities.BaseSource +import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookSource import io.legado.app.data.entities.RssSource -import java.io.InputStream import java.io.ByteArrayInputStream +import java.io.InputStream /** * 加密图片解密工具 @@ -54,13 +54,18 @@ object ImageUtils { }.getOrNull() } + fun skipDecode(source: BaseSource?, isCover: Boolean): Boolean { + return getRuleJs(source, isCover).isNullOrBlank() + } private fun getRuleJs( source: BaseSource?, isCover: Boolean ): String? { return when (source) { is BookSource -> - if (isCover) source.coverDecodeJs else source.getContentRule().imageDecode + if (isCover) source.coverDecodeJs + else source.getContentRule().imageDecode + is RssSource -> source.coverDecodeJs else -> null }