diff --git a/Scripts/resource-parser.js b/Scripts/resource-parser.js index 33e3c10..f772689 100644 --- a/Scripts/resource-parser.js +++ b/Scripts/resource-parser.js @@ -1,5 +1,5 @@ /** -☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2023-03-13 16:00⟧ +☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2023-03-15 13:00⟧ ---------------------------------------------------------- 🛠 发现 𝐁𝐔𝐆 请反馈: https://t.me/Shawn_Parser_Bot ⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API @@ -615,6 +615,9 @@ function Type_Check(subs) { typec = "filter-list" type = (typeQ == "unsupported" || typeQ =="filter")? "Rule":"wrong-field"; content0 = content0.split("\n").map(rule_list_handle).join("\n") + } else if (subi.indexOf("sub://") == 0) { // sub:// 类型 + typec = "sub-http" + type = "sub-http" } else if (typeQ == "filter" && subs.indexOf("payload:")!=-1) { // clash-provider 类型? typec = "Clash-Provider" type = (typeQ == "unsupported" || typeQ =="filter")? "Rule":"wrong-field"; @@ -652,10 +655,7 @@ function Type_Check(subs) { } else if (QXProfile.every(ProfileCheck)) { typec = "profile" type = "profile" //默认配置类型 - } else if (subi.indexOf("sub://") == 0) { // sub:// 类型 - typec = "sub-http" - type = "sub-http" - } else if (/\.js/.test(link0)) { // xjb添加js脚本的行为 + }else if (/\.js/.test(link0)) { // xjb添加js脚本的行为 $notify("⚠️ 你导入的链接内容为 JS 脚本","🚥 脚本内未有重写规则,无法解析使用", " 请⚠️不要⚠️跑来解析器🤖️反馈 \n"+link0) type = "JS-0" } //else if (typeQ == "URI") @@ -1509,7 +1509,7 @@ function Subs2QX(subs, Pudp, Ptfo, Pcert0, PTls13) { const NodeCheck1 = (item) => listi.toLowerCase().indexOf(item) == 0; try { if (Pdbg) {$notify(i, type, list0[i])} - if (type == "vmess" && (list0[i].indexOf("remark=") == -1 && list0[i].indexOf("remarks=") == -1)) { + if (type == "vmess" && (list0[i].indexOf("remark=") == -1 && list0[i].indexOf("remarks=") == -1) && !/(obfs|alterId)\=/.test(list0[i])) { var bnode = Base64.decode(list0[i].split("vmess://")[1]) if (bnode.indexOf("over-tls=") == -1) { //v2rayN node = V2QX(list0[i], Pudp, Ptfo, Pcert0, PTls13) @@ -1517,7 +1517,7 @@ function Subs2QX(subs, Pudp, Ptfo, Pcert0, PTls13) { node = VQ2QX(list0[i], Pudp, Ptfo, Pcert0, PTls13) } node = tag0 != "" ? URI_TAG(node, tag0) : node - } else if (type == "vmess" && ( list0[i].indexOf("remark=") != -1 || list0[i].indexOf("remarks=") != -1)) { //shadowrocket 类型 + } else if (type == "vmess" && ( list0[i].indexOf("remark=") != -1 || list0[i].indexOf("remarks=") != -1 || /(obfs|alterId)\=/.test(list0[i]))) { //shadowrocket 类型 node = VR2QX(list0[i], Pudp, Ptfo, Pcert0, PTls13) node = tag0 != "" ? URI_TAG(node, tag0) : node } else if (type == "socks" && list0[i].indexOf("remarks=") != -1) { //shadowrocket socks5 类型 @@ -1731,7 +1731,7 @@ function VR2QX(subs, Pudp, Ptfo, Pcert0, PTls13) { var server = String(Base64.decode(subs.replace("vmess://", "").split("?remark")[0].split("&remark")[0].split("?")[0]).trim()).split("\u0000")[0] var node = "" var ip = "vmess=" + server.split("@")[1] + ", " + "method=aes-128-gcm, " + "password=" + server.split("@")[0].split(":")[1] + ", " - var tag = "tag=" + decodeURIComponent(subs.split(/remarks*=/)[1].split("&")[0]) + var tag = /remarks*=/.test(subs)? "tag=" + decodeURIComponent(subs.split(/remarks*=/)[1].split("&")[0]) : "tag="+server.split("@")[1] //部分无节点名的情况 var tfo = subs.indexOf("tfo=1") != -1 ? "fast-open=true, " : "fast-open=false, " var udp = Pudp == 1 ? "udp-relay=false, " : "udp-relay=false, "; var pdrop = 0