mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-25 21:25:09 +00:00
节点过滤支持逻辑"与"
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
# Quantumult X 资源解析器 (2020-05-12: 22:59)
|
# Quantumult X 资源解析器 (2020-05-12: 23:59 )
|
||||||
|
|
||||||
本资源解析器作者: Shawn(请勿私聊问怎么用),有bug请反馈: @Shawn_KOP_bot
|
本资源解析器作者: Shawn(请勿私聊问怎么用),有bug请反馈: @Shawn_KOP_bot
|
||||||
更新请关注tg频道: https://t.me/QuanX_API
|
更新请关注tg频道: https://t.me/QuanX_API
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"https://mysub.com#in=香港+台湾&emoji=1&tfo=1"
|
"https://mysub.com#in=香港+台湾&emoji=1&tfo=1"
|
||||||
|
|
||||||
1️⃣ "节点"订阅--参数说明:
|
1️⃣ "节点"订阅--参数说明:
|
||||||
- in, out, 分别为 保留/排除, 多参数用 "+" 连接, 可直接用中文, 空格用"%20"代替 (如 "in=香港+台湾&out=香港%20BGP" );
|
- in, out, 分别为 保留/排除, 多参数用 "+" 连接(逻辑"或"), 逻辑"与"请用"."连接,可直接用中文, 空格用"%20"代替 (如 "in=香港.IPLC.04+台湾&out=香港%20BGP" );
|
||||||
- emoji=1,2 或 -1, 为添加/删除节点名中的 emoji 旗帜 (国行设备请用 emoji=2 );
|
- emoji=1,2 或 -1, 为添加/删除节点名中的 emoji 旗帜 (国行设备请用 emoji=2 );
|
||||||
- udp=1, tfo=1 参数开启 udp-relay 及 fast-open (默认关闭, 此参数对源类型为 QuanX/Surge 的链接无效);
|
- udp=1, tfo=1 参数开启 udp-relay 及 fast-open (默认关闭, 此参数对源类型为 QuanX/Surge 的链接无效);
|
||||||
- rename 重命名, rename=旧名@新名, 以及 "前缀@", "@后缀", 用 "+" 连接, 如 "rename=香港@HK+[SS]@+@[1X]";
|
- rename 重命名, rename=旧名@新名, 以及 "前缀@", "@后缀", 用 "+" 连接, 如 "rename=香港@HK+[SS]@+@[1X]";
|
||||||
@@ -292,28 +292,57 @@ function V2QX(subs,Pudp,Ptfo,Pcert,Ptls13){
|
|||||||
return QXList
|
return QXList
|
||||||
}
|
}
|
||||||
|
|
||||||
//节点过滤,使用+连接多个关键词:in 为保留,out 为排除
|
////节点过滤,使用+连接多个关键词:in 为保留,out 为排除
|
||||||
function filter(Servers,Pin,Pout){
|
//function filter(Servers,Pin,Pout){
|
||||||
var NList=[];
|
// var NList=[];
|
||||||
for(var i=0;i<Servers.length; i++){
|
// for(var i=0;i<Servers.length; i++){
|
||||||
if(Servers[i].indexOf("tag")!=-1){
|
// if(Servers[i].indexOf("tag")!=-1){
|
||||||
name=Servers[i].split("tag=")[1].toUpperCase()
|
// name=Servers[i].split("tag=")[1].toUpperCase()
|
||||||
const include = (item) => name.indexOf(item.toUpperCase()) != -1;
|
// const include = (item) => name.indexOf(item.toUpperCase()) != -1;
|
||||||
const exclude = (item) => name.indexOf(item.toUpperCase()) != -1;
|
// const exclude = (item) => name.indexOf(item.toUpperCase()) != -1;
|
||||||
if(Pin){
|
// if(Pin){
|
||||||
if(Pin.some(include)&&Pout){
|
// if(Pin.some(include)&&Pout){
|
||||||
if(!Pout.some(exclude)){
|
// if(!Pout.some(exclude)){
|
||||||
NList.push(Servers[i])
|
// NList.push(Servers[i])
|
||||||
|
// }
|
||||||
|
// } else if(Pin.some(include)&&!Pout) {NList.push(Servers[i])}
|
||||||
|
// } else{
|
||||||
|
// if(!Pout.some(exclude)){
|
||||||
|
// NList.push(Servers[i])
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return NList
|
||||||
|
//}
|
||||||
|
|
||||||
|
// 判断节点过滤的函数
|
||||||
|
function Scheck(content,param){
|
||||||
|
name=content.split("tag=")[1].toUpperCase()
|
||||||
|
if(param){
|
||||||
|
var flag=0;
|
||||||
|
for(i=0;i<param.length;i++){
|
||||||
|
console.log(param[i])
|
||||||
|
var params=param[i].split(".");
|
||||||
|
const checkpara= (item) => name.indexOf(item.toUpperCase()) !=-1;
|
||||||
|
if(params.every(checkpara)){
|
||||||
|
flag=1
|
||||||
}
|
}
|
||||||
} else if(Pin.some(include)&&!Pout) {NList.push(Servers[i])}
|
}//for
|
||||||
} else{
|
return flag
|
||||||
if(!Pout.some(exclude)){
|
}else { //if param
|
||||||
NList.push(Servers[i])
|
return 2}
|
||||||
|
}
|
||||||
|
|
||||||
|
//节点过滤,使用+连接多个关键词(逻辑"或"):in 为保留,out 为排除, "与"逻辑请用符号"."连接
|
||||||
|
function filter(servers,Pin,Pout){
|
||||||
|
var Nlist=[];
|
||||||
|
for(var i=0;i<servers.length;i++){
|
||||||
|
if(Scheck(servers[i],Pin)!=0 && Scheck(servers[i],Pout)!=1){
|
||||||
|
Nlist.push(servers[i])
|
||||||
}
|
}
|
||||||
}
|
}//for
|
||||||
}
|
return Nlist
|
||||||
}
|
|
||||||
return NList
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vmess obfs 参数
|
// Vmess obfs 参数
|
||||||
|
|||||||
Reference in New Issue
Block a user