mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-26 01:35:09 +00:00
增加.的操作
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-04 17:59⟧
|
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-05 13:59⟧
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
🚫 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
🚫 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
||||||
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
||||||
@@ -25,15 +25,18 @@ B. rewrite(重写) /filter(分流) 的转换&筛选
|
|||||||
⦿ udp=1, tfo=1, tls13=1, 分别开启 udp-relay/fast-open/tls1.3;
|
⦿ udp=1, tfo=1, tls13=1, 分别开启 udp-relay/fast-open/tls1.3;
|
||||||
⦿ cert=0, 强制"tls-verification=false" 跳过证书验证;
|
⦿ cert=0, 强制"tls-verification=false" 跳过证书验证;
|
||||||
⦿ in, out, 分别为 保留/删除 节点, 多参数用 "+" 连接(逻辑"或"), 逻辑"与"用 "." 连接;
|
⦿ in, out, 分别为 保留/删除 节点, 多参数用 "+" 连接(逻辑"或"), 逻辑"与"用 "." 连接;
|
||||||
❖ 支持中文(字母大小写忽略), 特殊字符 urlencode 后使用
|
❖ 支持中文(字母大小写忽略), 操作以下特殊字符时请先替换
|
||||||
∎ "@"☞"%40", "+"☞"%2B", 空格☞"%20", "&"☞"%26"
|
∎ "+"☞"%2B", 空格☞"%20", "&"☞"%26", "."☞"\."
|
||||||
❖ 如 "in=香港.IPLC.04+台湾&out=香港%20BGP"
|
❖ 如 "in=香港.IPLC.0\.2倍率+台湾&out=香港%20BGP"
|
||||||
⦿ regex=正则筛选(字母大小写忽略), 请自行折腾正则表达式;
|
⦿ regex=正则筛选(字母大小写忽略), 请自行折腾正则表达式;
|
||||||
❖ 可用上面的 in/out 搭配使用,in/out 会优先执行;
|
❖ 可用上面的 in/out 搭配使用,in/out 会优先执行;
|
||||||
❖ 对节点完整信息匹配(端口、加密等), 而不只是节点名
|
❖ 对节点完整信息匹配(端口、加密等), 而不只是节点名
|
||||||
⦿ rename 重命名、删除字段, "旧名@新名", "删除字段1.删除字段2☠️", 以及 "前缀@", "@后缀",用 "+" 连接多个参数;
|
⦿ rename 重命名、删除字段, "旧名@新名", "删除字段1.删除字段2☠️", 以及 "前缀@", "@后缀",用 "+" 连接多个参数;
|
||||||
❖ 如 "rename=香港@HK+[SS]@+@[1X]+倍率.流量☠️"
|
❖ 如 "rename=香港@HK+[SS]@+@[1X]+倍率.流量☠️"
|
||||||
❖ 如想删除 ".", 请用"rename=.@點+點☠️" 类似操作
|
❖ 支持中文(字母大小写忽略), 操作以下特殊字符时请先替换
|
||||||
|
∎ "@"☞"%40","+"☞"%2B", 空格☞"%20", "&"☞"%26"
|
||||||
|
❖ 字段删除操作中, "."点符号被征用, 用 "\." 来操作
|
||||||
|
∎ 如删除 "0.2", 请用"0\.2" 代替
|
||||||
⦿ delreg, 利用正则参数来删除节点名中的字段(⚠️ 慎用)
|
⦿ delreg, 利用正则参数来删除节点名中的字段(⚠️ 慎用)
|
||||||
❖ 如 "delreg=(标准|高级).*HKT"
|
❖ 如 "delreg=(标准|高级).*HKT"
|
||||||
⦿ sort=1, -1, x,分别根据节点名 正序/逆序/随机 排序;
|
⦿ sort=1, -1, x,分别根据节点名 正序/逆序/随机 排序;
|
||||||
@@ -803,6 +806,17 @@ function Pobfs(jsonl,Pcert,Ptls13){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//对.的特殊处理(in/out & rename中)
|
||||||
|
function Dot2(cnt) {
|
||||||
|
cnt=cnt? cnt.replace(/\\\./g,"这是个点"):""
|
||||||
|
return cnt
|
||||||
|
}
|
||||||
|
|
||||||
|
function ToDot(cnt) {
|
||||||
|
cnt=cnt? cnt.replace(/这是个点/g,"."):""
|
||||||
|
return cnt
|
||||||
|
}
|
||||||
|
|
||||||
//正则筛选, 完整内容匹配
|
//正则筛选, 完整内容匹配
|
||||||
function Regex(content){
|
function Regex(content){
|
||||||
Preg=RegExp(Preg,"i")
|
Preg=RegExp(Preg,"i")
|
||||||
@@ -815,11 +829,15 @@ function Regex(content){
|
|||||||
// 判断节点过滤的函数
|
// 判断节点过滤的函数
|
||||||
function Scheck(content,param){
|
function Scheck(content,param){
|
||||||
name=content.split("tag=")[1].toUpperCase()
|
name=content.split("tag=")[1].toUpperCase()
|
||||||
|
//$notify("before",param)
|
||||||
|
param=param? param.map(Dot2):param // 对符号.的特殊处理
|
||||||
|
//$notify("after",param)
|
||||||
if(param){
|
if(param){
|
||||||
var flag=0;
|
var flag=0;
|
||||||
for(i=0;i<param.length;i++){
|
for(i=0;i<param.length;i++){
|
||||||
//console.log(param[i])
|
//console.log(param[i])
|
||||||
var params=param[i].split(".");
|
var params=param[i].split(".").map(ToDot);
|
||||||
|
//$notify(params)
|
||||||
const checkpara= (item) => name.indexOf(item.toUpperCase()) !=-1;
|
const checkpara= (item) => name.indexOf(item.toUpperCase()) !=-1;
|
||||||
if(params.every(checkpara)){
|
if(params.every(checkpara)){
|
||||||
flag=1
|
flag=1
|
||||||
@@ -841,16 +859,17 @@ function Filter(servers,Pin,Pout){
|
|||||||
Nname.push(servers[i].replace(/ /g,"").split("tag=")[1])
|
Nname.push(servers[i].replace(/ /g,"").split("tag=")[1])
|
||||||
}else{Delist.push(servers[i].replace(/ /g,"").split("tag=")[1])} //记录未被保留节点
|
}else{Delist.push(servers[i].replace(/ /g,"").split("tag=")[1])} //记录未被保留节点
|
||||||
}//for
|
}//for
|
||||||
if(Pntf0==1 && Delist.length>=1){//通知部分
|
|
||||||
var no= Delist.length<=10? emojino[ Delist.length]:Delist.length ;
|
var no= Delist.length<=10? emojino[ Delist.length]:Delist.length ;
|
||||||
var no1= Nlist.length<=10? emojino[ Nlist.length]:Nlist.length ;
|
var no1= Nlist.length<=10? emojino[ Nlist.length]:Nlist.length ;
|
||||||
|
if(Pntf0==1 && Delist.length>=1){//通知部分
|
||||||
if(Pin && no1>0){ //有 in 参数就通知保留部分
|
if(Pin && no1>0){ //有 in 参数就通知保留部分
|
||||||
$notify("👥 引用"+"⟦"+subtag+"⟧"+" 开始节点筛选","🕹 筛选关键字: "+pfi+pfo, "☠️ 已保留以下 "+no1+"个节点\n"+Nname.join(", "),sub_link);
|
$notify("👥 引用"+"⟦"+subtag+"⟧"+" 开始节点筛选","🕹 筛选关键字: "+pfi+pfo, "☠️ 已保留以下 "+no1+"个节点\n"+Nname.join(", "),sub_link);
|
||||||
}else if(Pout && no>0){
|
}else if(Pout && no>0){
|
||||||
$notify("👥 引用"+"⟦"+subtag+"⟧"+" 开始节点筛选","🕹 筛选关键字: "+pfi+pfo, "☠️ 已删除以下 "+no+"个节点\n"+Delist.join(", "),sub_link);
|
$notify("👥 引用"+"⟦"+subtag+"⟧"+" 开始节点筛选","🕹 筛选关键字: "+pfi+pfo, "☠️ 已删除以下 "+no+"个节点\n"+Delist.join(", "),sub_link);
|
||||||
}
|
}
|
||||||
}else if(no1==0){ //无剩余节点时强制通知
|
}else if(no1==0 || no1==null){ //无剩余节点时强制通知
|
||||||
$notify("‼️ ⟦"+subtag+"⟧"+"筛选后节点数为0️⃣","⚠️ 请自行检查原始链接以及筛选参数", link0, sub_link);}
|
$notify("‼️ ⟦"+subtag+"⟧"+"筛选后节点数为0️⃣","⚠️ 请自行检查原始链接以及筛选参数", link0, sub_link);}
|
||||||
|
//$notify("After",no1,Nlist)
|
||||||
return Nlist
|
return Nlist
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1029,6 +1048,8 @@ function DelReg(content){
|
|||||||
return cnt
|
return cnt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//节点重命名
|
//节点重命名
|
||||||
function Rename(str){
|
function Rename(str){
|
||||||
var server=str;
|
var server=str;
|
||||||
@@ -1049,13 +1070,13 @@ function Rename(str){
|
|||||||
}else if(nname && oname==""){//后缀
|
}else if(nname && oname==""){//后缀
|
||||||
name= name+nname
|
name= name+nname
|
||||||
}else if(oname && oname.indexOf("☠️")!=-1){ //删除特定字符,多字符用.连接
|
}else if(oname && oname.indexOf("☠️")!=-1){ //删除特定字符,多字符用.连接
|
||||||
hh=oname.slice(0,oname.length-2).split(".")
|
hh=Dot2(oname.slice(0,oname.length-2)).split(".") //符号.的特殊处理
|
||||||
for(j=0;j<hh.length;j++){
|
for(j=0;j<hh.length;j++){
|
||||||
var nn=escapeRegExp(hh[j])
|
var nn=escapeRegExp(ToDot(hh[j]))
|
||||||
var del=new RegExp(nn,"gmi");
|
var del=new RegExp(nn,"gmi");
|
||||||
name=name.replace(del,"")
|
name=name.replace(del,"")
|
||||||
}
|
}
|
||||||
}else if(oname=="" && nname==""){ //删除@符号
|
}else if(oname=="" && nname==""){ //仅有@时,删除@符号
|
||||||
name=name.replace(/@/g,"")
|
name=name.replace(/@/g,"")
|
||||||
}else{
|
}else{
|
||||||
name=name}
|
name=name}
|
||||||
|
|||||||
Reference in New Issue
Block a user