|
|
@ -1,17 +1,24 @@ |
|
|
|
package io.legado.app.help |
|
|
|
package io.legado.app.help |
|
|
|
|
|
|
|
|
|
|
|
// 补全时忽略匹配规则 |
|
|
|
// 补全时忽略匹配规则 |
|
|
|
val completeIgnore=Regex("""\\n|##|@js:|<js>|@Json:|\$.|(text|ownText|textNodes|href|content|html|alt|all|value|src)(\(\)|##.*)?\s*$""") |
|
|
|
val completeIgnore = |
|
|
|
|
|
|
|
Regex("""\\n|##|@js:|<js>|@Json:|\$.|(text|ownText|textNodes|href|content|html|alt|all|value|src)(\(\)|##.*)?\s*$""") |
|
|
|
|
|
|
|
|
|
|
|
// 补全时忽略匹配的规则(仅对详情页预处理规则生效) |
|
|
|
// 补全时忽略匹配的规则(仅对详情页预处理规则生效) |
|
|
|
val completeIgnorePreRule = Regex("""^:|##|@js:|<js>|@Json:|\$.""") |
|
|
|
val completeIgnorePreRule = Regex("""^:|##|@js:|<js>|@Json:|\$.""") |
|
|
|
|
|
|
|
|
|
|
|
// 匹配从图片获取信息的规则 |
|
|
|
// 匹配从图片获取信息的规则 |
|
|
|
val imgComplete=Regex("""(?<=(tag\.|[\+/@~>\| \&]))img[@/]text(\(\))?$|^img[@/]text(\(\))?$""",RegexOption.IGNORE_CASE) |
|
|
|
val imgComplete = Regex( |
|
|
|
|
|
|
|
"""(?<=(tag\.|[+/@~>| &]))img[@/]text(\(\))?$|^img[@/]text(\(\))?$""", |
|
|
|
|
|
|
|
RegexOption.IGNORE_CASE |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 对简单规则进行补全,简化部分书源规则的编写 |
|
|
|
* 对简单规则进行补全,简化部分书源规则的编写 |
|
|
|
* 该方法仅对对JSOUP/XPath/CSS规则生效 |
|
|
|
* 该方法仅对对JSOUP/XPath/CSS规则生效 |
|
|
|
* @author 希弥 |
|
|
|
* @author 希弥 |
|
|
|
* @return 补全后的规则 或 原规则 |
|
|
|
* @return 补全后的规则 或 原规则 |
|
|
|
* @param rules 需要补全的规则 |
|
|
|
* @param rule 需要补全的规则 |
|
|
|
* @param preRule 预处理规则 |
|
|
|
* @param preRule 预处理规则 |
|
|
|
* 用于分析详情页预处理规则 |
|
|
|
* 用于分析详情页预处理规则 |
|
|
|
* @param type 补全结果的类型,可选的值有: |
|
|
|
* @param type 补全结果的类型,可选的值有: |
|
|
@ -20,13 +27,15 @@ val imgComplete=Regex("""(?<=(tag\.|[\+/@~>\| \&]))img[@/]text(\(\))?$|^img[@/]t |
|
|
|
* 3 图片 |
|
|
|
* 3 图片 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
fun ruleComplete(rule: String?, preRule: String? = "", type: Int = 1): String? { |
|
|
|
fun ruleComplete(rule: String?, preRule: String? = "", type: Int = 1): String? { |
|
|
|
if (rule.isNullOrEmpty()||rule.contains(completeIgnore)||preRule?.contains(completeIgnorePreRule)?:false){ |
|
|
|
if (rule.isNullOrEmpty() || rule.contains(completeIgnore) |
|
|
|
|
|
|
|
|| preRule?.contains(completeIgnorePreRule) == true |
|
|
|
|
|
|
|
) { |
|
|
|
return rule |
|
|
|
return rule |
|
|
|
} |
|
|
|
} |
|
|
|
var textRule:String |
|
|
|
val textRule: String |
|
|
|
var linkRule:String |
|
|
|
val linkRule: String |
|
|
|
var imgRule:String |
|
|
|
val imgRule: String |
|
|
|
var imgText:String |
|
|
|
val imgText: String |
|
|
|
if (rule.contains(Regex("/[^@]+$"))) { |
|
|
|
if (rule.contains(Regex("/[^@]+$"))) { |
|
|
|
textRule = "/text()" |
|
|
|
textRule = "/text()" |
|
|
|
linkRule = "/@href" |
|
|
|
linkRule = "/@href" |
|
|
|