Horis 3 tahun lalu
induk
melakukan
d00efd11ae
1 mengubah file dengan 48 tambahan dan 51 penghapusan
  1. 48 51
      app/src/main/java/io/legado/app/model/localBook/EpubFile.kt

+ 48 - 51
app/src/main/java/io/legado/app/model/localBook/EpubFile.kt

@@ -142,62 +142,59 @@ class EpubFile(var book: Book) {
             return "<img src=\"cover.jpeg\" />"
         }
         /*获取当前章节文本*/
-        epubBook?.let {
-            val nextChapterFirstResourceHref = chapter.getVariable("nextUrl")?.substringBeforeLast("#")
-            val currentChapterFirstResourceHref = chapter.url.substringBeforeLast("#")
-            val isLastChapter = nextChapterFirstResourceHref.isNullOrBlank()
-            val startFragmentId = chapter.startFragmentId
-            val endFragmentId = chapter.endFragmentId
-            val elements = Elements()
-            var findChapterFirstSource = false
-            val includeNextChapterResource = !endFragmentId.isNullOrBlank()
-            /*一些书籍依靠href索引的resource会包含多个章节,需要依靠fragmentId来截取到当前章节的内容*/
-            /*注:这里较大增加了内容加载的时间,所以首次获取内容后可存储到本地cache,减少重复加载*/
-            val contents = epubBookContents ?: return null
-            for (res in contents) {
-                if (!findChapterFirstSource) {
-                    if (currentChapterFirstResourceHref != res.href) continue
-                    findChapterFirstSource = true
-                    // 第一个xhtml文件
-                    elements.add(
-                        getBody(res, startFragmentId, endFragmentId)
-                    )
-                    // 不是最后章节 且 已经遍历到下一章节的内容时停止
-                    if (!isLastChapter && res.href == nextChapterFirstResourceHref) break
-                    continue
-                }
-                if (nextChapterFirstResourceHref != res.href) {
-                    // 其余部分
-                    elements.add(getBody(res, null, null))
-                } else {
-                    // 下一章节的第一个xhtml
-                    if (includeNextChapterResource) {
-                        //有Fragment 则添加到上一章节
-                        elements.add(getBody(res, null, endFragmentId))
-                    }
-                    break
-                }
+        val contents = epubBookContents ?: return null
+        val nextChapterFirstResourceHref = chapter.getVariable("nextUrl")?.substringBeforeLast("#")
+        val currentChapterFirstResourceHref = chapter.url.substringBeforeLast("#")
+        val isLastChapter = nextChapterFirstResourceHref.isNullOrBlank()
+        val startFragmentId = chapter.startFragmentId
+        val endFragmentId = chapter.endFragmentId
+        val elements = Elements()
+        var findChapterFirstSource = false
+        val includeNextChapterResource = !endFragmentId.isNullOrBlank()
+        /*一些书籍依靠href索引的resource会包含多个章节,需要依靠fragmentId来截取到当前章节的内容*/
+        /*注:这里较大增加了内容加载的时间,所以首次获取内容后可存储到本地cache,减少重复加载*/
+        for (res in contents) {
+            if (!findChapterFirstSource) {
+                if (currentChapterFirstResourceHref != res.href) continue
+                findChapterFirstSource = true
+                // 第一个xhtml文件
+                elements.add(
+                    getBody(res, startFragmentId, endFragmentId)
+                )
+                // 不是最后章节 且 已经遍历到下一章节的内容时停止
+                if (!isLastChapter && res.href == nextChapterFirstResourceHref) break
+                continue
             }
-            //title标签中的内容不需要显示在正文中,去除
-            elements.select("title").remove()
-            elements.select("img").forEach {
-                val src = it.attr("src")
-                val path = chapter.url.substringBeforeLast("/", "")
-                val absSrc = if (path.isEmpty()) {
-                    src
-                } else {
-                    StringUtil.collapsePathDots("$path/$src")
+            if (nextChapterFirstResourceHref != res.href) {
+                // 其余部分
+                elements.add(getBody(res, null, null))
+            } else {
+                // 下一章节的第一个xhtml
+                if (includeNextChapterResource) {
+                    //有Fragment 则添加到上一章节
+                    elements.add(getBody(res, null, endFragmentId))
                 }
-                it.attr("src", absSrc)
+                break
             }
-            var html = elements.outerHtml()
-            val tag = Book.rubyTag
-            if (book.getDelTag(tag)) {
-                html = html.replace("<ruby>\\s?([\\u4e00-\\u9fa5])\\s?.*?</ruby>".toRegex(), "$1")
+        }
+        //title标签中的内容不需要显示在正文中,去除
+        elements.select("title").remove()
+        elements.select("img").forEach {
+            val src = it.attr("src")
+            val path = chapter.url.substringBeforeLast("/", "")
+            val absSrc = if (path.isEmpty()) {
+                src
+            } else {
+                StringUtil.collapsePathDots("$path/$src")
             }
-            return HtmlFormatter.formatKeepImg(html)
+            it.attr("src", absSrc)
+        }
+        var html = elements.outerHtml()
+        val tag = Book.rubyTag
+        if (book.getDelTag(tag)) {
+            html = html.replace("<ruby>\\s?([\\u4e00-\\u9fa5])\\s?.*?</ruby>".toRegex(), "$1")
         }
-        return null
+        return HtmlFormatter.formatKeepImg(html)
     }
 
     private fun getBody(res: Resource, startFragmentId: String?, endFragmentId: String?): Element {