🛠️ Improve MarkdownParser
* Improved Markdown parsing and cleaning
This commit is contained in:
parent
aabf8ae737
commit
fb8c84495d
5 changed files with 29 additions and 13 deletions
|
|
@ -12,7 +12,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 ua.acclorite.book_story.presentation.core.util.clearAllMarkdown
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
import javax.xml.parsers.DocumentBuilderFactory
|
||||
|
|
@ -119,8 +119,11 @@ class Fb2TextParser @Inject constructor() : TextParser {
|
|||
return Resource.Error(UIText.StringResource(R.string.error_file_empty))
|
||||
}
|
||||
|
||||
val title = formattedLines.first().clearMarkdown()
|
||||
val title = formattedLines.first().clearAllMarkdown().let { title ->
|
||||
formattedLines.removeAt(0)
|
||||
if (title.isBlank()) return@let "Chapter 1"
|
||||
return@let title
|
||||
}
|
||||
|
||||
Log.i(FB2_TAG, "Successfully finished FB2 parsing.")
|
||||
Resource.Success(
|
||||
|
|
|
|||
|
|
@ -10,7 +10,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 ua.acclorite.book_story.presentation.core.util.clearAllMarkdown
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
|
||||
|
|
@ -35,8 +35,11 @@ class HtmlTextParser @Inject constructor(
|
|||
return Resource.Error(UIText.StringResource(R.string.error_file_empty))
|
||||
}
|
||||
|
||||
val title = lines.first().clearMarkdown()
|
||||
val title = lines.first().clearAllMarkdown().let { title ->
|
||||
lines.removeAt(0)
|
||||
if (title.isBlank()) return@let "Chapter 1"
|
||||
return@let title
|
||||
}
|
||||
|
||||
Log.i(HTML_TAG, "Successfully finished HTML parsing.")
|
||||
Resource.Success(
|
||||
|
|
|
|||
|
|
@ -12,7 +12,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 ua.acclorite.book_story.presentation.core.util.clearAllMarkdown
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
|
||||
|
|
@ -121,8 +121,11 @@ class PdfTextParser @Inject constructor(
|
|||
return Resource.Error(UIText.StringResource(R.string.error_file_empty))
|
||||
}
|
||||
|
||||
val title = strings.first().clearMarkdown()
|
||||
val title = strings.first().clearAllMarkdown().let { title ->
|
||||
strings.removeAt(0)
|
||||
if (title.isBlank()) return@let "Chapter 1"
|
||||
return@let title
|
||||
}
|
||||
|
||||
Log.i(PDF_TAG, "Successfully finished PDF parsing.")
|
||||
Resource.Success(
|
||||
|
|
|
|||
|
|
@ -10,7 +10,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 ua.acclorite.book_story.presentation.core.util.clearAllMarkdown
|
||||
import java.io.BufferedReader
|
||||
import java.io.File
|
||||
import java.io.FileReader
|
||||
|
|
@ -42,8 +42,11 @@ class TxtTextParser @Inject constructor() : TextParser {
|
|||
return Resource.Error(UIText.StringResource(R.string.error_file_empty))
|
||||
}
|
||||
|
||||
val title = lines.first().clearMarkdown()
|
||||
val title = lines.first().clearAllMarkdown().let { title ->
|
||||
lines.removeAt(0)
|
||||
if (title.isBlank()) return@let "Chapter 1"
|
||||
return@let title
|
||||
}
|
||||
|
||||
Log.i(TXT_TAG, "Successfully finished TXT parsing.")
|
||||
Resource.Success(
|
||||
|
|
|
|||
|
|
@ -24,5 +24,9 @@ fun Float.coerceAndPreventNaN(): Float {
|
|||
}
|
||||
|
||||
fun String.clearMarkdown(): String {
|
||||
return replace(Regex("_|\\*\\*"), "")
|
||||
return replace(Regex("(_+)|(\\*+)"), "")
|
||||
}
|
||||
|
||||
fun String.clearAllMarkdown(): String {
|
||||
return replace(Regex("(_+)|(\\*+)|(#+)"), "").trim()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue