|
|
@ -121,6 +121,14 @@ class EpubFile(var book: Book) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private fun getContent(chapter: BookChapter): String? { |
|
|
|
private fun getContent(chapter: BookChapter): String? { |
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* <image width="1038" height="670" xlink:href="cover.jpeg"/> |
|
|
|
|
|
|
|
* <img width="1038" height="670" src="cover.jpeg"/> |
|
|
|
|
|
|
|
* titlepage.xhtml |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
if (chapter.url == "titlepage.xhtml") { |
|
|
|
|
|
|
|
return "<img src=\"cover.jpeg\" />" |
|
|
|
|
|
|
|
} |
|
|
|
/*获取当前章节文本*/ |
|
|
|
/*获取当前章节文本*/ |
|
|
|
epubBook?.let { epubBook -> |
|
|
|
epubBook?.let { epubBook -> |
|
|
|
val nextUrl = chapter.getVariable("nextUrl") |
|
|
|
val nextUrl = chapter.getVariable("nextUrl") |
|
|
@ -139,10 +147,10 @@ class EpubFile(var book: Book) { |
|
|
|
* content src text/000001.html(当前章节) |
|
|
|
* content src text/000001.html(当前章节) |
|
|
|
- * content src text/000001.html#toc_id_x (下一章节) |
|
|
|
- * content src text/000001.html#toc_id_x (下一章节) |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
if (!nextUrl.isNullOrBlank() && res.href == nextUrl!!.substringBeforeLast("#")) break |
|
|
|
if (res.href == nextUrl?.substringBeforeLast("#")) break |
|
|
|
} else if (isChapter) { |
|
|
|
} else if (isChapter) { |
|
|
|
// fix 最后一章存在多个html时 内容缺失 |
|
|
|
// fix 最后一章存在多个html时 内容缺失 |
|
|
|
if (!nextUrl.isNullOrBlank() && res.href == nextUrl.substringBeforeLast("#")) { |
|
|
|
if (res.href == nextUrl?.substringBeforeLast("#")) { |
|
|
|
break |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
elements.add(getBody(res, startFragmentId, endFragmentId)) |
|
|
|
elements.add(getBody(res, startFragmentId, endFragmentId)) |
|
|
@ -188,6 +196,7 @@ class EpubFile(var book: Book) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private fun getImage(href: String): InputStream? { |
|
|
|
private fun getImage(href: String): InputStream? { |
|
|
|
|
|
|
|
if (href == "cover.jpeg") return epubBook?.coverImage?.inputStream |
|
|
|
val abHref = href.replace("../", "") |
|
|
|
val abHref = href.replace("../", "") |
|
|
|
return epubBook?.resources?.getByHref(abHref)?.inputStream |
|
|
|
return epubBook?.resources?.getByHref(abHref)?.inputStream |
|
|
|
} |
|
|
|
} |
|
|
@ -276,8 +285,12 @@ class EpubFile(var book: Book) { |
|
|
|
while (i < contents.size) { |
|
|
|
while (i < contents.size) { |
|
|
|
val content = contents[i] |
|
|
|
val content = contents[i] |
|
|
|
if (!content.mediaType.toString().contains("htm")) continue |
|
|
|
if (!content.mediaType.toString().contains("htm")) continue |
|
|
|
/*检索到第一章href停止*/ |
|
|
|
/** |
|
|
|
if (refs[0].completeHref == content.href) break |
|
|
|
* 检索到第一章href停止 |
|
|
|
|
|
|
|
* completeHref可能有fragment(#id) 必须去除 |
|
|
|
|
|
|
|
* fix https://github.com/gedoor/legado/issues/1932 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
if (refs[0].completeHref.substringBeforeLast("#") == content.href) break |
|
|
|
val chapter = BookChapter() |
|
|
|
val chapter = BookChapter() |
|
|
|
var title = content.title |
|
|
|
var title = content.title |
|
|
|
if (TextUtils.isEmpty(title)) { |
|
|
|
if (TextUtils.isEmpty(title)) { |
|
|
|