Update AnalyzeRule.kt

优化
pull/1121/head
bushixuanqi 4 years ago committed by GitHub
parent a78193f66c
commit a9dfd48603
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 29
      app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt

@ -447,14 +447,35 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions {
if(evalMatcher.find()){ if(evalMatcher.find()){
var modeX = mode == Mode.Js || mode == Mode.Regex var modeX = mode == Mode.Js || mode == Mode.Regex
if(evalMatcher.start() != 0){ if (evalMatcher.start() > 0 ) {
tmp = rule.substring(start, evalMatcher.start()) tmp = rule.substring(0, evalMatcher.start())
modeX = modeX || tmp.contains("##") modeX = modeX || tmp.contains("##")
splitRegex(tmp) splitRegex(tmp)
} }
if(!modeX)mode = Mode.Regex if(!modeX)mode = Mode.Regex
tmp = evalMatcher.group()
do{ when {
tmp.startsWith("@get:", true) -> {
ruleType.add(getRuleType)
ruleParam.add(tmp.substring(6, tmp.lastIndex))
}
tmp.startsWith("{{") -> {
ruleType.add(jsRuleType)
ruleParam.add(tmp.substring(2, tmp.length - 2))
}
else -> {
splitRegex(tmp)
}
}
start = evalMatcher.end()
while (evalMatcher.find()){
if (evalMatcher.start() > start) {
tmp = rule.substring(start, evalMatcher.start())
splitRegex(tmp)
}
tmp = evalMatcher.group() tmp = evalMatcher.group()
when { when {
tmp.startsWith("@get:", true) -> { tmp.startsWith("@get:", true) -> {
@ -470,7 +491,7 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions {
} }
} }
start = evalMatcher.end() start = evalMatcher.end()
}while (evalMatcher.find()) }
} }
if (rule.length > start) { if (rule.length > start) {

Loading…
Cancel
Save