diff --git a/app/src/main/java/io/legado/app/data/dao/RssSourceDao.kt b/app/src/main/java/io/legado/app/data/dao/RssSourceDao.kt index cf91fdfad..fa11d3e8b 100644 --- a/app/src/main/java/io/legado/app/data/dao/RssSourceDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/RssSourceDao.kt @@ -17,7 +17,7 @@ interface RssSourceDao { @Query("select * from rssSources where sourceUrl in (:sourceUrls)") fun getRssSources(vararg sourceUrls: String): List - @get:Query("SELECT * FROM rssSources") + @get:Query("SELECT * FROM rssSources order by customOrder") val all: List @get:Query("select count(sourceUrl) from rssSources") @@ -135,4 +135,4 @@ interface RssSourceDao { dealGroups(list) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/io/legado/app/data/entities/RssSource.kt b/app/src/main/java/io/legado/app/data/entities/RssSource.kt index 657c77473..5baa679a3 100644 --- a/app/src/main/java/io/legado/app/data/entities/RssSource.kt +++ b/app/src/main/java/io/legado/app/data/entities/RssSource.kt @@ -108,6 +108,7 @@ data class RssSource( && equal(ruleContent, source.ruleContent) && enableJs == source.enableJs && loadWithBaseUrl == source.loadWithBaseUrl + && equal(variableComment, source.variableComment) } private fun equal(a: String?, b: String?): Boolean { @@ -182,7 +183,8 @@ data class RssSource( enabledCookieJar = doc.readBool("$.enabledCookieJar") ?: false, customOrder = doc.readInt("$.customOrder") ?: 0, lastUpdateTime = doc.readLong("$.lastUpdateTime") ?: 0L, - coverDecodeJs = doc.readString("$.coverDecodeJs") + coverDecodeJs = doc.readString("$.coverDecodeJs"), + variableComment = doc.readString("$.variableComment") ) } } @@ -206,4 +208,4 @@ data class RssSource( } } -} \ No newline at end of file +} diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt index f0f9ce1c1..ec5933448 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt @@ -108,6 +108,7 @@ class AnalyzeUrl( var start = 0 var tmp: String val jsMatcher = JS_PATTERN.matcher(ruleUrl) + var hasRule = true while (jsMatcher.find()) { if (jsMatcher.start() > start) { tmp = @@ -118,8 +119,11 @@ class AnalyzeUrl( } ruleUrl = evalJS(jsMatcher.group(2) ?: jsMatcher.group(1), ruleUrl) as String start = jsMatcher.end() + if (jsMatcher.group(0)!!.startsWith("@js:", true)) { + hasRule = false + } } - if (ruleUrl.length > start) { + if (ruleUrl.length > start && hasRule) { tmp = ruleUrl.substring(start).trim { it <= ' ' } if (tmp.isNotEmpty()) { ruleUrl = tmp.replace("@result", ruleUrl)