优化
This commit is contained in:
@@ -6,7 +6,9 @@ import androidx.documentfile.provider.DocumentFile
|
|||||||
import com.script.ScriptBindings
|
import com.script.ScriptBindings
|
||||||
import com.script.rhino.RhinoScriptEngine
|
import com.script.rhino.RhinoScriptEngine
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.constant.*
|
import io.legado.app.constant.AppLog
|
||||||
|
import io.legado.app.constant.AppPattern
|
||||||
|
import io.legado.app.constant.BookType
|
||||||
import io.legado.app.data.appDb
|
import io.legado.app.data.appDb
|
||||||
import io.legado.app.data.entities.BaseSource
|
import io.legado.app.data.entities.BaseSource
|
||||||
import io.legado.app.data.entities.Book
|
import io.legado.app.data.entities.Book
|
||||||
@@ -16,16 +18,47 @@ import io.legado.app.exception.NoBooksDirException
|
|||||||
import io.legado.app.exception.NoStackTraceException
|
import io.legado.app.exception.NoStackTraceException
|
||||||
import io.legado.app.exception.TocEmptyException
|
import io.legado.app.exception.TocEmptyException
|
||||||
import io.legado.app.help.AppWebDav
|
import io.legado.app.help.AppWebDav
|
||||||
import io.legado.app.help.book.*
|
import io.legado.app.help.book.BookHelp
|
||||||
|
import io.legado.app.help.book.ContentProcessor
|
||||||
|
import io.legado.app.help.book.addType
|
||||||
|
import io.legado.app.help.book.archiveName
|
||||||
|
import io.legado.app.help.book.getArchiveUri
|
||||||
|
import io.legado.app.help.book.getLocalUri
|
||||||
|
import io.legado.app.help.book.getRemoteUrl
|
||||||
|
import io.legado.app.help.book.isArchive
|
||||||
|
import io.legado.app.help.book.isEpub
|
||||||
|
import io.legado.app.help.book.isMobi
|
||||||
|
import io.legado.app.help.book.isPdf
|
||||||
|
import io.legado.app.help.book.isUmd
|
||||||
|
import io.legado.app.help.book.removeLocalUriCache
|
||||||
|
import io.legado.app.help.book.simulatedTotalChapterNum
|
||||||
|
import io.legado.app.help.book.update
|
||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.lib.webdav.WebDav
|
import io.legado.app.lib.webdav.WebDav
|
||||||
import io.legado.app.lib.webdav.WebDavException
|
import io.legado.app.lib.webdav.WebDavException
|
||||||
import io.legado.app.model.analyzeRule.AnalyzeUrl
|
import io.legado.app.model.analyzeRule.AnalyzeUrl
|
||||||
import io.legado.app.utils.*
|
import io.legado.app.utils.ArchiveUtils
|
||||||
|
import io.legado.app.utils.FileDoc
|
||||||
|
import io.legado.app.utils.FileUtils
|
||||||
|
import io.legado.app.utils.GSON
|
||||||
|
import io.legado.app.utils.MD5Utils
|
||||||
|
import io.legado.app.utils.externalFiles
|
||||||
|
import io.legado.app.utils.fromJsonObject
|
||||||
|
import io.legado.app.utils.getFile
|
||||||
|
import io.legado.app.utils.inputStream
|
||||||
|
import io.legado.app.utils.isAbsUrl
|
||||||
|
import io.legado.app.utils.isContentScheme
|
||||||
|
import io.legado.app.utils.isDataUrl
|
||||||
|
import io.legado.app.utils.printOnDebug
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import org.apache.commons.text.StringEscapeUtils
|
import org.apache.commons.text.StringEscapeUtils
|
||||||
import splitties.init.appCtx
|
import splitties.init.appCtx
|
||||||
import java.io.*
|
import java.io.ByteArrayInputStream
|
||||||
|
import java.io.File
|
||||||
|
import java.io.FileInputStream
|
||||||
|
import java.io.FileNotFoundException
|
||||||
|
import java.io.FileOutputStream
|
||||||
|
import java.io.InputStream
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -112,9 +145,14 @@ object LocalBook {
|
|||||||
list.forEachIndexed { index, bookChapter ->
|
list.forEachIndexed { index, bookChapter ->
|
||||||
bookChapter.index = index
|
bookChapter.index = index
|
||||||
}
|
}
|
||||||
book.latestChapterTitle = list.last().title
|
val replaceRules = ContentProcessor.get(book).getTitleReplaceRules()
|
||||||
|
book.durChapterTitle = list.getOrElse(book.durChapterIndex) { list.last() }
|
||||||
|
.getDisplayTitle(replaceRules, book.getUseReplaceRule())
|
||||||
|
book.latestChapterTitle =
|
||||||
|
list.getOrElse(book.simulatedTotalChapterNum() - 1) { list.last() }
|
||||||
|
.getDisplayTitle(replaceRules, book.getUseReplaceRule())
|
||||||
book.totalChapterNum = list.size
|
book.totalChapterNum = list.size
|
||||||
book.save()
|
book.update()
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ object BookChapterList {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val replaceRules = ContentProcessor.get(book.name, book.origin).getTitleReplaceRules()
|
val replaceRules = ContentProcessor.get(book).getTitleReplaceRules()
|
||||||
book.durChapterTitle = list.getOrElse(book.durChapterIndex) { list.last() }
|
book.durChapterTitle = list.getOrElse(book.durChapterIndex) { list.last() }
|
||||||
.getDisplayTitle(replaceRules, book.getUseReplaceRule())
|
.getDisplayTitle(replaceRules, book.getUseReplaceRule())
|
||||||
if (book.totalChapterNum < list.size) {
|
if (book.totalChapterNum < list.size) {
|
||||||
|
|||||||
@@ -226,6 +226,12 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
|
|||||||
appDb.bookDao.update(book)
|
appDb.bookDao.update(book)
|
||||||
appDb.bookChapterDao.delByBook(book.bookUrl)
|
appDb.bookChapterDao.delByBook(book.bookUrl)
|
||||||
appDb.bookChapterDao.insert(*it.toTypedArray())
|
appDb.bookChapterDao.insert(*it.toTypedArray())
|
||||||
|
if (book.isSameNameAuthor(ReadBook.book)) {
|
||||||
|
ReadBook.book = book
|
||||||
|
ReadBook.chapterSize = book.totalChapterNum
|
||||||
|
ReadBook.simulatedChapterSize = book.simulatedTotalChapterNum()
|
||||||
|
ReadBook.clearTextChapter()
|
||||||
|
}
|
||||||
chapterListData.postValue(it)
|
chapterListData.postValue(it)
|
||||||
}
|
}
|
||||||
}.onError {
|
}.onError {
|
||||||
|
|||||||
Reference in New Issue
Block a user