delreg参数

This commit is contained in:
Shawn
2020-07-04 17:09:58 +08:00
parent ae96b7b5b8
commit 91bb3ebd30

View File

@@ -1,5 +1,5 @@
/**
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-03 14:59⟧
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-07-04 17:59⟧
----------------------------------------------------------
🚫 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
@@ -12,7 +12,7 @@ A. 将各格式的服务器订阅解析成 𝐐𝐮𝐚𝐧𝐭𝐮𝐦𝐮𝐥
B. rewrite(重写) /filter(分流) 的转换&筛选
✔︎ 用于禁用远程引用中某(几)项 rewrite/hostname/filter
✔︎ Surge 类型规则 list(不含策略组)的解析与使用
✔︎ Surge 模块/配置 URL-REGEX、302(7) 复写、Script 的解析
✔︎ Surge 模块/配置 URL-REGEX、302(7) 复写、Script 的解析
----------------------------------------------------------
0⃣ ⟦原始订阅链接⟧ 后加 "#" , 不同参数用 "&" 连接:
⚠️ ☞ https://mysub.com#in=香港+台湾&emoji=1&tfo=1
@@ -34,6 +34,8 @@ B. rewrite(重写) /filter(分流) 的转换&筛选
⦿ rename 重命名、删除字段, "旧名@新名", "删除字段1.删除字段2☠", 以及 "前缀@", "@后缀",用 "+" 连接多个参数;
❖ 如 "rename=香港@HK+[SS]@+@[1X]+倍率.流量☠️"
❖ 如想删除 ".", 请用"rename=.@點+點☠️" 类似操作
⦿ delreg, 利用正则参数来删除节点名中的字段(⚠️ 慎用)
❖ 如 "delreg=(标准|高级).*HKT"
⦿ sort=1, -1, x,分别根据节点名 正序/逆序/随机 排序;
2⃣ ⟦rewrite 重写⟧/⟦filter 分流⟧ ➠ 参数说明:
@@ -75,6 +77,7 @@ para1=para.slice(para.indexOf("#")+1) //防止参数中其它位置也存在"#"
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 Preg=mark0 && para1.indexOf("regex=")!=-1? decodeURIComponent(para1.split("regex=")[1].split("&")[0]):null; //server正则过滤参数
var Pregdel=mark0 && para1.indexOf("delreg=")!=-1? decodeURIComponent(para1.split("delreg=")[1].split("&")[0]):null; // 正则删除参数
//$notify(link0,"type0",type0)
var Phin0=mark0 && para1.indexOf("inhn=")!=-1? (para1.split("inhn=")[1].split("&")[0].split("+")).map(decodeURIComponent):null; //hostname
var Phout0=mark0 && para1.indexOf("outhn=")!=-1? (para1.split("outhn=")[1].split("&")[0].split("+")).map(decodeURIComponent):null; //hostname
@@ -194,6 +197,10 @@ if(flag==3){
var Prn=Prname;
total=total.map(Rename);
}
if(Pregdel){
var delreg=Pregdel
total=total.map(DelReg)
}
if(Psort0==1 || Psort0==-1){
total=QXSort(total,Psort0);
}else if(Psort0=="x"){
@@ -872,10 +879,12 @@ function SSR2QX(subs,Pudp,Ptfo){
ptfo= Ptfo==1? "fast-open=true":"fast-open=false";
nssr.push(type+ip,pwd,mtd,obfs+obfshost+oparam+ssrp,pudp,ptfo,tag)
QX=nssr.join(", ")
}
}else {QX=""}
return QX;
}
//Trojan 类型 URI 转换成 QX
function TJ2QX(subs,Pudp,Ptfo,Pcert,Ptls13){
var ntrojan=[]
@@ -1011,6 +1020,14 @@ function ToTagR(elem1,elem2){
return res
}
//正则删除节点名内的字符
function DelReg(content){
delreg=RegExp(delreg,"gmi")
cnt0=content.split("tag=")[0]
cnt1=content.split("tag=")[1]
cnt=cnt0+"tag="+cnt1.replace(delreg,"")
return cnt
}
//节点重命名
function Rename(str){
@@ -1023,7 +1040,7 @@ function Rename(str){
oname=Prn[i].split("@")[0]? decodeURIComponent(Prn[i].split("@")[0]):Prn[i].split("@")[0];
if(oname&&nname){ //重命名
var rn=escapeRegExp(oname)
name=name.replace(new RegExp(rn,"gm"),nname)
name=name.replace(new RegExp(rn,"gmi"),nname)
}else if(oname && nname==""){//前缀
var nemoji=emoji_del(name)
if(Pemoji==1 || Pemoji==2){ //判断是否有重复 emoji有则删除旧有
@@ -1035,7 +1052,7 @@ function Rename(str){
hh=oname.slice(0,oname.length-2).split(".")
for(j=0;j<hh.length;j++){
var nn=escapeRegExp(hh[j])
var del=new RegExp(nn,"gm");
var del=new RegExp(nn,"gmi");
name=name.replace(del,"")
}
}else if(oname=="" && nname==""){ //删除@符号