From 0077241595999bc321b302fb80ebe7c5edd3bbfd Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Sat, 16 Nov 2024 10:24:00 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Fix=20some=20books=20ca?= =?UTF-8?q?nnot=20parse=20in=20EPUB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed the scenario when the book has "volume.opf" instead of "content.opf" --- .../acclorite/book_story/data/parser/epub/EpubFileParser.kt | 2 +- .../acclorite/book_story/data/parser/epub/EpubTextParser.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubFileParser.kt b/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubFileParser.kt index 53cd6b75..23362fcf 100644 --- a/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubFileParser.kt +++ b/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubFileParser.kt @@ -24,7 +24,7 @@ class EpubFileParser @Inject constructor() : FileParser { withContext(Dispatchers.IO) { ZipFile(file).use { zip -> val opfEntry = zip.entries().asSequence().find { entry -> - entry.name.endsWith("content.opf") + entry.name.endsWith(".opf", ignoreCase = true) } ?: return@withContext val opfContent = zip diff --git a/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubTextParser.kt b/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubTextParser.kt index 6f314a46..b6a00df5 100644 --- a/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubTextParser.kt +++ b/app/src/main/java/ua/acclorite/book_story/data/parser/epub/EpubTextParser.kt @@ -51,14 +51,14 @@ class EpubTextParser @Inject constructor( entry.name.endsWith("toc.ncx", ignoreCase = true) } val opfEntry = zip.entries().toList().find { entry -> - entry.name.endsWith("content.opf", ignoreCase = true) + entry.name.endsWith(".opf", ignoreCase = true) } val chapterEntries = zip.getChapterEntries(opfEntry) val chapterTitleEntries = zip.getChapterTitleMapFromToc(tocEntry) Log.i(EPUB_TAG, "TOC Entry: ${tocEntry?.name ?: "no toc.ncx"}") - Log.i(EPUB_TAG, "OPF Entry: ${opfEntry?.name ?: "no content.opf"}") + Log.i(EPUB_TAG, "OPF Entry: ${opfEntry?.name ?: "no .opf entry"}") Log.i(EPUB_TAG, "Chapter entries, size: ${chapterEntries.size}") Log.i(EPUB_TAG, "Title entries, size: ${chapterTitleEntries?.size}")