pull/737/head
Robot 5 years ago
commit 1231133469
  1. 3
      app/build.gradle
  2. 18
      app/src/main/java/io/legado/app/help/BookHelp.kt

@ -192,9 +192,6 @@ dependencies {
//apache //apache
implementation 'org.apache.commons:commons-text:1.9' implementation 'org.apache.commons:commons-text:1.9'
//
implementation 'net.ricecode:string-similarity:1.0.0'
//MarkDown //MarkDown
implementation 'io.noties.markwon:core:4.6.0' implementation 'io.noties.markwon:core:4.6.0'
implementation 'io.noties.markwon:image-glide:4.6.0' implementation 'io.noties.markwon:image-glide:4.6.0'

@ -10,8 +10,7 @@ import io.legado.app.model.analyzeRule.AnalyzeUrl
import io.legado.app.model.localBook.LocalBook import io.legado.app.model.localBook.LocalBook
import io.legado.app.utils.* import io.legado.app.utils.*
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import net.ricecode.similarity.JaroWinklerStrategy import org.apache.commons.text.similarity.JaccardSimilarity
import net.ricecode.similarity.StringSimilarityServiceImpl
import java.io.File import java.io.File
import java.util.concurrent.CopyOnWriteArraySet import java.util.concurrent.CopyOnWriteArraySet
import java.util.regex.Matcher import java.util.regex.Matcher
@ -68,16 +67,16 @@ object BookHelp {
content.split("\n").forEach { content.split("\n").forEach {
val matcher = AppPattern.imgPattern.matcher(it) val matcher = AppPattern.imgPattern.matcher(it)
if (matcher.find()) { if (matcher.find()) {
var src = matcher.group(1) matcher.group(1)?.let { src ->
src = NetworkUtils.getAbsoluteURL(bookChapter.url, src) val mSrc = NetworkUtils.getAbsoluteURL(bookChapter.url, src)
src?.let { saveImage(book, mSrc)
saveImage(book, src)
} }
} }
} }
postEvent(EventBus.SAVE_CONTENT, bookChapter) postEvent(EventBus.SAVE_CONTENT, bookChapter)
} }
@Suppress("unused")
fun saveFont(book: Book, bookChapter: BookChapter, font: ByteArray) { fun saveFont(book: Book, bookChapter: BookChapter, font: ByteArray) {
FileUtils.createFileIfNotExist( FileUtils.createFileIfNotExist(
downloadDir, downloadDir,
@ -216,6 +215,10 @@ object BookHelp {
.trim { it <= ' ' } .trim { it <= ' ' }
} }
private val jaccardSimilarity by lazy {
JaccardSimilarity()
}
/** /**
* 根据目录名获取当前章节 * 根据目录名获取当前章节
*/ */
@ -248,10 +251,9 @@ object BookHelp {
var newIndex = 0 var newIndex = 0
var newNum = 0 var newNum = 0
if (oldName.isNotEmpty()) { if (oldName.isNotEmpty()) {
val service = StringSimilarityServiceImpl(JaroWinklerStrategy())
for (i in min..max) { for (i in min..max) {
val newName = getPureChapterName(newChapterList[i].title) val newName = getPureChapterName(newChapterList[i].title)
val temp = service.score(oldName, newName) val temp = jaccardSimilarity.apply(oldName, newName)
if (temp > nameSim) { if (temp > nameSim) {
nameSim = temp nameSim = temp
newIndex = i newIndex = i

Loading…
Cancel
Save