|
@@ -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
|
|
|
}
|
|
}
|
|
|
|
|
|