diff --git a/Scripts/resource-parser.js b/Scripts/resource-parser.js index eace04d..0736333 100644 --- a/Scripts/resource-parser.js +++ b/Scripts/resource-parser.js @@ -1,5 +1,5 @@ /** -☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2021-10-06 10:05⟧ +☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2021-10-09 18:05⟧ ---------------------------------------------------------- 🛠 发现 𝐁𝐔𝐆 请反馈: @ShawnKOP_bot ⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API @@ -992,11 +992,11 @@ function Rule_Handle(subs, Pout, Pin) { function Rule_Policy(content) { //增加、替换 policy var cnt = content.replace(/^\s*\-\s/g,"").replace(/REJECT-TINYGIF/gi,"reject").trim().split("//")[0].split(","); - var RuleK = ["//", "#", ";"]; + var RuleK = ["//", "#", ";","[","/"]; var RuleK1 = ["host", "domain", "ip-cidr", "geoip", "user-agent", "ip6-cidr"]; const RuleCheck = (item) => cnt[0].trim().toLowerCase().indexOf(item) == 0; //无视注释行 const RuleCheck1 = (item) => cnt[0].trim().toLowerCase().indexOf(item) != -1; //无视 quanx 不支持的规则类别 - if (RuleK1.some(RuleCheck1)) { + if (RuleK1.some(RuleCheck1) && !RuleK.some(RuleCheck)) { if (cnt.length == 3 && cnt.indexOf("no-resolve") == -1) { ply0 = Ppolicy != "Shawn" ? Ppolicy : cnt[2] nn = cnt[0] + ", " + cnt[1] + ", " + ply0 @@ -1017,9 +1017,26 @@ function Rule_Policy(content) { //增加、替换 policy nn = "" } else { nn = nn.replace("IP-CIDR6", "ip6-cidr") } return nn + } else if (cnt.length == 1 && !RuleK.some(RuleCheck)) { // 纯域名/ip 列表 + return rule_list_handle(cnt[0]) } else { return "" }//if RuleK1 check } +// 处理纯列表 +function rule_list_handle(cnt) { + if(cnt.indexOf(":")!=-1 && cnt.indexOf("/")!=-1) { // ip-v6? + cnt = "ip6-cidr, " + cnt + cnt = Ppolicy == "Shawn" ? cnt+", Shawn" : cnt+", "+Ppolicy + } else if (cnt.split("/").length == 2) {//ip-cide + cnt = "ip-cidr, " + cnt + cnt = Ppolicy == "Shawn" ? cnt+", Shawn" : cnt+", "+Ppolicy + } else if (cnt) { //host - suffix + cnt = "host-suffix, " + cnt + cnt = Ppolicy == "Shawn" ? cnt+", Shawn" : cnt+", "+Ppolicy + } + return cnt +} + // Domain-Set function Domain2Rule(content) { var cnt = content.split("\n");