mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-26 05:45:09 +00:00
sub fixed
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-07 17:39⟧
|
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-08 14:39⟧
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
🚫 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
🚫 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
||||||
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
||||||
@@ -74,14 +74,32 @@ PS. 隐藏参数 ntf=0/1, 用于关闭/打开资源解析器的提示通知
|
|||||||
var content0=$resource.content;
|
var content0=$resource.content;
|
||||||
var link0=$resource.link;
|
var link0=$resource.link;
|
||||||
//debug
|
//debug
|
||||||
//const $notify=console.log
|
const $notify=console.log
|
||||||
//const $resource={}
|
const $resource={}
|
||||||
//const $done=function(snt){return snt}
|
const $done=function(snt){return snt}
|
||||||
//parameters
|
//parameters
|
||||||
var para=(link0.indexOf("http")!=-1 && link0.indexOf("://")!=-1)? link0:link0+content0.split("\n")[0];
|
var para=(link0.indexOf("http")!=-1 && link0.indexOf("://")!=-1)? link0:link0+content0.split("\n")[0];
|
||||||
|
var para1=para.slice(para.indexOf("#")+1) //防止参数中其它位置也存在"#"
|
||||||
var mark0=para.indexOf("#")!=-1? true:false;
|
var mark0=para.indexOf("#")!=-1? true:false;
|
||||||
var type0=Type_Check(content0);
|
const subinfo=$resource.info;
|
||||||
para1=para.slice(para.indexOf("#")+1) //防止参数中其它位置也存在"#"
|
const subtag=$resource.tag!=undefined? $resource.tag:"";
|
||||||
|
var Pinfo=mark0 && para1.indexOf("info=")!=-1? para1.split("info=")[1].split("&")[0]:0;
|
||||||
|
var ntf_flow=0;
|
||||||
|
//常用量
|
||||||
|
const Base64=new Base64Code();
|
||||||
|
const escapeRegExp = str => str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); //处理特殊符号以便正则匹配使用
|
||||||
|
const qxpng="https://raw.githubusercontent.com/crossutility/Quantumult-X/master/quantumult-x.png"
|
||||||
|
const subinfo_link = {"open-url": "https://t.me/QuanX_API", "media-url" :"https://shrtm.nu/ebAr"};
|
||||||
|
const rwrite_link = {"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/x3o2"}
|
||||||
|
const rwhost_link = {"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/0n5J"}
|
||||||
|
const rule_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/cpHD"}
|
||||||
|
const nan_link={"open-url":link0.split("#")[0], "media-url": qxpng}
|
||||||
|
const sub_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/ebAr"}
|
||||||
|
const subinfo_link1={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/uo13"}
|
||||||
|
|
||||||
|
SubFlow() //流量通知
|
||||||
|
var type0=Type_Check(content0); // 类型
|
||||||
|
//$notify(type0)
|
||||||
var Pin0=mark0 && para1.indexOf("in=")!=-1? (para1.split("in=")[1].split("&")[0].split("+")).map(decodeURIComponent):null;
|
var Pin0=mark0 && para1.indexOf("in=")!=-1? (para1.split("in=")[1].split("&")[0].split("+")).map(decodeURIComponent):null;
|
||||||
var Pout0=mark0 && para1.indexOf("out=")!=-1? (para1.split("out=")[1].split("&")[0].split("+")).map(decodeURIComponent):null;
|
var Pout0=mark0 && para1.indexOf("out=")!=-1? (para1.split("out=")[1].split("&")[0].split("+")).map(decodeURIComponent):null;
|
||||||
var Preg=mark0 && para1.indexOf("regex=")!=-1? decodeURIComponent(para1.split("regex=")[1].split("&")[0]):null; //server正则过滤参数
|
var Preg=mark0 && para1.indexOf("regex=")!=-1? decodeURIComponent(para1.split("regex=")[1].split("&")[0]):null; //server正则过滤参数
|
||||||
@@ -91,7 +109,6 @@ var Phout0=mark0 && para1.indexOf("outhn=")!=-1? (para1.split("outhn=")[1].split
|
|||||||
var Pemoji=mark0 && para1.indexOf("emoji=")!=-1? para1.split("emoji=")[1].split("&")[0]:null;
|
var Pemoji=mark0 && para1.indexOf("emoji=")!=-1? para1.split("emoji=")[1].split("&")[0]:null;
|
||||||
var Pudp0=mark0 && para1.indexOf("udp=")!=-1? para1.split("udp=")[1].split("&")[0]:0;
|
var Pudp0=mark0 && para1.indexOf("udp=")!=-1? para1.split("udp=")[1].split("&")[0]:0;
|
||||||
var Ptfo0=mark0 && para1.indexOf("tfo=")!=-1? para1.split("tfo=")[1].split("&")[0]:0;
|
var Ptfo0=mark0 && para1.indexOf("tfo=")!=-1? para1.split("tfo=")[1].split("&")[0]:0;
|
||||||
var Pinfo=mark0 && para1.indexOf("info=")!=-1? para1.split("info=")[1].split("&")[0]:0;
|
|
||||||
var Prname=mark0 && para1.indexOf("rename=")!=-1? para1.split("rename=")[1].split("&")[0].split("+"):null;
|
var Prname=mark0 && para1.indexOf("rename=")!=-1? para1.split("rename=")[1].split("&")[0].split("+"):null;
|
||||||
var Prrname=mark0 && para1.indexOf("rrname=")!=-1? para1.split("rrname=")[1].split("&")[0].split("+"):null;
|
var Prrname=mark0 && para1.indexOf("rrname=")!=-1? para1.split("rrname=")[1].split("&")[0].split("+"):null;
|
||||||
var Ppolicy=mark0 && para1.indexOf("policy=")!=-1? decodeURIComponent(para1.split("policy=")[1].split("&")[0]):"Shawn";
|
var Ppolicy=mark0 && para1.indexOf("policy=")!=-1? decodeURIComponent(para1.split("policy=")[1].split("&")[0]):"Shawn";
|
||||||
@@ -107,21 +124,9 @@ var pfihn=Phin0? "inhn="+Phin0.join(", ")+", ":""
|
|||||||
var pfohn=Phout0? "outhn="+Phout0.join(", "):""
|
var pfohn=Phout0? "outhn="+Phout0.join(", "):""
|
||||||
var flow="";
|
var flow="";
|
||||||
var exptime="";
|
var exptime="";
|
||||||
var ntf_flow=0;
|
|
||||||
const subinfo=$resource.info;
|
|
||||||
const subtag=$resource.tag!=undefined? $resource.tag:"";
|
|
||||||
const Base64=new Base64Code();
|
|
||||||
const escapeRegExp = str => str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); //处理特殊符号以便正则匹配使用
|
|
||||||
const qxpng="https://raw.githubusercontent.com/crossutility/Quantumult-X/master/quantumult-x.png"
|
|
||||||
var subinfo_link = {"open-url": "https://t.me/QuanX_API", "media-url" :"https://shrtm.nu/ebAr"};
|
|
||||||
var rwrite_link = {"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/x3o2"}
|
|
||||||
var rwhost_link = {"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/0n5J"}
|
|
||||||
var rule_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/cpHD"}
|
|
||||||
var nan_link={"open-url":link0.split("#")[0], "media-url": qxpng}
|
|
||||||
var sub_link={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/ebAr"}
|
|
||||||
var subinfo_link1={"open-url":link0.split("#")[0], "media-url": "https://shrtm.nu/uo13"}
|
|
||||||
|
|
||||||
//响应头流量处理部分
|
//响应头流量处理部分
|
||||||
|
function SubFlow(){
|
||||||
if(Pinfo==1 && subinfo){
|
if(Pinfo==1 && subinfo){
|
||||||
var sinfo=subinfo.replace(/ /g,"").toLowerCase();
|
var sinfo=subinfo.replace(/ /g,"").toLowerCase();
|
||||||
var total="总流量: "+(parseFloat(sinfo.split("total=")[1].split(",")[0])/(1024**3)).toFixed(2)+"GB";
|
var total="总流量: "+(parseFloat(sinfo.split("total=")[1].split(",")[0])/(1024**3)).toFixed(2)+"GB";
|
||||||
@@ -140,6 +145,7 @@ if(Pinfo==1 && subinfo){
|
|||||||
ntf_flow=1;
|
ntf_flow=1;
|
||||||
$notify("流量信息: ⟦"+subtag+"⟧", epr, message,subinfo_link)
|
$notify("流量信息: ⟦"+subtag+"⟧", epr, message,subinfo_link)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(type0=="Subs-B64Encode"){
|
if(type0=="Subs-B64Encode"){
|
||||||
total=SubsEd2QX(content0,Pudp0,Ptfo0,Pcert0,PTls13);
|
total=SubsEd2QX(content0,Pudp0,Ptfo0,Pcert0,PTls13);
|
||||||
@@ -217,12 +223,13 @@ if(flag==3){
|
|||||||
}
|
}
|
||||||
total=TagCheck_QX(total)
|
total=TagCheck_QX(total)
|
||||||
total=total.join("\n");
|
total=total.join("\n");
|
||||||
|
$notify("Final","test",total)
|
||||||
if(flag==1){
|
if(flag==1){
|
||||||
total=Base64.encode(total)} //强制 base64
|
total=Base64.encode(total)} //强制 base64
|
||||||
$done({content : total});
|
$done({content : total});
|
||||||
}
|
}
|
||||||
|
|
||||||
//flowcheck
|
//flowcheck-fake-server
|
||||||
function flowcheck(cnt){
|
function flowcheck(cnt){
|
||||||
for(var i=0;i<cnt.length;i++){
|
for(var i=0;i<cnt.length;i++){
|
||||||
var item=cnt[i];
|
var item=cnt[i];
|
||||||
@@ -586,7 +593,7 @@ function SubsEd2QX(subs,Pudp,Ptfo,Pcert,Ptls13){
|
|||||||
node = SS2QX(list0[i],Pudp,Ptfo)
|
node = SS2QX(list0[i],Pudp,Ptfo)
|
||||||
}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"&&listi.indexOf("@")!=-1){ //subs,Ptfo,Pcert,Ptls13
|
||||||
node = HPS2QX(list0[i],Ptfo,Pcert,Ptls13)
|
node = HPS2QX(list0[i],Ptfo,Pcert,Ptls13)
|
||||||
}else if(QuanXK.some(QuanXCheck)){
|
}else if(QuanXK.some(QuanXCheck)){
|
||||||
node = list0[i]
|
node = list0[i]
|
||||||
@@ -636,7 +643,7 @@ function Subs2QX(subs,Pudp,Ptfo,Pcert,Ptls13){
|
|||||||
node = SSD2QX(list0[i],Pudp,Ptfo)
|
node = SSD2QX(list0[i],Pudp,Ptfo)
|
||||||
}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"){
|
}else if(type=="https"&&listi.indexOf("@")!=-1){
|
||||||
node = HPS2QX(list0[i],Ptfo,Pcert,Ptls13)
|
node = HPS2QX(list0[i],Ptfo,Pcert,Ptls13)
|
||||||
}else if(QuanXK.some(QuanXCheck)){
|
}else if(QuanXK.some(QuanXCheck)){
|
||||||
//$notify("QX")
|
//$notify("QX")
|
||||||
@@ -703,7 +710,6 @@ function TagCheck_QX(content){
|
|||||||
//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.replace("https://","")).trim().split("\u0000")[0];
|
var server=Base64.decode(subs.replace("https://","")).trim().split("\u0000")[0];
|
||||||
var nss=[]
|
var nss=[]
|
||||||
if(server!=""){
|
if(server!=""){
|
||||||
|
|||||||
Reference in New Issue
Block a user