mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-25 17:15:09 +00:00
增加 rewrite 引用参数过滤
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
/**
|
||||
#Quantumult X 资源解析器 (2020-04-28: 13:33)
|
||||
#Quantumult X 资源解析器 (2020-04-29: 11:33)
|
||||
|
||||
本资源解析器作者: Shawn(@XIAO_KOP), 有问题请反馈: @Shawn_KOP_bot
|
||||
|
||||
功能: 将节点订阅解析成 Quantumult X 引用片段, 并提供下列可选参数 (已支持 V2RayN/SSR/SS/Trojan/QuanX 订阅)
|
||||
主要功能: 将节点订阅解析成 Quantumult X 引用片段, 并提供下列可选参数 (已支持 V2RayN/SSR/SS/Trojan/QuanX 订阅);
|
||||
|
||||
附赠功能:rewrite 复写引用过滤
|
||||
|
||||
0️⃣ 在订阅链接后加入 "#" 符号后再加参数, 不同参数间请使用 "&" 来连接, 如: "#in=香港+台湾&emoji=1&tfo=1"
|
||||
|
||||
@@ -16,6 +18,8 @@
|
||||
4️⃣ rename 重命名, rename=旧名@新名, 以及 "前缀@", "@后缀", 用 "+" 连接, 如 "rename=香港@HK+[SS]@+@[1X]"
|
||||
|
||||
5️⃣ info=1, 用于打开转换解析器的提示通知 (默认关闭)
|
||||
|
||||
6⃣️ 支持过滤主机名跟重写规则,用于 rewrite 引用模块,参数一样为 "out=para"
|
||||
*/
|
||||
|
||||
|
||||
@@ -55,13 +59,20 @@ if(type0=="Vmess"){
|
||||
}else if(type0=="SS"){
|
||||
total=SS2QX(content0,Pudp0,Ptfo0);
|
||||
flag=1
|
||||
}else if(type0=="rewrite"){
|
||||
flag=2;
|
||||
content0=content0.split("\n");
|
||||
total=Rewrite_Filter(content0,Pout0);
|
||||
}else {
|
||||
$notify("👻该解析器暂未支持您的订阅格式","😭太难写了", "stay tuned");
|
||||
flag=0;
|
||||
$done({content : content0});
|
||||
}
|
||||
|
||||
if(flag==1){
|
||||
if(flag==2){
|
||||
if(Pout0){$notify("正在删除复写规则&主机名","删除参数为:",Pout0);}
|
||||
$done({content:total.join("\n")});
|
||||
}else if(flag==1){
|
||||
if(Pin0||Pout0){
|
||||
if(Pinfo!=0){
|
||||
$notify("👥 开始转换节点,类型:"+type0,"🐶 您已添加节点筛选参数,如下","👍️ 保留的关键字:"+Pin0+"\n👎️ 排除的关键字:"+Pout0);}
|
||||
@@ -98,10 +109,51 @@ function Type_Check(subs){
|
||||
type="Trojan"
|
||||
} else if (subs.indexOf("c3M6Ly")!= -1){
|
||||
type="SS"
|
||||
} else if(subs.indexOf("hostname")!=-1){
|
||||
type="rewrite"
|
||||
}
|
||||
return type
|
||||
}
|
||||
|
||||
function Trim(item){
|
||||
return item.trim()
|
||||
}
|
||||
//删除 rewrite 引用中的某部分
|
||||
function Rewrite_Filter(subs,Pout){
|
||||
cnt=subs;
|
||||
nlist=[]
|
||||
Pout=Pout.map(Trim);
|
||||
if(Pout!="" && Pout!=null){
|
||||
for(var i=0;i<cnt.length;i++){
|
||||
var cc=cnt[i];
|
||||
if(cc.trim()!=""){
|
||||
const exclude = (item) => cc.indexOf(item)!=-1;
|
||||
if(Pout.some(exclude)){
|
||||
if(cc.indexOf("hostname")!=-1 && cc.indexOf("=")!=-1){
|
||||
nname=[]
|
||||
hname=cc.split("=")[1].split(",");
|
||||
for(var j=0;j<hname.length;j++){
|
||||
dd=hname[j]
|
||||
const excludehn = (item) => dd.indexOf(item)!=-1;
|
||||
if(!Pout.some(excludehn)){
|
||||
nname.push(hname[j])
|
||||
}
|
||||
} //for j
|
||||
hname="hostname="+nname.join(", ");
|
||||
//console.log(hname)
|
||||
nlist.push(hname)
|
||||
} // if cc
|
||||
}else{ //if Pout.some
|
||||
nlist.push(cc)
|
||||
} //else
|
||||
}
|
||||
}//cnt for
|
||||
return nlist
|
||||
} else{
|
||||
return cnt;}
|
||||
|
||||
}
|
||||
|
||||
//V2RayN 订阅转换成 QUANX 格式
|
||||
function V2QX(subs,Pudp,Ptfo){
|
||||
const $base64 = new Base64()
|
||||
|
||||
Reference in New Issue
Block a user