|  |  |  | @ -11,6 +11,7 @@ import io.legado.app.data.entities.BookChapter | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.data.entities.ReplaceRule | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.model.localBook.AnalyzeTxtFile | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.utils.* | 
			
		
	
		
			
				
					|  |  |  |  | import kotlinx.coroutines.Dispatchers.IO | 
			
		
	
		
			
				
					|  |  |  |  | import kotlinx.coroutines.Dispatchers.Main | 
			
		
	
		
			
				
					|  |  |  |  | import kotlinx.coroutines.withContext | 
			
		
	
		
			
				
					|  |  |  |  | import org.apache.commons.text.similarity.JaccardSimilarity | 
			
		
	
	
		
			
				
					|  |  |  | @ -242,24 +243,16 @@ object BookHelp { | 
			
		
	
		
			
				
					|  |  |  |  |     private var replaceRules: List<ReplaceRule> = arrayListOf() | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Synchronized | 
			
		
	
		
			
				
					|  |  |  |  |     fun upReplaceRules(name: String? = null, origin: String? = null) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (name != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             if (bookName != name || bookOrigin != origin) { | 
			
		
	
		
			
				
					|  |  |  |  |                 replaceRules = if (origin.isNullOrEmpty()) { | 
			
		
	
		
			
				
					|  |  |  |  |                     App.db.replaceRuleDao().findEnabledByScope(name) | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     App.db.replaceRuleDao().findEnabledByScope(name, origin) | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 bookName = name | 
			
		
	
		
			
				
					|  |  |  |  |                 bookOrigin = origin | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             val o = bookOrigin | 
			
		
	
		
			
				
					|  |  |  |  |             bookName?.let { | 
			
		
	
		
			
				
					|  |  |  |  |                 replaceRules = if (o.isNullOrEmpty()) { | 
			
		
	
		
			
				
					|  |  |  |  |                     App.db.replaceRuleDao().findEnabledByScope(it) | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     App.db.replaceRuleDao().findEnabledByScope(it, o) | 
			
		
	
		
			
				
					|  |  |  |  |     suspend fun upReplaceRules() { | 
			
		
	
		
			
				
					|  |  |  |  |         withContext(IO) { | 
			
		
	
		
			
				
					|  |  |  |  |             synchronized(this) { | 
			
		
	
		
			
				
					|  |  |  |  |                 val o = bookOrigin | 
			
		
	
		
			
				
					|  |  |  |  |                 bookName?.let { | 
			
		
	
		
			
				
					|  |  |  |  |                     replaceRules = if (o.isNullOrEmpty()) { | 
			
		
	
		
			
				
					|  |  |  |  |                         App.db.replaceRuleDao().findEnabledByScope(it) | 
			
		
	
		
			
				
					|  |  |  |  |                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                         App.db.replaceRuleDao().findEnabledByScope(it, o) | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  |  | @ -274,7 +267,17 @@ object BookHelp { | 
			
		
	
		
			
				
					|  |  |  |  |     ): String { | 
			
		
	
		
			
				
					|  |  |  |  |         var c = content | 
			
		
	
		
			
				
					|  |  |  |  |         if (enableReplace) { | 
			
		
	
		
			
				
					|  |  |  |  |             upReplaceRules(name, origin) | 
			
		
	
		
			
				
					|  |  |  |  |             synchronized(this) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (bookName != name || bookOrigin != origin) { | 
			
		
	
		
			
				
					|  |  |  |  |                     bookName = name | 
			
		
	
		
			
				
					|  |  |  |  |                     bookOrigin = origin | 
			
		
	
		
			
				
					|  |  |  |  |                     replaceRules = if (origin.isNullOrEmpty()) { | 
			
		
	
		
			
				
					|  |  |  |  |                         App.db.replaceRuleDao().findEnabledByScope(name) | 
			
		
	
		
			
				
					|  |  |  |  |                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                         App.db.replaceRuleDao().findEnabledByScope(name, origin) | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             replaceRules.forEach { item -> | 
			
		
	
		
			
				
					|  |  |  |  |                 item.pattern.let { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (it.isNotEmpty()) { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |