|
|
@ -26,7 +26,7 @@ import kotlin.collections.HashMap |
|
|
|
@Suppress("unused", "RegExpRedundantEscape") |
|
|
|
@Suppress("unused", "RegExpRedundantEscape") |
|
|
|
class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { |
|
|
|
class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { |
|
|
|
|
|
|
|
|
|
|
|
var book: BaseBook? = if (ruleData is BaseBook) ruleData else null |
|
|
|
var book = if (ruleData is BaseBook) ruleData else null |
|
|
|
|
|
|
|
|
|
|
|
var chapter: BookChapter? = null |
|
|
|
var chapter: BookChapter? = null |
|
|
|
var nextChapterUrl: String? = null |
|
|
|
var nextChapterUrl: String? = null |
|
|
@ -65,7 +65,7 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { |
|
|
|
|
|
|
|
|
|
|
|
fun setRedirectUrl(url: String): URL? { |
|
|
|
fun setRedirectUrl(url: String): URL? { |
|
|
|
kotlin.runCatching { |
|
|
|
kotlin.runCatching { |
|
|
|
redirectUrl = URL(url.substringBefore(",{")) |
|
|
|
redirectUrl = URL(url.substringBefore(',')) |
|
|
|
} |
|
|
|
} |
|
|
|
return redirectUrl |
|
|
|
return redirectUrl |
|
|
|
} |
|
|
|
} |
|
|
@ -378,11 +378,6 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { |
|
|
|
mMode = Mode.Json |
|
|
|
mMode = Mode.Json |
|
|
|
ruleStr0.substring(6) |
|
|
|
ruleStr0.substring(6) |
|
|
|
} |
|
|
|
} |
|
|
|
ruleStr0.startsWith(":") -> { //:与伪类选择器冲突,建议改成?更合理 |
|
|
|
|
|
|
|
mMode = Mode.Regex |
|
|
|
|
|
|
|
isRegex = true |
|
|
|
|
|
|
|
ruleStr0.substring(1) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
( ruleStr0[1] == '.' || ruleStr0[1] == '[') && ruleStr0[0] == '$' || isJSON -> { |
|
|
|
( ruleStr0[1] == '.' || ruleStr0[1] == '[') && ruleStr0[0] == '$' || isJSON -> { |
|
|
|
mMode = Mode.Json |
|
|
|
mMode = Mode.Json |
|
|
|
ruleStr0 |
|
|
|
ruleStr0 |
|
|
@ -393,8 +388,14 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//拆分为规则列表 |
|
|
|
//拆分为规则列表 |
|
|
|
var start = 0 |
|
|
|
var start = if(ruleStr.startsWith(":")){ //仅首字符为:时为AllInOne,其实:与伪类选择器冲突,建议改成?更合理 |
|
|
|
|
|
|
|
mMode = Mode.Regex |
|
|
|
|
|
|
|
isRegex = true |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
}else 0 |
|
|
|
var tmp: String |
|
|
|
var tmp: String |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val jsMatcher = JS_PATTERN.matcher(ruleStr) |
|
|
|
val jsMatcher = JS_PATTERN.matcher(ruleStr) |
|
|
|
|
|
|
|
|
|
|
|
while (jsMatcher.find()){ |
|
|
|
while (jsMatcher.find()){ |
|
|
|