|
|
@@ -154,7 +154,7 @@ class ChangeSourceSearchUseCase(
|
|
|
loadInfo || loadToc || loadWordCount -> {
|
|
|
val book = searchBook.toBook()
|
|
|
try {
|
|
|
- loadBookInfo(
|
|
|
+ val wordCountSearchBook = loadBookInfo(
|
|
|
source,
|
|
|
book,
|
|
|
loadToc,
|
|
|
@@ -163,8 +163,7 @@ class ChangeSourceSearchUseCase(
|
|
|
fromReadBookActivity,
|
|
|
contentProcessor
|
|
|
)
|
|
|
- val processedSearchBook = book.toSearchBook()
|
|
|
- processedBooks.add(processedSearchBook)
|
|
|
+ processedBooks.add(wordCountSearchBook ?: book.toSearchBook())
|
|
|
} catch (e: Throwable) {
|
|
|
if (e is CancellationException) throw e
|
|
|
processedBooks.add(searchBook)
|
|
|
@@ -187,12 +186,12 @@ class ChangeSourceSearchUseCase(
|
|
|
oldBook: Book,
|
|
|
fromReadBookActivity: Boolean,
|
|
|
contentProcessor: ContentProcessor,
|
|
|
- ) {
|
|
|
+ ): SearchBook? {
|
|
|
if (book.tocUrl.isEmpty()) {
|
|
|
WebBook.getBookInfoAwait(source, book)
|
|
|
}
|
|
|
if (loadToc || loadWordCount) {
|
|
|
- loadBookToc(
|
|
|
+ return loadBookToc(
|
|
|
source,
|
|
|
book,
|
|
|
loadWordCount,
|
|
|
@@ -201,6 +200,7 @@ class ChangeSourceSearchUseCase(
|
|
|
contentProcessor
|
|
|
)
|
|
|
}
|
|
|
+ return null
|
|
|
}
|
|
|
|
|
|
private suspend fun loadBookToc(
|
|
|
@@ -210,7 +210,7 @@ class ChangeSourceSearchUseCase(
|
|
|
oldBook: Book,
|
|
|
fromReadBookActivity: Boolean,
|
|
|
contentProcessor: ContentProcessor,
|
|
|
- ) {
|
|
|
+ ): SearchBook? {
|
|
|
val chapters = WebBook.getChapterListAwait(source, book).getOrThrow()
|
|
|
for (chapter in chapters) {
|
|
|
chapter.internString()
|
|
|
@@ -222,7 +222,7 @@ class ChangeSourceSearchUseCase(
|
|
|
bookMap[book.primaryStr()] = book
|
|
|
book.releaseHtmlData()
|
|
|
if (loadWordCount) {
|
|
|
- loadBookWordCount(
|
|
|
+ return loadBookWordCount(
|
|
|
source,
|
|
|
book,
|
|
|
chapters,
|
|
|
@@ -231,6 +231,7 @@ class ChangeSourceSearchUseCase(
|
|
|
contentProcessor
|
|
|
)
|
|
|
}
|
|
|
+ return null
|
|
|
}
|
|
|
|
|
|
private suspend fun loadBookWordCount(
|
|
|
@@ -240,21 +241,21 @@ class ChangeSourceSearchUseCase(
|
|
|
oldBook: Book,
|
|
|
fromReadBookActivity: Boolean,
|
|
|
contentProcessor: ContentProcessor,
|
|
|
- ) {
|
|
|
- if (chapters.isEmpty()) return
|
|
|
+ ): SearchBook? {
|
|
|
+ if (chapters.isEmpty()) return null
|
|
|
val chapterIndex = if (fromReadBookActivity) {
|
|
|
BookHelp.getDurChapter(oldBook, chapters)
|
|
|
} else {
|
|
|
chapters.lastIndex
|
|
|
}
|
|
|
- if (chapterIndex !in chapters.indices) return
|
|
|
+ if (chapterIndex !in chapters.indices) return null
|
|
|
val bookChapter = chapters[chapterIndex]
|
|
|
var title = bookChapter.title.trim()
|
|
|
if (title.length > 20) {
|
|
|
title = title.substring(0, 20) + "…"
|
|
|
}
|
|
|
val startTime = System.currentTimeMillis()
|
|
|
- try {
|
|
|
+ return try {
|
|
|
val nextChapterUrl = chapters.getOrNull(chapterIndex + 1)?.url
|
|
|
var content = WebBook.getContentAwait(source, book, bookChapter, nextChapterUrl, false)
|
|
|
content = contentProcessor.getContent(oldBook, bookChapter, content, false).toString()
|