commit
fec84e3e07
@ -1,4 +1,11 @@ |
||||
**2021/08/09** |
||||
**2022/02/27** |
||||
|
||||
1. 修复选择文字不能选择单个文字的bug |
||||
2. |
||||
* APP内编写规则时,对由XPath|JSOUP|CSS组成的规则进行简单的默认补全。 |
||||
* 对需求文本的获取text |
||||
* 对需求文本的img元素(以img结尾)的获取alt属性 |
||||
* 对需求链接的获取href属性 |
||||
* 对需求图片的获取src属性 |
||||
* 详情页预处理存在js/json/正则的不对详情页规则进行补全 |
||||
* 多条规则只补全最后一条规则 |
||||
* 书源编辑页点击调试/保存时补全开始生效 |
||||
* 注意:不改变编辑框内容显示,保存后再次编辑可查看补全后的规则,方便调试时快速修改规则 |
||||
|
@ -0,0 +1,48 @@ |
||||
package io.legado.app.help |
||||
|
||||
// 补全时忽略匹配规则 |
||||
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 imgComplete=Regex("""(?<=(tag\.|[\+/@~>\| \&]))img[@/]text(\(\))?$|^img[@/]text(\(\))?$""",RegexOption.IGNORE_CASE) |
||||
/** |
||||
* 对简单规则进行补全,简化部分书源规则的编写 |
||||
* 该方法仅对对JSOUP/XPath/CSS规则生效 |
||||
* @author 希弥 |
||||
* @return 补全后的规则 或 原规则 |
||||
* @param rules 需要补全的规则 |
||||
* @param preRule 预处理规则 |
||||
* 用于分析详情页预处理规则 |
||||
* @param type 补全结果的类型,可选的值有: |
||||
* 1 文字(默认) |
||||
* 2 链接 |
||||
* 3 图片 |
||||
*/ |
||||
fun ruleComplete(rule:String?,preRule:String?="",type:Int=1):String?{ |
||||
if (rule.isNullOrEmpty()||rule.contains(completeIgnore)||preRule?.contains(completeIgnorePreRule)?:false){ |
||||
return rule |
||||
} |
||||
var textRule:String |
||||
var linkRule:String |
||||
var imgRule:String |
||||
var imgText:String |
||||
if (rule.contains(Regex("/[^@]+$"))){ |
||||
textRule="/text()" |
||||
linkRule="/@href" |
||||
imgRule="/@src" |
||||
imgText="img/@alt" |
||||
}else{ |
||||
textRule="@text" |
||||
linkRule="@href" |
||||
imgRule="@src" |
||||
imgText="img@alt" |
||||
} |
||||
var ret:String=rule |
||||
when(type){ |
||||
1 -> ret = rule.replace(Regex("$"),textRule).replace(imgComplete,imgText) |
||||
2 -> ret = rule.replace(Regex("$"),linkRule) |
||||
3 -> ret = rule.replace(Regex("$"),imgRule) |
||||
} |
||||
return ret |
||||
} |
Loading…
Reference in new issue