Horis hace 2 años
padre
commit
701c4ed2ba

+ 14 - 3
app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt

@@ -45,9 +45,20 @@ class AnalyzeByJSoup(doc: Any) {
     /**
     /**
      * 合并内容列表,得到内容
      * 合并内容列表,得到内容
      */
      */
-    internal fun getString(ruleStr: String) =
-        if (ruleStr.isEmpty()) null
-        else getStringList(ruleStr).takeIf { it.isNotEmpty() }?.joinToString("\n")
+    internal fun getString(ruleStr: String): String? {
+        if (ruleStr.isEmpty()) {
+            return null
+        }
+        val list = getStringList(ruleStr)
+        if (list.isEmpty()) {
+            return null
+        }
+        if (list.size == 1){
+            return list.first()
+        }
+        return list.joinToString("\n")
+    }
+
 
 
     /**
     /**
      * 获取一个字符串
      * 获取一个字符串

+ 6 - 3
app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt

@@ -295,9 +295,12 @@ class AnalyzeRule(
             }
             }
         }
         }
         if (result == null) result = ""
         if (result == null) result = ""
-        val str = if (unescape) {
-            StringEscapeUtils.unescapeHtml4(result.toString())
-        } else result.toString()
+        val resultStr = result.toString()
+        val str = if (unescape && resultStr.indexOf('&') > -1) {
+            StringEscapeUtils.unescapeHtml4(resultStr)
+        } else {
+            resultStr
+        }
         if (isUrl) {
         if (isUrl) {
             return if (str.isBlank()) {
             return if (str.isBlank()) {
                 baseUrl ?: ""
                 baseUrl ?: ""

+ 5 - 2
app/src/main/java/io/legado/app/model/localBook/LocalBook.kt

@@ -137,8 +137,11 @@ object LocalBook {
             "获取本地书籍内容失败\n${e.localizedMessage}"
             "获取本地书籍内容失败\n${e.localizedMessage}"
         }
         }
         if (book.isEpub) {
         if (book.isEpub) {
-            content = content?.replace("<img", "< img", true) ?: return null
-            return StringEscapeUtils.unescapeHtml4(content)
+            content ?: return null
+            if (content.indexOf('&') > -1) {
+                content = content.replace("<img", "< img", true)
+                return StringEscapeUtils.unescapeHtml4(content)
+            }
         }
         }
         return content
         return content
     }
     }

+ 3 - 1
app/src/main/java/io/legado/app/model/webBook/BookContent.kt

@@ -169,7 +169,9 @@ object BookContent {
         //获取正文
         //获取正文
         var content = analyzeRule.getString(contentRule.content, unescape = false)
         var content = analyzeRule.getString(contentRule.content, unescape = false)
         content = HtmlFormatter.formatKeepImg(content, rUrl)
         content = HtmlFormatter.formatKeepImg(content, rUrl)
-        content = StringEscapeUtils.unescapeHtml4(content)
+        if (content.indexOf('&') > -1) {
+            content = StringEscapeUtils.unescapeHtml4(content)
+        }
         //获取下一页链接
         //获取下一页链接
         if (getNextPageUrl) {
         if (getNextPageUrl) {
             val nextUrlRule = contentRule.nextContentUrl
             val nextUrlRule = contentRule.nextContentUrl