kunfei пре 3 година
родитељ
комит
f6fbc9806c
1 измењених фајлова са 16 додато и 7 уклоњено
  1. 16 7
      app/src/main/java/io/legado/app/help/book/ContentProcessor.kt

+ 16 - 7
app/src/main/java/io/legado/app/help/book/ContentProcessor.kt

@@ -86,16 +86,25 @@ class ContentProcessor private constructor(
             //去除重复标题
             if (BookHelp.removeSameTitle(book, chapter)) try {
                 val name = Pattern.quote(book.name)
-                val title0 = Pattern.quote(chapter.title)
-                val title1 = Pattern.quote(
-                    chapter.getDisplayTitle(contentReplaceRules, chineseConvert = false)
-                )
-                val titleRegex = "^(\\s|\\p{P}|${name})*(${title0}|${title1})(\\s)*"
-                val matcher = Pattern.compile(titleRegex)
+                var title = Pattern.quote(chapter.title)
+                var matcher = Pattern.compile("^(\\s|\\p{P}|${name})*${title}(\\s)*")
                     .matcher(mContent)
                 if (matcher.find()) {
                     mContent = mContent.substring(matcher.end())
                     sameTitleRemoved = true
+                } else {
+                    title = Pattern.quote(
+                        chapter.getDisplayTitle(
+                            contentReplaceRules,
+                            chineseConvert = false
+                        )
+                    )
+                    matcher = Pattern.compile("^(\\s|\\p{P}|${name})*${title}(\\s)*")
+                        .matcher(mContent)
+                    if (matcher.find()) {
+                        mContent = mContent.substring(matcher.end())
+                        sameTitleRemoved = true
+                    }
                 }
             } catch (e: Exception) {
                 AppLog.put("去除重复标题出错\n${e.localizedMessage}", e)
@@ -143,7 +152,7 @@ class ContentProcessor private constructor(
         return BookContent(sameTitleRemoved, contents)
     }
 
-    suspend fun replaceContent(content: String): String {
+    private suspend fun replaceContent(content: String): String {
         var mContent = content
         mContent = mContent.lines().joinToString("\n") { it.trim() }
         getContentReplaceRules().forEach { item ->