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-06-01: 23:59 )
|
# Quantumult X 资源解析器 (2020-06-02: 14:59 )
|
||||||
|
|
||||||
解析器作者: Shawn(请勿私聊问怎么用)
|
解析器作者: Shawn(请勿私聊问怎么用)
|
||||||
有bug请反馈: @Shawn_KOP_bot
|
有bug请反馈: @Shawn_KOP_bot
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
- in, out, 分别为 保留/排除, 多参数用 "+" 连接(逻辑"或"), 逻辑"与"请用"."连接,可直接用中文, 空格用"%20"代替 (如 "in=香港.IPLC.04+台湾&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]+倍率☠️";
|
||||||
- cert=0,跳过证书验证(vmess/trojan),即强制"tls-verification=false";
|
- cert=0,跳过证书验证(vmess/trojan),即强制"tls-verification=false";
|
||||||
- tls13=1, 开启 "tls13=true"(vmess/trojan), 请自行确认服务端是否支持;
|
- tls13=1, 开启 "tls13=true"(vmess/trojan), 请自行确认服务端是否支持;
|
||||||
- sort=1 或 sort=-1, 排序参数,分别根据节点名 正序/逆序 排列;
|
- sort=1 或 sort=-1, 排序参数,分别根据节点名 正序/逆序 排列;
|
||||||
@@ -240,9 +240,9 @@ function Rewrite_Filter(subs,Pin,Pout){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(dwrite.length>0){
|
if(dwrite.length>0){
|
||||||
$notify("🤖 您为 "+"["+subtag+"]"+" 添加的 [rewrite] 过滤关键词为:","🚫 禁用: "+Pout0.join(", "),"☠️ 复写 rewrite 中已禁用以下"+dwrite.length+"个匹配项:"+"\n"+dwrite.join("\n") )
|
$notify("🤖 "+"["+subtag+"]"+" 复写 [rewrite] 过滤关键词为:","🚫 禁用: "+Pout0.join(", "),"☠️ 复写 rewrite 中已禁用以下"+dwrite.length+"个匹配项:"+"\n"+dwrite.join("\n") )
|
||||||
}
|
}
|
||||||
if(Nlist.length==0){$notify("🤖 您为 "+"["+subtag+"]"+" 添加的筛选关键词为:","✅ 保留: "+Pin+",🚫 删除: "+Pout,"☠️ 筛选后剩余rewrite规则数为 0️⃣ 条, 请检查参数及原始链接" )}
|
if(Nlist.length==0){$notify("🤖 "+"["+subtag+"]"+" 筛选关键词为:","✅ 保留: "+Pin+",🚫 删除: "+Pout,"☠️ 筛选后剩余rewrite规则数为 0️⃣ 条, 请检查参数及原始链接" )}
|
||||||
if(hostname!=""){Nlist.push(hostname)}
|
if(hostname!=""){Nlist.push(hostname)}
|
||||||
return Nlist
|
return Nlist
|
||||||
}
|
}
|
||||||
@@ -274,11 +274,11 @@ function HostNamecheck(content,parain,paraout){
|
|||||||
hname="hostname="+nname.join(", ");
|
hname="hostname="+nname.join(", ");
|
||||||
if(dname.length>0){
|
if(dname.length>0){
|
||||||
if(paraout && paraout!=""){
|
if(paraout && paraout!=""){
|
||||||
$notify("🤖 您为 "+"["+subtag+"]"+" 添加的 [rewrite] 过滤关键词为:","🚫 删除: "+paraout,"☠️ 主机名 hostname 中已删除以下"+dname.length+"个匹配项:"+"\n"+dname.join(",") )
|
$notify("🤖 "+"["+subtag+"]"+" 复写 [rewrite] 过滤关键词为:","🚫 删除: "+paraout,"☠️ 主机名 hostname 中已删除以下"+dname.length+"个匹配项:"+"\n"+dname.join(",") )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(nname.length==0){
|
if(nname.length==0){
|
||||||
$notify("🤖 您为 "+"["+subtag+"]"+" 添加的 [rewrite] 筛选关键词为:","✅ 保留: "+parain+",🚫 删除: "+paraout,"☠️ 主机名 hostname 中剩余项为 0️⃣, 请检查参数及原始链接" )
|
$notify("🤖 "+"["+subtag+"]"+" 复写 [rewrite] 筛选关键词为:","✅ 保留: "+parain+",🚫 删除: "+paraout,"☠️ 主机名 hostname 中剩余项为 0️⃣, 请检查参数及原始链接" )
|
||||||
}
|
}
|
||||||
return hname
|
return hname
|
||||||
}
|
}
|
||||||
@@ -325,16 +325,16 @@ function Rule_Handle(subs,Pout,Pin){
|
|||||||
} //else if cc
|
} //else if cc
|
||||||
}//for cnt
|
}//for cnt
|
||||||
var no=dlist.length
|
var no=dlist.length
|
||||||
if(dlist.length>0){$notify("🤖 您为 "+"["+subtag+"]"+" 添加的分流 [filter] 筛选删除关键词为:","🚫 "+ Tout,"☠️ 已删除以下 "+no+"条匹配规则:"+"\n"+dlist.join("\n"))
|
if(dlist.length>0){$notify("🤖 "+"["+subtag+"]"+" 分流 [filter] 筛选删除关键词为:","🚫 "+ Tout,"☠️ 已删除以下 "+no+"条匹配规则:"+"\n"+dlist.join("\n"))
|
||||||
}else{$notify("🤖 您为 "+"["+subtag+"]"+" 添加的 [filter] 筛选删除关键词为:","🚫 "+Tout,"☠️ 没有发现任何匹配项, , 请检查参数或原始链接")}
|
}else{$notify("🤖 "+"["+subtag+"]"+" 分流 [filter] 筛选删除关键词为:","🚫 "+Tout,"☠️ 没有发现任何匹配项, , 请检查参数或原始链接")}
|
||||||
if(Tin!="" && Tin!=null){ //有 in 跟 out 参数时
|
if(Tin!="" && Tin!=null){ //有 in 跟 out 参数时
|
||||||
if(nlist.length>0 ){
|
if(nlist.length>0 ){
|
||||||
$notify("🤖 您为 "+"["+subtag+"]"+" 添加的分流 [filter] 筛选保留关键词为:","✅ "+Tin,"🎯 已保留以下 "+nlist.length+"条匹配规则:"+"\n"+nlist.join("\n"))
|
$notify("🤖 "+"["+subtag+"]"+" 分流 [filter] 筛选保留关键词为:","✅ "+Tin,"🎯 已保留以下 "+nlist.length+"条匹配规则:"+"\n"+nlist.join("\n"))
|
||||||
} else{$notify("🤖 您为 "+"["+subtag+"]"+" 添加的分流 [filter] 筛选关键词为:","✅ 保留:"+Tin+",🚫 删除:"+Tout,"☠️ 筛选后剩余规则数为 0️⃣ 条, 请检查参数及原始链接")
|
} else{$notify("🤖 "+"["+subtag+"]"+" 分流 [filter] 筛选关键词为:","✅ 保留:"+Tin+",🚫 删除:"+Tout,"☠️ 筛选后剩余规则数为 0️⃣ 条, 请检查参数及原始链接")
|
||||||
}
|
}
|
||||||
} else {// if Tin (No Tin)
|
} else {// if Tin (No Tin)
|
||||||
if(nlist.length==0 ){
|
if(nlist.length==0 ){
|
||||||
$notify("🤖 您为 "+"["+subtag+"]"+" 添加的分流 [filter] 筛选删除关键词为:","🚫 "+Tout,"☠️ 筛选后剩余规则数为 0️⃣ 条, 请检查参数及原始链接")
|
$notify("🤖 "+"["+subtag+"]"+" 分流 [filter] 筛选删除关键词为:","🚫 "+Tout,"☠️ 筛选后剩余规则数为 0️⃣ 条, 请检查参数及原始链接")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nlist;
|
return nlist;
|
||||||
@@ -352,8 +352,8 @@ function Rule_Handle(subs,Pout,Pin){
|
|||||||
}
|
}
|
||||||
} // for cnt
|
} // for cnt
|
||||||
if(nlist.length>0){
|
if(nlist.length>0){
|
||||||
$notify("🤖 您为 "+"["+subtag+"]"+" 添加的分流 [filter] 保留筛选关键词为:","✅ "+Tin,"🎯 已保留以下 "+nlist.length+"条匹配规则:"+"\n"+nlist.join("\n"))
|
$notify("🤖 "+"["+subtag+"]"+" 分流 [filter] 保留筛选关键词为:","✅ "+Tin,"🎯 已保留以下 "+nlist.length+"条匹配规则:"+"\n"+nlist.join("\n"))
|
||||||
} else{$notify("🤖 您为 "+"["+subtag+"]"+" 添加的分流 [filter] 保留筛选关键词为:","✅ "+Tin,"☠️ 筛选后剩余规则数为 0️⃣ 条, 请检查参数及原始链接")}
|
} else{$notify("🤖 "+"["+subtag+"]"+" 分流 [filter] 保留筛选关键词为:","✅ "+Tin,"☠️ 筛选后剩余规则数为 0️⃣ 条, 请检查参数及原始链接")}
|
||||||
return nlist;
|
return nlist;
|
||||||
} else { //if Tin
|
} else { //if Tin
|
||||||
return cnt.map(Rule_Policy)
|
return cnt.map(Rule_Policy)
|
||||||
@@ -470,28 +470,35 @@ function TagCheck_QX(content){
|
|||||||
var Olist=content
|
var Olist=content
|
||||||
var Nlist=[]
|
var Nlist=[]
|
||||||
var nmlist=[]
|
var nmlist=[]
|
||||||
|
var nulllist=[]; //记录空名字节点
|
||||||
|
var duplist=[]; //记录重名节点
|
||||||
|
var no=0;
|
||||||
for(i=0;i<Olist.length;i++){
|
for(i=0;i<Olist.length;i++){
|
||||||
var item=Olist[i]
|
var item=Olist[i]
|
||||||
var nm=item.split("tag")[1].split("=")[1].trim() // get tag
|
var nm=item.split("tag")[1].split("=")[1].trim() // get tag
|
||||||
if(nm==""){
|
if(nm==""){ //空名字
|
||||||
nm=" ["+item.split("=")[0]+"] "+item.split("=")[1].split(",")[0].split(":")[0]
|
nm=" ["+item.split("=")[0]+"] "+item.split("=")[1].split(",")[0].split(":")[0]
|
||||||
$notify("⚠️ "+"["+subtag+"]"+" 订阅内出现空节点名 ", "✅ 已自动将节点“类型+IP”作为节点名","✅ "+nm)
|
|
||||||
item=item.split("tag")[0]+"tag="+nm
|
item=item.split("tag")[0]+"tag="+nm
|
||||||
|
nulllist.push(nm)
|
||||||
}
|
}
|
||||||
var ni=0
|
var ni=0
|
||||||
while(nmlist.indexOf(nm)!=-1){
|
while(nmlist.indexOf(nm)!=-1){ //重名
|
||||||
nm=ni<=10? nm.split(" ⌘")[0]+" ⌘"+emojino[ni]:nm.split(" ⌘")[0]+" ⌘"+ni
|
nm=ni<=10? nm.split(" ⌘")[0]+" ⌘"+emojino[ni]:nm.split(" ⌘")[0]+" ⌘"+ni
|
||||||
item=item.split("tag")[0]+"tag="+nm
|
item=item.split("tag")[0]+"tag="+nm
|
||||||
ni=ni+1
|
ni=ni+1
|
||||||
}
|
|
||||||
if(ni!=0){
|
|
||||||
$notify("⚠️ "+"["+subtag+"]"+" 订阅内出现重复节点名 ", "⚠️ "+ nm.split("")[0], "✅ 已自动添加⌘符号作为区分:"+nm)
|
|
||||||
}
|
}
|
||||||
|
if(ni!=0){ duplist.push(nm)}
|
||||||
nmlist.push(nm)
|
nmlist.push(nm)
|
||||||
ni=0
|
ni=0
|
||||||
Nlist.push(item)
|
Nlist.push(item)
|
||||||
|
} // for
|
||||||
}
|
//$notify(nulllist.length,)
|
||||||
|
if(nulllist.length>=1){
|
||||||
|
no= nulllist.length<=10? emojino[nulllist.length]:nulllist.length ;
|
||||||
|
$notify("⚠️ "+"["+subtag+"]"+" 订阅内出现"+no+"个空节点名 ", "✅ 已自动将节点“类型+IP”作为节点名",nulllist.join("\n"))}
|
||||||
|
if(duplist.length>=1){
|
||||||
|
no= duplist.length<=10? emojino[duplist.length]:duplist.length ;
|
||||||
|
$notify("⚠️ "+"["+subtag+"]"+" 订阅内出现"+no+"个重复节点名 ", "✅ 已自动添加⌘符号作为区分:", duplist.join("\n"))}
|
||||||
return Nlist
|
return Nlist
|
||||||
}
|
}
|
||||||
//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
|
||||||
|
|||||||
Reference in New Issue
Block a user