Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

kunfei 4 vuotta sitten
vanhempi
commit
4af1db62f5

+ 2 - 2
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<RssSource>
 
-    @get:Query("SELECT * FROM rssSources")
+    @get:Query("SELECT * FROM rssSources order by customOrder")
     val all: List<RssSource>
 
     @get:Query("select count(sourceUrl) from rssSources")
@@ -135,4 +135,4 @@ interface RssSourceDao {
             dealGroups(list)
         }
     }
-}
+}

+ 4 - 2
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(
         }
     }
 
-}
+}

+ 5 - 1
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)