mirror of
https://github.com/KOP-XIAO/QuantumultX.git
synced 2026-01-25 21:25:09 +00:00
更新资源解析器,现在可以使用节点类型进行过滤和重命名了
同时优化了脚本的通知以及脚本错误时的处理
This commit is contained in:
@@ -932,18 +932,22 @@ function Filter(servers, Pin, Pout) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function FilterScript(servers, script) {
|
function FilterScript(servers, script) {
|
||||||
|
$notify("🤖 启用脚本进行筛选", "", script);
|
||||||
|
try {
|
||||||
const $ = Tools();
|
const $ = Tools();
|
||||||
eval(script);
|
eval(script);
|
||||||
// extract server tags
|
// extract server tags
|
||||||
const nodes = {
|
const nodes = Tools().getNodeInfo(servers);
|
||||||
names: servers.map(s => s.split("tag=")[1])
|
|
||||||
};
|
|
||||||
const IN = filter(nodes);
|
const IN = filter(nodes);
|
||||||
const res = servers.filter((_, i) => IN[i]);
|
const res = servers.filter((_, i) => IN[i]);
|
||||||
if (res.length === 0) {
|
if (res.length === 0) {
|
||||||
$notify("‼️ ⟦" + subtag + "⟧" + "筛选后节点数为0️⃣", "⚠️ 请自行检查原始链接以及筛选参数", link0, sub_link);
|
$notify("‼️ ⟦" + subtag + "⟧" + "筛选后节点数为0️⃣", "⚠️ 请自行检查原始链接以及筛选参数", link0, sub_link);
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
|
} catch (err) {
|
||||||
|
$notify("❌ 脚本筛选出现错误", "", err);
|
||||||
|
return servers;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//SSR 类型 URI 转换 quanx 格式
|
//SSR 类型 URI 转换 quanx 格式
|
||||||
@@ -1149,15 +1153,20 @@ function Rename(str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function RenameScript(servers, script) {
|
function RenameScript(servers, script) {
|
||||||
|
$notify("🤖 启用脚本进行重命名", "", script);
|
||||||
|
try {
|
||||||
const $ = Tools().rename;
|
const $ = Tools().rename;
|
||||||
// extract server tags
|
// extract server tags
|
||||||
const nodes = {
|
const nodes = Tools().getNodeInfo(servers);
|
||||||
names: servers.map(s => s.split("tag=")[1])
|
|
||||||
}
|
|
||||||
eval(script);
|
eval(script);
|
||||||
const newNames = rename(nodes);
|
const newNames = rename(nodes);
|
||||||
// rename nodes
|
// rename nodes
|
||||||
return servers.map((s, i) => s.split("tag=")[0] + "tag=" + newNames[i]);
|
return servers.map((s, i) => s.split("tag=")[0] + "tag=" + newNames[i]);
|
||||||
|
} catch (err) {
|
||||||
|
$notify("❌ 脚本重命名出现错误", "", err);
|
||||||
|
return servers;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//删除 emoji
|
//删除 emoji
|
||||||
@@ -1565,8 +1574,20 @@ function Tools() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getNodeInfo = servers => {
|
||||||
|
const nodes = {
|
||||||
|
names: servers.map(s => s.split("tag=")[1]),
|
||||||
|
types: servers.map(s => {
|
||||||
|
const type = s.match(/^(vmess|trojan|shadowsocks|http)=/);
|
||||||
|
return type ? type[1] : 'unknown';
|
||||||
|
})
|
||||||
|
};
|
||||||
|
return nodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
filter, rename
|
filter, rename, getNodeInfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user