@@ -202,7 +202,8 @@ data class Book(
|
||||
if (useReplaceRule != null) {
|
||||
return useReplaceRule
|
||||
}
|
||||
if (type == BookType.image) {
|
||||
//图片类书源 epub本地 默认关闭净化
|
||||
if (type == BookType.image || isEpub()) {
|
||||
return false
|
||||
}
|
||||
return AppConfig.replaceEnableDefault
|
||||
|
||||
@@ -144,7 +144,9 @@ object BookHelp {
|
||||
|
||||
fun getImageSuffix(src: String): String {
|
||||
var suffix = src.substringAfterLast(".").substringBefore(",")
|
||||
if (suffix.length > 5) {
|
||||
//检查截取的后缀字符是否合法 [a-zA-Z0-9]
|
||||
val fileSuffixRegex = Regex("^[a-z0-9]+$", RegexOption.IGNORE_CASE)
|
||||
if (suffix.length > 5 || !suffix.matches(fileSuffixRegex)) {
|
||||
suffix = "jpg"
|
||||
}
|
||||
return suffix
|
||||
|
||||
@@ -33,7 +33,7 @@ class EpubFile(var book: Book) {
|
||||
if (eFile == null || eFile?.book?.bookUrl != book.bookUrl) {
|
||||
eFile = EpubFile(book)
|
||||
//对于Epub文件默认不启用替换
|
||||
book.setUseReplaceRule(false)
|
||||
//io.legado.app.data.entities.Book getUseReplaceRule
|
||||
return eFile!!
|
||||
}
|
||||
eFile?.book = book
|
||||
|
||||
@@ -13,8 +13,7 @@ import io.legado.app.help.BookHelp
|
||||
import io.legado.app.help.config.AppConfig
|
||||
import io.legado.app.help.coroutine.Coroutine
|
||||
import io.legado.app.model.localBook.EpubFile
|
||||
import io.legado.app.utils.BitmapUtils
|
||||
import io.legado.app.utils.FileUtils
|
||||
import io.legado.app.utils.*
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.withContext
|
||||
import splitties.init.appCtx
|
||||
@@ -113,6 +112,11 @@ object ImageProvider {
|
||||
width: Int,
|
||||
height: Int? = null
|
||||
): Bitmap {
|
||||
//src为空白时 可能被净化替换掉了 或者规则失效
|
||||
if (book.getUseReplaceRule() && src.isBlank()) {
|
||||
book.setUseReplaceRule(false)
|
||||
appCtx.toastOnUi(R.string.error_image_url_empty)
|
||||
}
|
||||
val vFile = BookHelp.getImage(book, src)
|
||||
if (!vFile.exists()) return errorBitmap
|
||||
//epub文件提供图片链接是相对链接,同时阅读多个epub文件,缓存命中错误
|
||||
@@ -122,7 +126,7 @@ object ImageProvider {
|
||||
@Suppress("BlockingMethodInNonBlockingContext")
|
||||
return kotlin.runCatching {
|
||||
val bitmap = BitmapUtils.decodeBitmap(vFile.absolutePath, width, height)
|
||||
?: throw NoStackTraceException("解析图片失败")
|
||||
?: throw NoStackTraceException(appCtx.getString(R.string.error_decode_bitmap))
|
||||
bitmapLruCache.put(vFile.absolutePath, bitmap)
|
||||
bitmap
|
||||
}.onFailure {
|
||||
|
||||
@@ -993,4 +993,6 @@
|
||||
<string name="bitmap_cache_size">bitmap cache size</string>
|
||||
<string name="export_pics_file">Export Picture Files</string>
|
||||
<!-- string end -->
|
||||
<string name="error_decode_bitmap">Fail to decode bitmap</string>
|
||||
<string name="error_image_url_empty">Image url is empty, check replacement rules</string>
|
||||
</resources>
|
||||
|
||||
@@ -996,4 +996,6 @@
|
||||
<string name="bitmap_cache_size">bitmap cache size</string>
|
||||
<string name="export_pics_file">Export Picture Files</string>
|
||||
<!-- string end -->
|
||||
<string name="error_decode_bitmap">Fail to decode bitmap</string>
|
||||
<string name="error_image_url_empty">Image url is empty, check replacement rules</string>
|
||||
</resources>
|
||||
|
||||
@@ -996,4 +996,6 @@
|
||||
<string name="bitmap_cache_size">bitmap cache size</string>
|
||||
<string name="export_pics_file">Export Picture Files</string>
|
||||
<!-- string end -->
|
||||
<string name="error_decode_bitmap">Fail to decode bitmap</string>
|
||||
<string name="error_image_url_empty">Image url is empty, check replacement rules</string>
|
||||
</resources>
|
||||
|
||||
@@ -993,4 +993,6 @@
|
||||
<string name="bitmap_cache_size">图片绘制缓存</string>
|
||||
<string name="export_pics_file">TXT导出图片</string>
|
||||
<!-- string end -->
|
||||
<string name="error_decode_bitmap">图片解码失败</string>
|
||||
<string name="error_image_url_empty">图片链接为空,检查替换净化规则</string>
|
||||
</resources>
|
||||
|
||||
@@ -995,4 +995,6 @@
|
||||
<string name="bitmap_cache_size">圖片繪製快取</string>
|
||||
<string name="export_pics_file">TXT匯出圖片</string>
|
||||
<!-- string end -->
|
||||
<string name="error_decode_bitmap">图片解码失败</string>
|
||||
<string name="error_image_url_empty">图片链接为空,检查替换净化规则</string>
|
||||
</resources>
|
||||
|
||||
@@ -995,4 +995,6 @@
|
||||
<string name="bitmap_cache_size">图片绘制缓存</string>
|
||||
<string name="export_pics_file">TXT导出图片</string>
|
||||
<!-- string end -->
|
||||
<string name="error_decode_bitmap">图片解码失败</string>
|
||||
<string name="error_image_url_empty">图片链接为空,检查替换净化规则</string>
|
||||
</resources>
|
||||
|
||||
@@ -996,4 +996,6 @@
|
||||
<string name="bitmap_cache_size">bitmap cache size</string>
|
||||
<string name="export_pics_file">Export Picture Files</string>
|
||||
<!-- string end -->
|
||||
<string name="error_decode_bitmap">Fail to decode bitmap</string>
|
||||
<string name="error_image_url_empty">Image url is empty, check replacement rules</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user