KOP-XIAO / QuantumultX

2.73k stars 614 forks source link

Update resource-parser.js #97

Closed 1nC0deWeTrust closed 1 year ago

1nC0deWeTrust commented 1 year ago

对clash rule provider解析做了些修改,更好的转成qx规则(现学的js,不排除存在问题)。

已测试以下规则。

payload:
  - '.microsoft.com'
  - '*.microsoft.com'
  - '*microsoft.com'
  - '+.microsoft.com'
KOP-XIAO commented 1 year ago

不希望这样。会导致用的更多的surge-domain-set一堆规则都变成wildcard,quanx会提示效率低下无法开启

1nC0deWeTrust commented 1 year ago

我现在只有qx,并且为了方便维护,跟桌面端用的同一套yaml,测试下来clash > qx没啥问题,你说的一堆wildcard有链接么?

KOP-XIAO commented 1 year ago

https://anti-ad.net/surge2.txt

KOP-XIAO commented 1 year ago

2023-04-12 12 27 33

1nC0deWeTrust commented 1 year ago

这个问题是因为clash 的domain ruleset中的第一个为.的话,表示匹配所有的子域名,而在surge中表示suffix,我找个办法判断下文件是否为clash 规则试试。

Shawn @.***>于2023年4月12日 周三12:27写道:

https://anti-ad.net/surge2.txt

— Reply to this email directly, view it on GitHub https://github.com/KOP-XIAO/QuantumultX/pull/97#issuecomment-1504587548, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGFSEONOBTVW3EYWWFBUUKLXAYVLPANCNFSM6AAAAAAW3CTQSU . You are receiving this because you authored the thread.Message ID: @.***>

KOP-XIAO commented 1 year ago

判断是不是clash文件很容易。问题是还要考虑各种混写规则的情况,所以并不想弄这么麻烦

1nC0deWeTrust commented 1 year ago

https://anti-ad.net/surge2.txt

这个提交正确解析了surge2,但是,

image

payload:
  - '.microsoft.com' 解析成了 suffix microsoft.com,这里解析成 wildcard *.microsoft.com更靠近原规则。
  - '*.microsoft.com' 
  - '*microsoft.com' 
  - '+.microsoft.com' 这一条没有解析。

引用这个url就能发现问题。

这些我给处理了一下,Update

KOP-XIAO commented 1 year ago

不应该吧。 .microsoft.com' 解析成了 suffix microsoft.com 吗 我这测试解析成了 "wildcard, .microsoft.com" 其实 .xxx 是不是在quanx内直接 suffix, xxx 就行了 '+.microsoft.com' 这一条没有解析。 。我这测试解析成了 suffix, microsoft.com 呢

https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-clash.yaml 这个测试也没发现问题呀😯

我上个提交给你现在这个区别,应该只是 1、没有 把 .xxx 换成 *.xxx 2、^(+.) 比 (+.) 更严格吧

1nC0deWeTrust commented 1 year ago

其实 .xxx 是不是在quanx内直接 suffix, xxx 就行了

不是,clash中.只匹配子域名,见文档: image

qx中写wildcard,*.ms.com表示只匹配子域名,不影响ms.com,而suffix,ms.com的话就影响ms.com了,所以这里应当修改。 (我顺便还测试了qx中是否支持suffix,.ms.comwildcard,.ms.com,第一个直接invalid line,第二个匹配不到,说明qx并不支持clash中的.)

https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-clash.yaml 这个测试也没发现问题呀😯

之前的脚本会把这个yaml全部解析成wildcard,后面我提交的处理了这个,就不复现了。

2、^(+.) 比 (+.) 更严格吧

是的,所以我这边都加了^ image