[Feature]需要增加surge的domain-set生成
baobeiboboda opened this issue · comments
verify
功能描述
现在的文档当中对于在ini文件中,格式为 Group name,[type:]URL[,interval]
或 Group name,[]Rule
,但是type的类型通过查询https://raw.githubusercontent.com/tindy2013/subconverter/master/src/config/ruleset.h 和 https://raw.githubusercontent.com/tindy2013/subconverter/master/src/generator/config/ruleconvert.h 得知 在生成surge的时候仅有SurgeRuleset 这一个选项 即默认surge只能生成rule-set,根据surge的文档 https://manual.nssurge.com/book/understanding-surge/cn/#%E8%A7%84%E5%88%99 中的4.3.5.1 RULE-SET 可包含所有类型的子规则,执行效率和在主配置中的规则没有区别,而 DOMAIN-SET 仅可使用 DOMAIN 和 DOMAIN-SUFFIX 两种形式的内容,使用了特别的逻辑进行优化,在内容非常多时性能有极大的提升。(千条以上,否则两者没有太大的区别),
可能的解决方案
enum ruleset_type
{
RULESET_SURGE,
RULESET_SURGE_DOMAIN,
RULESET_QUANX,
RULESET_CLASH_DOMAIN,
RULESET_CLASH_IPCIDR,
RULESET_CLASH_CLASSICAL
};
if(type == RULESET_SURGE_DOMAIN)
return content;
https://raw.githubusercontent.com/tindy2013/subconverter/master/src/generator/config/ruleconvert.cpp 这个文件的336行做有可能需要修改 识别domain这个参数。
strLine = "RULE-SET," + remote_path_prefix + "/getruleset?type=5&url=" + urlSafeBase64Encode(rule_path_typed) + "," + rule_group;