diff --git a/Scripts/resource-parser.js b/Scripts/resource-parser.js index 6e4e591..6bcdfe2 100644 --- a/Scripts/resource-parser.js +++ b/Scripts/resource-parser.js @@ -403,12 +403,12 @@ function flowcheck(cnt) { // regex 后的检查 function RegCheck(total, typen, paraname,regpara) { - if(total.length == 0){ - $notify("‼️ " + typen + " ➟ " + "⟦" + subtag + "⟧", "⛔️ 筛选正则: " + paraname + "=" + regpara, "⚠️ 筛选后剩余项为 0️⃣ , 请检查正则参数及原始链接", nan_link) - }else if((typen != "节点订阅" && Pntf0 !=0) || (typen == "节点订阅" && Pntf0 ==1)){ - var nolist = total.length <= 10 ? emojino[total.length] : total.length - $notify("🤖 " + typen + " ➟ " + "⟦" + subtag + "⟧", "⛔️ 筛选正则: " + paraname + "=" + regpara, "⚠️ 筛选后剩余以下" + nolist + "个匹配项 \n ⨷ " + total.join("\n ⨷ "), sub_link) - } + if(total.length == 0){ + $notify("‼️ " + typen + " ➟ " + "⟦" + subtag + "⟧", "⛔️ 筛选正则: " + paraname + "=" + regpara, "⚠️ 筛选后剩余项为 0️⃣ , 请检查正则参数及原始链接", nan_link) + }else if((typen != "节点订阅" && Pntf0 !=0) || (typen == "节点订阅" && Pntf0 ==1)){ + var nolist = total.length <= 10 ? emojino[total.length] : total.length + $notify("🤖 " + typen + " ➟ " + "⟦" + subtag + "⟧", "⛔️ 筛选正则: " + paraname + "=" + regpara, "⚠️ 筛选后剩余以下" + nolist + "个匹配项 \n ⨷ " + total.join("\n ⨷ "), sub_link) + } } //判断订阅类型 function Type_Check(subs) { @@ -477,7 +477,7 @@ function Type_Check(subs) { // 检查节点名字(重复以及空名)等QuanX 不允许的情形,以及多个空格等“不规范”方式 function TagCheck_QX(content) { - typefix = {"shadowsocks":["𝐬𝐬","𝐒𝐒","🅢🅢","🆂🆂","ⓢⓢ","🅂🅂","SS"],"shadowsocksr":["𝐬𝐬𝐫","𝐒𝐒𝐑","🅢🅢🅡","🆂🆂🆁","ⓢⓢⓡ","🅂🅁","SSR"],"vmess":["𝐯𝐦𝐞𝐬𝐬","𝐕𝐌𝐄𝐒𝐒","🅥🅜🅔🅢🅢","🆅🅼🅴🆂🆂","ⓥⓜⓔⓢⓢ","🅅🄼🄴🅂🅂","VMESS"],"trojan":["𝐭𝐫𝐨𝐣𝐚𝐧","𝐓𝐑𝐎𝐉𝐀𝐍","🅣🅡🅞🅙🅐","🆃🆁🅾🅹🅰🅽","ⓣⓡⓞⓙⓐⓝ","🅃🅁🄾🄹🄰🄽","TROJAN"],"http":["𝐡𝐭𝐭𝐩","𝐇𝐓𝐓𝐏","🅗🅣🅣🅟","🅷🆃🆃🅿","ⓗⓣⓣⓟ","🄷🅃🅃🄿","HTTP"]} + typefix = {"shadowsocks":["𝐬𝐬","𝐒𝐒","🅢🅢","🆂🆂","ⓢⓢ","🅂🅂","SS"],"shadowsocksr":["𝐬𝐬𝐫","𝐒𝐒𝐑","🅢🅢🅡","🆂🆂🆁","ⓢⓢⓡ","🅂🅁","SSR"],"vmess":["𝐯𝐦𝐞𝐬𝐬","𝐕𝐌𝐄𝐒𝐒","🅥🅜🅔🅢🅢","🆅🅼🅴🆂🆂","ⓥⓜⓔⓢⓢ","🅅🄼🄴🅂🅂","VMESS"],"trojan":["𝐭𝐫𝐨𝐣𝐚𝐧","𝐓𝐑𝐎𝐉𝐀𝐍","🅣🅡🅞🅙🅐🅝","🆃🆁🅾🅹🅰🅽","ⓣⓡⓞⓙⓐⓝ","🅃🅁🄾🄹🄰🄽","TROJAN"],"http":["𝐡𝐭𝐭𝐩","𝐇𝐓𝐓𝐏","🅗🅣🅣🅟","🅷🆃🆃🅿","ⓗⓣⓣⓟ","🄷🅃🅃🄿","HTTP"]} console.log(content) var Olist = content.map(item =>item.trim().replace(/\s{2,}/g," ")) //$notify("","",Olist) @@ -486,7 +486,7 @@ function TagCheck_QX(content) { var no=0 ; for (var i = 0; i < Olist.length; i++) { var item = Olist[i] ? Olist[i] : "" - typefix["shadowsocks"]=item.indexOf("ssr-protocol")!=-1? typefix["shadowsocksr"] : typefix["shadowsocks"] + typefix["shadowsocks"]=item.indexOf("ssr-protocol")!=-1? typefix["shadowsocksr"] : typefix["shadowsocks"] if (item.replace(/ /gm, "").indexOf("tag=") != -1) { var nl = item.slice(item.indexOf("tag")) var nm = nl.slice(nl.indexOf("=") + 1) @@ -615,7 +615,7 @@ function type_suffix(item) { function getnode_type(item,ind) { if(item.trim()!="" && item.indexOf("tag=")!=-1) { ind = !/^(0|1|2|3|4|5|6|7)$/.test(ind) ? 8 : ind - typefix = {"shadowsocks":["𝐬𝐬","𝐒𝐒","🅢🅢","🆂🆂","ⓢⓢ","🅂🅂","𝕊𝕊","ˢˢ","SS"],"shadowsocksr":["𝐬𝐬𝐫","𝐒𝐒𝐑","🅢🅢🅡","🆂🆂🆁","ⓢⓢⓡ","🅂🅂🅁","𝕊𝕊ℝ","ˢˢʳ","SSR"],"vmess":["𝐯𝐦𝐞𝐬𝐬","𝐕𝐌𝐄𝐒𝐒","🅥🅜🅔🅢🅢","🆅🅼🅴🆂🆂","ⓥⓜⓔⓢⓢ","🅅🄼🄴🅂🅂","𝕍𝕞𝕖𝕤𝕤","ᵛᵐᵉˢˢ","VMESS"],"trojan":["𝐭𝐫𝐨𝐣𝐚𝐧","𝐓𝐑𝐎𝐉𝐀𝐍","🅣🅡🅞🅙🅐🅝","🆃🆁🅾🅹🅰🅽","ⓣⓡⓞⓙⓐⓝ","🅁🄾🄹🄰🄽","𝕋𝕣𝕠𝕛𝕒𝕟","ᵀʳᵒʲᵃⁿ","TROJAN"],"http":["𝐡𝐭𝐭𝐩","𝐇𝐓𝐓𝐏","🅗🅣🅣🅟","🅷🆃🆃🅿","ⓗⓣⓣⓟ","🄷🅃🅃🄿","𝕙𝕥𝕥𝕡","ʰᵗᵗᵖ","HTTP"]} + typefix = {"shadowsocks":["𝐬𝐬","𝐒𝐒","🅢🅢","🆂🆂","ⓢⓢ","🅂🅂","𝕊𝕊","ˢˢ","SS"],"shadowsocksr":["𝐬𝐬𝐫","𝐒𝐒𝐑","🅢🅢🅡","🆂🆂🆁","ⓢⓢⓡ","🅂🅂🅁","𝕊𝕊ℝ","ˢˢʳ","SSR"],"vmess":["𝐯𝐦𝐞𝐬𝐬","𝐕𝐌𝐄𝐒𝐒","🅥🅜🅔🅢🅢","🆅🅼🅴🆂🆂","ⓥⓜⓔⓢⓢ","🅅🄼🄴🅂🅂","𝕍𝕞𝕖𝕤𝕤","ᵛᵐᵉˢˢ","VMESS"],"trojan":["𝐭𝐫𝐨𝐣𝐚𝐧","𝐓𝐑𝐎𝐉𝐀𝐍","🅣🅡🅞🅙🅐🅝","🆃🆁🅾🅹🅰🅽","ⓣⓡⓞⓙⓐⓝ","🅃🅁🄾🄹🄰🄽","𝕋𝕣𝕠𝕛𝕒𝕟","ᵀʳᵒʲᵃⁿ","TROJAN"],"http":["𝐡𝐭𝐭𝐩","𝐇𝐓𝐓𝐏","🅗🅣🅣🅟","🅷🆃🆃🅿","ⓗⓣⓣⓟ","🄷🅃🅃🄿","𝕙𝕥𝕥𝕡","ʰᵗᵗᵖ","HTTP"]} typefix["shadowsocks"]=item.indexOf("ssr-protocol")!=-1? typefix["shadowsocksr"] : typefix["shadowsocks"] tp = typefix[item.split("=")[0].trim()][ind] return tp @@ -626,7 +626,7 @@ function getnode_type(item,ind) { // 操作節點類型佔位符 function type_handle(item) { if(item.indexOf("node_type_para_prefix")!=-1) { - item = item.replace(/node_type_para_prefix(\d{0,1})/g,getnode_type(item,item.split("node_type_para_prefix")[1][0])) + item = item.replace(/node_type_para_prefix(\d{0,1})/g,getnode_type(item,item.split("node_type_para_prefix")[1][0])) } return item } @@ -858,7 +858,7 @@ function Rewrite_Filter(subs, Pin, Pout,Preg,Pregout) { } if (Nlist.length == 0) { $notify("🤖 " + "重写引用 ➟ " + "⟦" + subtag + "⟧", "⛔️ 筛选参数: " + pfi + pfo, "⚠️ 筛选后剩余rewrite规则数为 0️⃣ 条, 请检查参数及原始链接", nan_link) } if(Preg){ Nlist = Nlist.map(Regex).filter(Boolean) // regex to filter rewrites - RegCheck(Nlist, "重写引用", "regex", Preg) } + RegCheck(Nlist, "重写引用", "regex", Preg) } if(Pregout){ Nlist = Nlist.map(RegexOut).filter(Boolean) // regex to delete rewrites RegCheck(Nlist, "重写引用", "regout", Pregout) } if (hostname != "") { Nlist.push(hostname) } @@ -882,7 +882,7 @@ function HostNamecheck(content, parain, paraout) { } else { dname.push(hname[i]) } //Pin 未命中🎯️的记录 - } else { nname.push(hname[i]) } //无in 参数 + } else { nname.push(hname[i]) } //无in 参数 } else { dname.push(hname[i]) } //out 参数命中 } else if (parain && parain != "") { //不存在 out,但有 in 参数时 if (parain.some(excludehn)) { //Pin 命中🎯️ @@ -907,7 +907,7 @@ function HostNamecheck(content, parain, paraout) { $notify("🤖 " + "重写引用 ➟ " + "⟦" + subtag + "⟧", "⛔️ 筛选参数: " + pfihn + pfohn, "⚠️ 主机名 hostname 中剩余 0️⃣ 项, 请检查参数及原始链接", nan_link) } if(Preg){ nname = nname.map(Regex).filter(Boolean) - RegCheck(nname, "主机名hostname","regex", Preg) } + RegCheck(nname, "主机名hostname","regex", Preg) } if(Pregout){ nname = nname.map(RegexOut).filter(Boolean) RegCheck(nname, "主机名hostname", "regout", Pregout) } hname = "hostname=" + nname.join(", "); @@ -1006,7 +1006,7 @@ function Rule_Handle(subs, Pout, Pin) { nlist = Pfcr == 1? nlist.filter(Boolean).map(item => item+", force-cellular") : nlist.filter(Boolean) nlist = Pfcr == 2? nlist.filter(Boolean).map(item => item+", multi-interface") : nlist.filter(Boolean) if (Pvia!="") { - nlist = Pvia ==0? nlist.filter(Boolean).map(item => item+", via-interface=%TUN%") : nlist.filter(Boolean).map(item => item+", via-interface="+Pvia) + nlist = Pvia ==0? nlist.filter(Boolean).map(item => item+", via-interface=%TUN%") : nlist.filter(Boolean).map(item => item+", via-interface="+Pvia) } return nlist @@ -1041,7 +1041,7 @@ function Rule_Policy(content) { //增加、替换 policy return nn } else if (cnt.length == 1 && !RuleK.some(RuleCheck) && cnt[0]!="" && cnt[0].indexOf("payload:")==-1) { // 纯域名/ip 列表 return rule_list_handle(cnt[0]) - } else { return "" }//if RuleK1 check + } else { return "" }//if RuleK1 check } // 处理纯列表 @@ -1925,14 +1925,14 @@ function get_emoji(emojip, sname) { "🇸🇪": ["SE", "Sweden","瑞典"], "🇸🇬": ["SG", "Singapore","SINGAPORE", "新加坡", "狮城", "沪新", "京新", "泉新", "穗新", "深新", "杭新", "广新","廣新","滬新"], "🇹🇭": ["TH", "Thailand", "泰国", "泰國", "曼谷"], - "🇹": ["TR", "Turkey", "土耳其", "伊斯坦布尔"], + "🇹🇷": ["TR", "Turkey", "土耳其", "伊斯坦布尔"], "🇹🇼": ["TW", "Taiwan","TAIWAN", "台湾", "台北", "台中", "新北", "彰化", "CHT", "台", "HINET"], "🇺🇸": ["US", "USA", "America", "United States", "美国", "美", "京美", "波特兰", "达拉斯", "俄勒冈", "凤凰城", "费利蒙", "硅谷", "矽谷", "拉斯维加斯", "洛杉矶", "圣何塞", "圣克拉拉", "西雅图", "芝加哥", "沪美", "哥伦布", "纽约"], "🇻🇳": ["VN", "越南", "胡志明市"], "🇮🇹": ["Italy", "IT", "Nachash", "意大利", "米兰", "義大利"], "🇿🇦": ["South Africa", "南非"], "🇦🇪": ["United Arab Emirates", "阿联酋","AE "], - "🇧🇷": ["BR", "Brazil", "巴西", "圣保罗"], + "🇧🇷": ["BR", "Brazil", "巴西", "圣保罗"], "🇯🇵": ["JP", "Japan","JAPAN", "日本", "东京", "大阪", "埼玉", "沪日", "穗日", "川日", "中日", "泉日", "杭日", "深日", "辽日", "广日"], "🇦🇷": ["AR", "Argentina", "阿根廷"], "🇳🇴": ["Norway", "挪威", "NO"], @@ -2473,9 +2473,9 @@ function Base64Code() { return b.replace(/[\s\S]{1,3}/g, cb_encode); }; // var _encode = function(u) { - // var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]'; - // return isUint8Array ? u.toString('base64') - // : btoa(utob(String(u))); + // var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]'; + // return isUint8Array ? u.toString('base64') + // : btoa(utob(String(u))); // } this.encode = function (u) { var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]'; @@ -2540,16 +2540,16 @@ function Base64Code() { return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, '')); }; // var _decode = buffer ? - // buffer.from && Uint8Array && buffer.from !== Uint8Array.from - // ? function(a) { - // return (a.constructor === buffer.constructor - // ? a : buffer.from(a, 'base64')).toString(); - // } - // : function(a) { - // return (a.constructor === buffer.constructor - // ? a : new buffer(a, 'base64')).toString(); - // } - // : function(a) { return btou(_atob(a)) }; + // buffer.from && Uint8Array && buffer.from !== Uint8Array.from + // ? function(a) { + // return (a.constructor === buffer.constructor + // ? a : buffer.from(a, 'base64')).toString(); + // } + // : function(a) { + // return (a.constructor === buffer.constructor + // ? a : new buffer(a, 'base64')).toString(); + // } + // : function(a) { return btou(_atob(a)) }; var _decode = function (u) { return btou(_atob(u)) }