🛠️ Add ParseText function

* Parses text
This commit is contained in:
Acclorite 2024-09-20 17:02:20 +03:00
parent e6a7c5436a
commit 2334e9c3ec
3 changed files with 29 additions and 0 deletions

View file

@ -28,6 +28,7 @@ import ua.acclorite.book_story.data.remote.dto.LatestReleaseInfo
import ua.acclorite.book_story.domain.model.Book
import ua.acclorite.book_story.domain.model.BookWithText
import ua.acclorite.book_story.domain.model.BookWithTextAndCover
import ua.acclorite.book_story.domain.model.ChapterWithText
import ua.acclorite.book_story.domain.model.ColorPreset
import ua.acclorite.book_story.domain.model.History
import ua.acclorite.book_story.domain.model.NullableBook
@ -699,6 +700,16 @@ class BookRepositoryImpl @Inject constructor(
)
}
/**
* Parse text from given [file].
* May give [Resource.Error] if something went wrong.
*
* @param file File to parse. Should be one of supported file formats.
*/
override suspend fun parseText(file: File): Resource<List<ChapterWithText>> {
return textParser.parse(file)
}
/**
* Insert history in database.
*/

View file

@ -5,11 +5,13 @@ import ua.acclorite.book_story.data.remote.dto.LatestReleaseInfo
import ua.acclorite.book_story.domain.model.Book
import ua.acclorite.book_story.domain.model.BookWithText
import ua.acclorite.book_story.domain.model.BookWithTextAndCover
import ua.acclorite.book_story.domain.model.ChapterWithText
import ua.acclorite.book_story.domain.model.ColorPreset
import ua.acclorite.book_story.domain.model.History
import ua.acclorite.book_story.domain.model.NullableBook
import ua.acclorite.book_story.domain.model.SelectableFile
import ua.acclorite.book_story.domain.util.CoverImage
import ua.acclorite.book_story.domain.util.Resource
import ua.acclorite.book_story.presentation.data.MainState
import java.io.File
@ -77,6 +79,8 @@ interface BookRepository {
suspend fun getBookFromFile(
file: File
): NullableBook
suspend fun parseText(file: File): Resource<List<ChapterWithText>>
/* - - - - - - - - - - - - - - - - - - - - - - */

View file

@ -0,0 +1,14 @@
package ua.acclorite.book_story.domain.use_case
import ua.acclorite.book_story.domain.model.ChapterWithText
import ua.acclorite.book_story.domain.repository.BookRepository
import ua.acclorite.book_story.domain.util.Resource
import java.io.File
import javax.inject.Inject
class ParseText @Inject constructor(private val repository: BookRepository) {
suspend fun execute(file: File): Resource<List<ChapterWithText>> {
return repository.parseText(file)
}
}