更新资源解析器,现在可以使用节点类型进行过滤和重命名了

同时优化了脚本的通知以及脚本错误时的处理
This commit is contained in:
Peng-YM
2020-07-16 17:39:54 +08:00
parent af4d4a4048
commit f8133520aa

View File

@@ -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
} }
} }