mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-25 17:15:09 +00:00
new sort method
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-09-16 11:39⟧
|
||||
☑️ 资源解析器 ©𝐒𝐡𝐚𝐰𝐧 ⟦2020-09-19 20:59⟧
|
||||
----------------------------------------------------------
|
||||
🛠 发现 𝐁𝐔𝐆 请反馈: @Shawn_KOP_bot
|
||||
⛳️ 关注 🆃🅶 相关频道: https://t.me/QuanX_API
|
||||
@@ -16,30 +16,32 @@
|
||||
0️⃣ ⟦原始链接⟧ 后加 "#" 使用, 不同参数用 "&" 连接:
|
||||
⚠️ ☞ 𝐡𝐭𝐭𝐩𝐬://𝐦𝐲𝐬𝐮𝐛.𝐜𝐨𝐦#𝙚𝙢𝙤𝙟𝙞=1&𝙩𝙛𝙤=1&𝙞𝙣=香港+台湾
|
||||
❖ 本地资源片段引用, 请将参数 "#𝗶𝗻=𝘅𝘅𝘅." 填入文件第 ① 行 ❖
|
||||
❖ 🚦 支持中文, "操作" 以下特殊字符时请先替换 🚦
|
||||
∎ "+"⇒"%2B", 空格⇒"%20", "@"⇒"%40", "&"⇒"%26", "."⇒"\."
|
||||
|
||||
1️⃣ ⟦𝐬𝐞𝐫𝐯𝐞𝐫 节点⟧ ➠ 参数说明:
|
||||
⦿ 𝗶𝗻𝗳𝗼=1, 开启通知提示机场 ✈️ 流量信息(如有提供);
|
||||
⦿ 𝗲𝗺𝗼𝗷𝗶=1(国行设备用2)/-1, 添加/删除节点名内地区旗帜;
|
||||
⦿ 𝘂𝗱𝗽=1/-1, 𝘁𝗳𝗼=1/-1, 分别强制开启(关闭) 𝐮𝐝𝐩-𝐫𝐞𝐥𝐚𝐲/𝐟𝐚𝐬𝐭-𝐨𝐩𝐞𝐧;
|
||||
⦿ 𝘁𝗹𝘀13=1, 开启 𝐭𝐥𝐬1.3, 请自行确认服务端是否已开启;
|
||||
⦿ 𝗰𝗲𝗿𝘁=1, "𝐭𝐥𝐬-𝐯𝐞𝐫𝐢𝐟𝐢𝐜𝐚𝐭𝐢𝐨𝐧=𝐭𝐫𝐮𝐞" 开启证书验证(默认关闭);
|
||||
⦿ 𝗶𝗻, 𝗼𝘂𝘁, 分别为 保留、删除 节点;
|
||||
❖ 多参数(逻辑"或")用 "+", 逻辑"与"用 "." 表示;
|
||||
❖ 支持中文, 操作以下特殊字符时请先替换
|
||||
∎ "+"⇒"%2B", 空格⇒"%20", "&"⇒"%26", "."⇒"\."
|
||||
⦿ 𝘁𝗹𝘀13=1, 𝗰𝗲𝗿𝘁=1, 分别开启 𝐭𝐥𝐬1.3 及 "𝐭𝐥𝐬-𝐯𝐞𝐫𝐢𝐟𝐢𝐜𝐚𝐭𝐢𝐨𝐧=𝐭𝐫𝐮𝐞" 证书验证(默认关闭);
|
||||
⦿ 𝗶𝗻, 𝗼𝘂𝘁, 𝗿𝗲𝗴𝗲𝘅 分别为 保留、删除、正则筛选 节点;
|
||||
❖ 𝗶𝗻, 𝗼𝘂𝘁 中多参数(逻辑"或")用 "+", 逻辑"与"用 "." 表示;
|
||||
❖ 示范: "𝐢𝐧=香港.0\.2倍率+台湾&𝐨𝐮𝐭=香港%20𝐁𝐆𝐏"
|
||||
⦿ 𝗿𝗲𝗴𝗲𝘅, 正则筛选, 请自行折腾正则表达式;
|
||||
❖ 可与 𝗶𝗻/𝗼𝘂𝘁 参数搭配使用, 𝗶𝗻/𝗼𝘂𝘁 会优先执行;
|
||||
❖ 对节点的完整信息进行匹配(类型、端口、加密等)
|
||||
❖ 𝗿𝗲𝗴𝗲𝘅 可与 𝗶𝗻/𝗼𝘂𝘁 参数搭配使用, 𝗶𝗻/𝗼𝘂𝘁 会优先执行;
|
||||
❖ 𝗿𝗲𝗴𝗲𝘅 会对节点的完整信息进行匹配(类型、端口、加密等)
|
||||
⦿ 𝗿𝗲𝗻𝗮𝗺𝗲 重命名, "旧名@新名", "前缀@", "@后缀", 用 "+" 连接多个参数;
|
||||
❖ 支持中文, 操作以下特殊字符时请先替换
|
||||
∎ "@"⇒"%40","+"⇒"%2B", 空格⇒"%20", "&"⇒"%26"
|
||||
❖ 删除字段: "字段1.字段2☠️", 想删除 "." 时用 "\." 替代
|
||||
❖ 示范: "𝐫𝐞𝐧𝐚𝐦𝐞=香港@𝐇𝐊+[𝐒𝐒]@+@[1𝐗]+流量.0\.2☠️"
|
||||
❖ 默认emoji 先生效, 如想更改顺序, 请用 𝗿𝗿𝗻𝗮𝗺𝗲 参数
|
||||
⦿ 𝗱𝗲𝗹𝗿𝗲𝗴, 利用正则表达式来删除节点名中的字段(⚠️ 慎用)
|
||||
⦿ 𝘀𝗼𝗿𝘁=1, -1, x, 分别根据节点名 正序/逆序/随机 排序
|
||||
⦿ 𝗱𝗲𝗹𝗿𝗲𝗴, 利用正则表达式来删除 "节点名" 中的字段(⚠️ 慎用)
|
||||
⦿ 𝗿𝗲𝗽𝗹𝗮𝗰𝗲 参数, 正则替换 𝐬𝐞𝐫𝐯𝐞𝐫 中内容, 可用于重命名/更改加密方式等
|
||||
❖ 𝗿𝗲𝗽𝗹𝗮𝗰𝗲=𝗿𝗲𝗴𝗲𝘅1@𝘀𝘁𝗿1+𝗿𝗲𝗴𝗲𝘅2@𝘀𝘁𝗿2
|
||||
❖ 𝗿𝗲𝗽𝗹𝗮𝗰𝗲=𝗿𝗲𝗴𝗲𝘅1@ 则等效于 𝗱𝗲𝗹𝗿𝗲𝗴 参数
|
||||
⦿ 𝘀𝗼𝗿𝘁=1, -1, x, 指定规则: 分别根据节点名 正序/逆序/随机/指定规则 排序
|
||||
❖ 指定规则可以是正则表达式或简单关键词, 用"<" 跟 ">" 表示顺序
|
||||
❖ 𝘀𝗼𝗿𝘁=🇭🇰>🇸🇬>🇯🇵>🇺🇸 , 靠前排序
|
||||
❖ 𝘀𝗼𝗿𝘁=IEPL<IPLC<BGP , 靠后排序
|
||||
❖ 关键词不限于节点名, 可以是节点信息的任意参数
|
||||
⦿ ⟦进阶参数⟧: 𝘀𝗳𝗶𝗹𝘁𝗲𝗿/𝘀𝗿𝗲𝗻𝗮𝗺𝗲, 传入一段 base64 编码的脚本, 可用于过滤/重命名订阅节点
|
||||
❖ 说明: https://github.com/KOP-XIAO/QuantumultX/pull/9
|
||||
|
||||
@@ -1128,8 +1130,10 @@ function QXSort(content, para) {
|
||||
return nlist.sort(ToTagR)
|
||||
} else if(para == "x") {
|
||||
return shuffle(nlist)
|
||||
} else {
|
||||
} else if(para == "0") {
|
||||
return nlist
|
||||
} else {
|
||||
return Sort_KWD (nlist,para) //关键词排序
|
||||
}
|
||||
}
|
||||
//正序
|
||||
@@ -1158,6 +1162,43 @@ function shuffle(arr) {
|
||||
return input;
|
||||
}
|
||||
|
||||
//根据指定规则排序
|
||||
function Sort_KWD (cnt,strs) {
|
||||
strlist = strs.indexOf("<") != -1 ? strs.split("<"):strs.split(">")
|
||||
regj = strlist.map(item => RegExp(item, "i"))
|
||||
dir = strs.indexOf("<") != -1 ? -1:1
|
||||
var arr = new Array(strlist.length+1); //表格有n行
|
||||
for(var i = 0;i < arr.length; i++){
|
||||
arr[i] = []; //每行有列
|
||||
}
|
||||
for (var i =0; i<cnt.length ; i++) {
|
||||
flag = 0
|
||||
for (var j=0; j<strlist.length ; j++){
|
||||
if(regj[j].test(cnt[i])) {
|
||||
arr[j].push(cnt[i])
|
||||
flag = 1
|
||||
break
|
||||
}
|
||||
}
|
||||
if (flag != 1){
|
||||
arr[strlist.length].push(cnt[i]) } // 不匹配项
|
||||
}
|
||||
//console.log(arr)
|
||||
newarr = MixArr(arr,dir)
|
||||
return newarr
|
||||
}
|
||||
|
||||
function MixArr(cnt,dir){
|
||||
var cnt0=[]
|
||||
for (i=0; i<cnt.length-1; i++){
|
||||
//console.log(dir)
|
||||
cnt0 = dir ==1? cnt0.concat(cnt[i]):cnt0.concat(cnt[cnt.length-2-i])
|
||||
}
|
||||
cnt0 = dir ==1? cnt0.concat(cnt[cnt.length-1].sort(ToTag)):(cnt[cnt.length-1].sort(ToTagR)).concat(cnt0)
|
||||
return cnt0
|
||||
}
|
||||
|
||||
|
||||
//正则删除节点名内的字符
|
||||
function DelReg(content) {
|
||||
delreg = RegExp(delreg, "gmi")
|
||||
|
||||
Reference in New Issue
Block a user