Xwite 3 лет назад
Родитель
Сommit
9c8513c1ca
1 измененных файлов с 7 добавлено и 6 удалено
  1. 7 6
      app/src/main/java/io/legado/app/model/localBook/EpubFile.kt

+ 7 - 6
app/src/main/java/io/legado/app/model/localBook/EpubFile.kt

@@ -137,7 +137,8 @@ class EpubFile(var book: Book) {
         }
         }
         /*获取当前章节文本*/
         /*获取当前章节文本*/
         epubBook?.let { epubBook ->
         epubBook?.let { epubBook ->
-            val nextUrl = chapter.getVariable("nextUrl")
+            val nextChapterFirstResourceHref = chapter.getVariable("nextUrl").substringBeforeLast("#")
+            val currentChapterFirstResourceHref = chapter.url.substringBeforeLast("#")
             val startFragmentId = chapter.startFragmentId
             val startFragmentId = chapter.startFragmentId
             val endFragmentId = chapter.endFragmentId
             val endFragmentId = chapter.endFragmentId
             val elements = Elements()
             val elements = Elements()
@@ -147,20 +148,20 @@ class EpubFile(var book: Book) {
             /*注:这里较大增加了内容加载的时间,所以首次获取内容后可存储到本地cache,减少重复加载*/
             /*注:这里较大增加了内容加载的时间,所以首次获取内容后可存储到本地cache,减少重复加载*/
             for (res in epubBook.contents) {
             for (res in epubBook.contents) {
                 if (!findChapterFirstSource) {
                 if (!findChapterFirstSource) {
-                    if (chapter.url == res.href) findChapterFirstSource = true
+                    if (currentChapterFirstResourceHref == res.href) findChapterFirstSource = true
                     // 第一个xhtml文件
                     // 第一个xhtml文件
                     elements.add(
                     elements.add(
                         getBody(res, startFragmentId, endFragmentId)
                         getBody(res, startFragmentId, endFragmentId)
                     )
                     )
-                    if (chapter.url == nextUrl) break
+                    if (currentChapterFirstResourceHref == nextChapterFirstResourceHref) break
                     continue
                     continue
                 }
                 }
-                if (nextUrl != res.href) {
+                if (nextChapterFirstResourceHref != res.href) {
                     // 其余部分
                     // 其余部分
                     elements.add(getBody(res, null, null))
                     elements.add(getBody(res, null, null))
                 } else {
                 } else {
                     // 下一章节的第一个xhtml
                     // 下一章节的第一个xhtml
-                    if (!endFragmentId.isNullOrBlank()) {
+                    if (includeNextChapterResource) {
                         //有Fragment 则添加到上一章节
                         //有Fragment 则添加到上一章节
                         elements.add(getBody(res, null, endFragmentId))
                         elements.add(getBody(res, null, endFragmentId))
                     }
                     }
@@ -360,7 +361,7 @@ class EpubFile(var book: Book) {
                 val chapter = BookChapter()
                 val chapter = BookChapter()
                 chapter.bookUrl = book.bookUrl
                 chapter.bookUrl = book.bookUrl
                 chapter.title = ref.title
                 chapter.title = ref.title
-                chapter.url = ref.completeHref.substringBeforeLast("#")
+                chapter.url = ref.completeHref
                 chapter.startFragmentId = ref.fragmentId
                 chapter.startFragmentId = ref.fragmentId
                 chapterList.lastOrNull()?.endFragmentId = chapter.startFragmentId
                 chapterList.lastOrNull()?.endFragmentId = chapter.startFragmentId
                 chapterList.lastOrNull()?.putVariable("nextUrl", chapter.url)
                 chapterList.lastOrNull()?.putVariable("nextUrl", chapter.url)