bushixuanqi
f6fe4f3099
Merge remote-tracking branch 'origin/master' into master
...
# Conflicts:
# app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt
# app/src/main/java/io/legado/app/model/analyzeRule/RuleAnalyzer.kt
3 years ago
bushixuanqi
0aa63a9c69
Update AnalyzeByJSoup.kt
...
简化
3 years ago
bushixuanqi
f18ff8a1ff
Update AnalyzeByJSoup.kt
...
简化
3 years ago
bushixuanqi
69ea1ee3b4
Update AnalyzeByJSoup.kt
...
简化代码
3 years ago
kunfei
8d8b1e0f39
Merge pull request #1106 from bushixuanqi/master
...
整合优化修复
3 years ago
bushixuanqi
5ba01ddab9
Update RuleAnalyzer.kt
...
解决采用新平衡组后,{$.rule}内嵌规则起始位置未记录,导致未将$.当中规则一部分的问题
3 years ago
bushixuanqi
93194909b9
Update RuleAnalyzer.kt
...
调整下参数指向
3 years ago
bushixuanqi
ff1398eae9
Update RuleAnalyzer.kt
...
将平衡组分成采用实体字符的规则平衡组(jsoup、xpath),和允许转义字符的代码平衡组(json、JavaScript),分别对应两种情况,经测试完美解决过去遗留的问题。
3 years ago
bushixuanqi
d408265fe2
Update RuleAnalyzer.kt
...
原来的规则还有点问题,有些情况下会跳过不分隔规则。
原因是拿一个变量记录了两个状态,有时忘记回退切换状态,导致队列位置处理混乱。
我重新梳理了一遍,更改了所有所有相关规则,新增了类成员变量保存另一种状态。
然后测试了我自己写的那几个书源,和其它用大量采用“||”、“&&”、“%%”分隔规则的书源,总算搞定。
3 years ago
bushixuanqi
e37929c8ca
1. RuleAnalyzer中的规则还有些问题,有些情况下会跳过不分隔规则,导致报错。
...
原因是拿一个变量记录了两个状态,有时忘记回退切换状态,导致队列位置处理混乱。
我重新梳理了一遍,更改了所有相关规则,新增了一个相关成员保存另一种状态。
然后测试了我自己写的那几个书源,和其它用大量采用“||”、“&&”、“%%”分隔规则的书源,总算搞定。
2. 将AnalyzeByJSoup中,getElementsSingle,findIndexSet,getIndexs三个函数统一整合进 data class ElementsSingle,因为它们是个整体。
3 years ago
bushixuanqi
2f38448c29
Update AnalyzeByJSoup.kt
...
将AnalyzeByJSoup中,getElementsSingle,findIndexSet,getIndexs三个函数统一整合进 data class ElementsSingle,因为它们是个整体。
3 years ago
bushixuanqi
08d53a974c
Update RuleAnalyzer.kt
...
原来的规则还有点问题,有些情况下会跳过不分隔规则。
原因是拿一个变量记录了两个状态,有时忘记回退切换状态,导致队列位置处理混乱。
我重新梳理了一遍,更改了所有所有相关规则,新增了类成员变量保存另一种状态。
然后测试了我自己写的那几个书源,和其它用大量采用“||”、“&&”、“%%”分隔规则的书源,总算搞定。
3 years ago
gedoor
beb03a5cf2
dict
3 years ago
bushixuanqi
6af111543d
Merge remote-tracking branch 'origin/master' into master
3 years ago
gedoor
78a75687d1
优化
3 years ago
gedoor
9c921fcc91
优化
3 years ago
gedoor
c454a8f8f1
优化
3 years ago
gedoor
1dd592405a
优化
3 years ago
gedoor
2237ae638e
优化
3 years ago
kunfei
3717ac07d0
Merge pull request #1105 from bushixuanqi/master
...
修正两个逻辑错误,简化规则,更新更新日志
3 years ago
bushixuanqi
a3dbb32812
Update RuleAnalyzer.kt
...
搞错了,那两个不是逻辑错误
3 years ago
bushixuanqi
808e58d4b5
Update updateLog.md
3 years ago
bushixuanqi
9691228561
Update updateLog.md
3 years ago
bushixuanqi
b71d37fc04
Update RuleAnalyzer.kt
...
简化规则,并修正两个逻辑错误
3 years ago
bushixuanqi
514dbf4ff9
Update RuleAnalyzer.kt
...
简化规则
3 years ago
bushixuanqi
0dc8604b6c
Update RuleAnalyzer.kt
...
修正两个逻辑错误
3 years ago
bushixuanqi
e2b4f77c32
Update RuleAnalyzer.kt
...
简化规则
3 years ago
bushixuanqi
3edfda22f7
Merge branch 'gedoor:master' into master
3 years ago
bushixuanqi
d55b264db0
Update RuleAnalyzer.kt
3 years ago
bushixuanqi
8d957e2ce2
Update RuleAnalyzer.kt
...
优化代码,减少不必要的变量和操作
3 years ago
kunfei
73b5bd9e5a
Merge pull request #1102 from bushixuanqi/master
...
Update AnalyzeByJSoup.kt
3 years ago
bushixuanqi
9e6ecbf2ca
Update AnalyzeByJSoup.kt
...
查找是否存在索引列表时,当区间与当前数字都空时跳出,避免jsoup选择器被当做索引列表而导致出错。
3 years ago
kunfei
d148ba98d4
Merge pull request #1101 from bushixuanqi/master
...
修正刚才的更新中,找到筛选器起始字符时,未重置位置导致分隔字串被划分到下一段规则的问题。
3 years ago
bushixuanqi
32242537f8
Update RuleAnalyzer.kt
...
修正刚才的更新中,找到筛选器起始字符时,未重置位置导致分隔字串被划分到下一段规则的问题。
3 years ago
bushixuanqi
d6db01eba9
修正刚才上次更新的规则中匹配筛选器匹配成功时未重置匹配位置,导致分隔字串被划分到下段规则的问题
3 years ago
bushixuanqi
1081f0f0a9
Merge remote-tracking branch 'origin/master' into master
3 years ago
kunfei
bf2273fff8
Merge pull request #1100 from bushixuanqi/master
...
改进筛选器起始字符位置查找规则
3 years ago
bushixuanqi
162cf0c6cd
Update RuleAnalyzer.kt
...
改进筛选器起始字符位置查找规则,改为逐个比对,先匹配到“(”就拉取“()”平衡,先匹配到“[”就拉取“[]”平衡,避免()和[]嵌套时出现边缘情况。
跳转筛选器匹配优先顺序,从“(”优先改为“[”优先。
3 years ago
bushixuanqi
61d5e11688
0. 新增专门用于切分各种规则的类,分解完所有规则后才切片,其余操作都只改变变量指向规则字符串中的位置。暂时只用于处理三大规则的“&&”、“||”,“%%”、“@”切分,以后将扩展到全部解析规则。
...
改进jsonPath,jsoup,xpath中的规则切分方法,允许查询规则的正则或字符串中存在“&&”,“||”,“%%”,“@”而不切错。
/**
* 改进解析方法
* 解决阅读”&&“、”||“与jsonPath支持的”&&“、”||“之间的冲突
* 解决{$.rule}形式规则可能匹配错误的问题,旧规则用正则解析内容含‘}’的json文本时,用规则中的字段去匹配这种内容时,会匹配错误.现改用平衡嵌套方法解决这个问题
* */
1. 加强AnalyzeByJSoup中的索引写法
/**
* 1.支持阅读原有写法,':'分隔索引,!或.表示筛选方式,索引可为负数
*
* 例如 tag.div.-1:10:2 或 tag.div!0:3
*
* 2. 支持与jsonPath类似的[]索引写法
*
* 格式形如 [it,it,。。。] 或 [!it,it,。。。] 其中[!开头表示筛选方式为排除,it为单个索引或区间。
*
* 区间格式为 start:end 或 start🔚 step,其中start为0可省略,end为-1可省略。
*
* 索引,区间两端及间隔都支持负数
*
* 例如 tag.div[-1, 3:-2:-10, 2]
*
* 特殊用法 tag.div[-1:0] 可在任意地方让列表反向
*
* */
-------------------
已测试过各种“&&”、“||”,“%%”切分的规则及两者索引写法,没发现大问题,坤飞大大可以再测试看看
3 years ago
bushixuanqi
e8bc90fd9f
Revert AnalyzeByJSoup.kt
...
复制错了,回退
3 years ago
bushixuanqi
d0f87aee76
Update AnalyzeByJSoup.kt
...
改进筛选器起始字符位置查找规则,改为逐个比对,先匹配到“(”就拉取“()”平衡,先匹配到“[”就拉取“[]”平衡,避免()和[]嵌套时出现边缘情况。
跳转筛选器匹配优先顺序,从“(”优先改为“[”优先。
3 years ago
kunfei
43545b11d5
Merge pull request #1099 from bushixuanqi/master
...
索引可作为首规则,此时相当于前面有个`children`。简化切分规则,并修复切分规则时重复压入的问题。
3 years ago
bushixuanqi
d01d77fc4f
Update AnalyzeByJSoup.kt
...
扩大索引向前的匹配范围,索引前无规则时相当于前面的规则是children
3 years ago
bushixuanqi
4341f3b6f8
Merge remote-tracking branch 'origin/master' into master
...
# Conflicts:
# app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSonPath.kt
# app/src/main/java/io/legado/app/model/analyzeRule/RuleAnalyzer.kt
3 years ago
bushixuanqi
0978ff83fd
Update RuleAnalyzer.kt
...
修正注释描述
3 years ago
bushixuanqi
c9f2071e00
Update AnalyzeByJSoup.kt
...
允许索引作为首规则,此时相对于children。
head@[1]@text 与 head@children[1]@text 等价
3 years ago
bushixuanqi
d8a83f9e15
Update RuleAnalyzer.kt
...
优化注释描述
3 years ago
bushixuanqi
9a00fb82da
Update RuleAnalyzer.kt
...
简化部分规则,调整压入切分出的规则时的判断顺序,避免重复压入
3 years ago
bushixuanqi
14d033f19f
0. 新增专门用于切分各种规则的类,分解完所有规则后才切片,其余操作都只改变变量指向规则字符串中的位置。暂时只用于处理三大规则的“&&”、“||”,“%%”、“@”切分,以后将扩展到全部解析规则。
...
改进jsonPath,jsoup,xpath中的规则切分方法,允许查询规则的正则或字符串中存在“&&”,“||”,“%%”,“@”而不切错。
/**
* 改进解析方法
* 解决阅读”&&“、”||“与jsonPath支持的”&&“、”||“之间的冲突
* 解决{$.rule}形式规则可能匹配错误的问题,旧规则用正则解析内容含‘}’的json文本时,用规则中的字段去匹配这种内容时,会匹配错误.现改用平衡嵌套方法解决这个问题
* */
1. 加强AnalyzeByJSoup中的索引写法
/**
* 1.支持阅读原有写法,':'分隔索引,!或.表示筛选方式,索引可为负数
*
* 例如 tag.div.-1:10:2 或 tag.div!0:3
*
* 2. 支持与jsonPath类似的[]索引写法
*
* 格式形如 [it,it,。。。] 或 [!it,it,。。。] 其中[!开头表示筛选方式为排除,it为单个索引或区间。
*
* 区间格式为 start:end 或 start🔚 step,其中start为0可省略,end为-1可省略。
*
* 索引,区间两端及间隔都支持负数
*
* 例如 tag.div[-1, 3:-2:-10, 2]
*
* 特殊用法 tag.div[-1:0] 可在任意地方让列表反向
*
* */
-------------------
已测试过各种“&&”、“||”,“%%”切分的规则及两者索引写法,没发现大问题,坤飞大大可以再测试看看
3 years ago
kunfei
610b4ac536
Merge pull request #1097 from bushixuanqi/master
...
新增专用规则切分类,用于解决原来各种可能的切分错误。默认规则新增类jsonPath的索引选择写法,支持单索引与区间混合,支持负数,支持[!index…]排除写法。
3 years ago