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 5bc26d18..a9b571e4 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 @@ -13,6 +13,7 @@ import ua.acclorite.book_story.domain.model.Chapter import ua.acclorite.book_story.domain.model.ChapterWithText import ua.acclorite.book_story.domain.util.Resource import ua.acclorite.book_story.domain.util.UIText +import ua.acclorite.book_story.presentation.core.util.clearMarkdown import java.io.File import java.util.zip.ZipEntry import java.util.zip.ZipFile @@ -107,7 +108,12 @@ class EpubTextParser @Inject constructor( it.readText() } - val chapter = documentParser.run { Jsoup.parse(content).parseDocument() } + val chapter = + documentParser.run { Jsoup.parse(content).parseDocument() }.toMutableList() + val chapterTitle = chapter.firstOrNull()?.clearMarkdown() + ?: "Chapter $chapterIndex" // In case could not get first line(shouldn't happen) + chapter.removeFirstOrNull() + if (chapter.isEmpty()) { Log.w(EPUB_TAG, "Chapter ${entry.name} is empty.") return@forEach @@ -117,7 +123,7 @@ class EpubTextParser @Inject constructor( ChapterWithText( chapter = Chapter( index = chapters.size, - title = "Chapter $chapterIndex", // Generic name, but at least something + title = chapterTitle, startIndex = chapterTextIndex + 1, endIndex = chapterTextIndex + chapter.size ), diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Extensions.kt b/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Extensions.kt index 74a6f04a..89cb6e5f 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Extensions.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/core/util/Extensions.kt @@ -61,4 +61,8 @@ fun Modifier.noRippleClickable( onDoubleClick = onDoubleClick, onClick = onClick ) +} + +fun String.clearMarkdown(): String { + return replace(Regex("_|\\*\\*"), "").trim() } \ No newline at end of file