Closed ChrAlpha closed 1 month ago
在 mihomo (Clash.Meta) 系应用中,rule-provider 可以处理的 domainset
prepend-rule-providers: reject_domainset: type: http behavior: domain format: text interval: 43200 url: https://ruleset.skk.moe/Clash/domainset/reject.txt path: ./sukkaw_ruleset/reject_domainset.txt
在尝试 subconverter 转化的时候却无法通过 clash-domain: 展开到 rules 中,即便没有报错:
clash-domain:
ruleset=🛑 广告拦截,clash-domain:https://ruleset.skk.moe/Clash/domainset/reject.txt
简单溯源发现 SukkaW/Surge 提供的 Clash Premium 版本 domainset 每条域名规则单独一行且开头没有 payload
this_ruleset_is_made_by_sukkaw.ruleset.skk.moe +.a1.mzstatic.com +.a2.mzstatic.com # ...
payload: - '+.a1.mzstatic.com' - '+.a2.mzstatic.com' - '+.a3.mzstatic.com' # ...
而在 src/generator/config/ruleconvert.cpp#L31 仅仅通过文件开头 payload 判断为 Clash。
src/generator/config/ruleconvert.cpp#L31
payload
在 src/generator/config/ruleconvert.cpp#L31 增加通过类似 type==RULESET_CLASH_DOMAIN 或者 type=RULESET_CLASH_IPCIDR 在判断 payload: 同级的位置,确保在没有 payload: 的情况下依然能够逐行作为 payload 元素处理。
type==RULESET_CLASH_DOMAIN
type=RULESET_CLASH_IPCIDR
payload:
rule-provider format
verify
功能描述
在 mihomo (Clash.Meta) 系应用中,rule-provider 可以处理的 domainset
在尝试 subconverter 转化的时候却无法通过
clash-domain:
展开到 rules 中,即便没有报错:简单溯源发现 SukkaW/Surge 提供的 Clash Premium 版本 domainset 每条域名规则单独一行且开头没有 payload
而在
src/generator/config/ruleconvert.cpp#L31
仅仅通过文件开头payload
判断为 Clash。可能的解决方案
在
src/generator/config/ruleconvert.cpp#L31
增加通过类似type==RULESET_CLASH_DOMAIN
或者type=RULESET_CLASH_IPCIDR
在判断payload:
同级的位置,确保在没有payload:
的情况下依然能够逐行作为 payload 元素处理。