mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-25 17:15:09 +00:00
bug fix
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-09-01 06:29⟧
|
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-09-01 08:29⟧
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
🛠 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
🛠 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
||||||
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
||||||
@@ -146,7 +146,7 @@ var exptime = "";
|
|||||||
//$notify(type0)
|
//$notify(type0)
|
||||||
|
|
||||||
var type0 = Type_Check(content0); // 类型判断
|
var type0 = Type_Check(content0); // 类型判断
|
||||||
console.log(type0)
|
//$notify(type0)
|
||||||
|
|
||||||
//响应头流量处理部分
|
//响应头流量处理部分
|
||||||
function SubFlow() {
|
function SubFlow() {
|
||||||
@@ -284,7 +284,7 @@ function Type_Check(subs) {
|
|||||||
var ClashK = ["proxies:"]
|
var ClashK = ["proxies:"]
|
||||||
var SubK = ["dm1lc3M", "c3NyOi8v", "dHJvamFu", "c3M6Ly", "c3NkOi8v", "c2hhZG93"];
|
var SubK = ["dm1lc3M", "c3NyOi8v", "dHJvamFu", "c3M6Ly", "c3NkOi8v", "c2hhZG93"];
|
||||||
var RewriteK = [" url "]
|
var RewriteK = [" url "]
|
||||||
var SubK2 = ["ss://", "vmess://", "ssr://", "trojan://", "ssd://"];
|
var SubK2 = ["ss://", "vmess://", "ssr://", "trojan://", "ssd://", "https://"];
|
||||||
var html = "DOCTYPE html"
|
var html = "DOCTYPE html"
|
||||||
var subi = subs.replace(/ /g, "")
|
var subi = subs.replace(/ /g, "")
|
||||||
const RuleCheck = (item) => subi.toLowerCase().indexOf(item) != -1;
|
const RuleCheck = (item) => subi.toLowerCase().indexOf(item) != -1;
|
||||||
@@ -294,17 +294,7 @@ function Type_Check(subs) {
|
|||||||
if (subs.indexOf(html) != -1) {
|
if (subs.indexOf(html) != -1) {
|
||||||
$notify("‼️ 该链接返回内容有误", "⁉️ 点通知跳转以确认链接是否失效", link0, nan_link);
|
$notify("‼️ 该链接返回内容有误", "⁉️ 点通知跳转以确认链接是否失效", link0, nan_link);
|
||||||
type = "web";
|
type = "web";
|
||||||
} else if (subsn.length >= 1 && SubK2.some(NodeCheck)) { //未b64加密的多行URI 组合订阅
|
} else if (ClashK.some(NodeCheck)){ // Clash 类型节点转换
|
||||||
type = "Subs"
|
|
||||||
} else if (SubK.some(NodeCheck)) { //b64加密的订阅类型
|
|
||||||
type = "Subs-B64Encode"
|
|
||||||
} else if (subi.indexOf("tag=") != -1 && QuanXK.some(NodeCheck)) {
|
|
||||||
type = "Subs" // QuanX list
|
|
||||||
} else if (subs.indexOf("[Proxy]") != -1) {
|
|
||||||
type = "Surge"; // Surge Profiles
|
|
||||||
} else if (SurgeK.some(NodeCheck)) {
|
|
||||||
type = "Subs" // Surge proxy list
|
|
||||||
} else if (ClashK.some(NodeCheck)){ // Clash 类型节点转换
|
|
||||||
type = "Clash";
|
type = "Clash";
|
||||||
//console.log(type)
|
//console.log(type)
|
||||||
content0 = Clash2QX(subs)
|
content0 = Clash2QX(subs)
|
||||||
@@ -317,7 +307,17 @@ function Type_Check(subs) {
|
|||||||
} else if (DomainK.some(RuleCheck)) {
|
} else if (DomainK.some(RuleCheck)) {
|
||||||
type = "Rule";
|
type = "Rule";
|
||||||
content0 = Domain2Rule(content0) // 转换 domain-set
|
content0 = Domain2Rule(content0) // 转换 domain-set
|
||||||
}
|
} else if (subsn.length >= 1 && SubK2.some(NodeCheck)) { //未b64加密的多行URI 组合订阅
|
||||||
|
type = "Subs"
|
||||||
|
} else if (SubK.some(NodeCheck)) { //b64加密的订阅类型
|
||||||
|
type = "Subs-B64Encode"
|
||||||
|
} else if (subi.indexOf("tag=") != -1 && QuanXK.some(NodeCheck)) {
|
||||||
|
type = "Subs" // QuanX list
|
||||||
|
} else if (subs.indexOf("[Proxy]") != -1) {
|
||||||
|
type = "Surge"; // Surge Profiles
|
||||||
|
} else if (SurgeK.some(NodeCheck)) {
|
||||||
|
type = "Subs" // Surge proxy list
|
||||||
|
}
|
||||||
return type
|
return type
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -718,12 +718,11 @@ function SubsEd2QX(subs, Pudp, Ptfo, Pcert, Ptls13) {
|
|||||||
} else if (type == "trojan") {
|
} else if (type == "trojan") {
|
||||||
node = TJ2QX(list0[i], Pudp, Ptfo, Pcert, Ptls13)
|
node = TJ2QX(list0[i], Pudp, Ptfo, Pcert, Ptls13)
|
||||||
} else if (type == "https") { //subs,Ptfo,Pcert,Ptls13
|
} else if (type == "https") { //subs,Ptfo,Pcert,Ptls13
|
||||||
console.log("haha")
|
|
||||||
if (listi.indexOf("@") != -1) {
|
if (listi.indexOf("@") != -1) {
|
||||||
node = HPS2QX(list0[i], Ptfo, Pcert, Ptls13)
|
node = HPS2QX(list0[i], Ptfo, Pcert, Ptls13)
|
||||||
} else {
|
} else {
|
||||||
var listh = Base64.decode(listi.split("https://")[1].split("#")[0])+"#"+listi.split("https://")[1].split("#")[1]
|
var listh = Base64.decode(listi.split("https://")[1].split("#")[0])
|
||||||
listh = "https://" + Base64.encode(listh)
|
listh = "https://" + listh + "#" + listi.split("https://")[1].split("#")[1]
|
||||||
node = HPS2QX(listh, Ptfo, Pcert, Ptls13)
|
node = HPS2QX(listh, Ptfo, Pcert, Ptls13)
|
||||||
}
|
}
|
||||||
} else if (QuanXK.some(NodeCheck)) {
|
} else if (QuanXK.some(NodeCheck)) {
|
||||||
@@ -777,8 +776,8 @@ function Subs2QX(subs, Pudp, Ptfo, Pcert, Ptls13) {
|
|||||||
if (listi.indexOf("@") != -1) {
|
if (listi.indexOf("@") != -1) {
|
||||||
node = HPS2QX(list0[i], Ptfo, Pcert, Ptls13)
|
node = HPS2QX(list0[i], Ptfo, Pcert, Ptls13)
|
||||||
} else {
|
} else {
|
||||||
var listh = Base64.decode(listi.split("https://")[1].split("#")[0])+"#"+listi.split("https://")[1].split("#")[1]
|
var listh = Base64.decode(listi.split("https://")[1].split("#")[0])
|
||||||
listh = "https://" + Base64.encode(listh)
|
listh = "https://" + listh + "#" + listi.split("https://")[1].split("#")[1]
|
||||||
node = HPS2QX(listh, Ptfo, Pcert, Ptls13)
|
node = HPS2QX(listh, Ptfo, Pcert, Ptls13)
|
||||||
}
|
}
|
||||||
} else if (QuanXK.some(NodeCheck)) {
|
} else if (QuanXK.some(NodeCheck)) {
|
||||||
@@ -802,25 +801,24 @@ function Subs2QX(subs, Pudp, Ptfo, Pcert, Ptls13) {
|
|||||||
return QXlist
|
return QXlist
|
||||||
}
|
}
|
||||||
|
|
||||||
//https://username:password@IP:PORT#name
|
|
||||||
//http=example.com:443, username=name, password=pwd, over-tls=true, tls-host=example.com, tls-verification=true, tls13=true, fast-open=false, udp-relay=false, tag=http-tls-02
|
//http=example.com:443, username=name, password=pwd, over-tls=true, tls-host=example.com, tls-verification=true, tls13=true, fast-open=false, udp-relay=false, tag=http-tls-02
|
||||||
//HTTPS 类型 URI 转换成 QUANX 格式
|
//HTTPS 类型 URI 转换成 QUANX 格式
|
||||||
function HPS2QX(subs, Ptfo, Pcert, Ptls13) {
|
function HPS2QX(subs, Ptfo, Pcert, Ptls13) {
|
||||||
var server = Base64.decode(subs.split("@")[0].replace("https://", "")).trim().split("\u0000")[0];
|
var server = subs.replace("https://", "").trim()//Base64.decode(subs.replace("https://", "")).trim().split("\u0000")[0];
|
||||||
var nss = []
|
var nss = []
|
||||||
if (server != "") {
|
if (server != "") {
|
||||||
var ipport = "http=" + server.split("@")[1].split("#")[0].split("/")[0];
|
var ipport = "http=" + server.split("@")[1].split("#")[0].split("/")[0];
|
||||||
var uname = "username=" + server.split(":")[0];
|
var uname = "username=" + server.split(":")[0];
|
||||||
var pwd = "password=" + server.split("@")[0].split(":")[1];
|
var pwd = "password=" + server.split("@")[0].split(":")[1];
|
||||||
var tag = "tag=" + server.split("#")[1];
|
var tag = "tag=" + server.split("#")[1];
|
||||||
var tls = "over-tls=true";
|
var tls = "over-tls=true";
|
||||||
var cert = Pcert != 0 ? "tls-verification=true" : "tls-verification=false";
|
var cert = Pcert != 0 ? "tls-verification=true" : "tls-verification=false";
|
||||||
var tfo = Ptfo == 1 ? "fast-open=true" : "fast-open=false";
|
var tfo = Ptfo == 1 ? "fast-open=true" : "fast-open=false";
|
||||||
var tls13 = Ptls13 == 1 ? "tls13=true" : "tls13=false";
|
var tls13 = Ptls13 == 1 ? "tls13=true" : "tls13=false";
|
||||||
nss.push(ipport, uname, pwd, tls, cert, tfo, tls13, tag)
|
nss.push(ipport, uname, pwd, tls, cert, tfo, tls13, tag)
|
||||||
}
|
}
|
||||||
var QX = nss.join(",");
|
var QX = nss.join(",");
|
||||||
return QX
|
return QX
|
||||||
}
|
}
|
||||||
|
|
||||||
//quantumult 格式的 vmess URI 转换
|
//quantumult 格式的 vmess URI 转换
|
||||||
|
|||||||
Reference in New Issue
Block a user