针对 telegram 机器人和脚本逻辑进行了重构: - 在 tg-bot.js 中新增 deleteCfg 函数,用于物理删除数据库配置并同步清除内存缓存,防止旧值误读。 - 在 sntp-rename.js 中提取了 normalizeKey 和 escapeRegex 工具函数,并改用数组展开运算符进行排序,提升了代码的健壮性和可读性。
Sub-Store SNTP Rename
sntp-rename.js 是一个 Sub-Store 节点处理脚本,用于根据节点名中的关键词自动注入线路属性标签。
作用
脚本会遍历传入的 proxies 数组,检查每个代理节点的 name 字段。命中关键词后,会把对应标签追加到节点名中:
- 如果节点名带有
- SNTP...后缀,标签会插入到- SNTP之前。 - 如果节点名没有该后缀,标签会追加到名称末尾。
- 如果已经包含同样标签,不会重复注入。
默认规则
| 命中关键词 | 注入标签 |
|---|---|
GTM 0.5x |
[三网] |
GTM |
[三网] |
S1 |
[广移] |
S2 |
[广电] |
S3 |
[广移] |
S4 |
[广联] |
BGP |
[cn2|5x] |
Anytls |
[直连] |
示例
输入:
香港 GTM 0.5x - SNTP 01
广州 S1 - SNTP 02
日本 BGP 01
普通节点 01
输出:
香港 GTM 0.5x [三网] - SNTP 01
广州 S1 [广移] - SNTP 02
日本 BGP 01 [cn2|5x]
普通节点 01
在 Sub-Store 中使用
- 打开 Sub-Store。
- 进入订阅或节点处理配置。
- 添加 JavaScript 脚本处理器。
- 粘贴 sntp-rename.js 内容。
- 保存并刷新订阅。
脚本暴露的入口函数为:
function operator(proxies) {
// ...
}
修改规则
只需要编辑脚本顶部的 featureMap:
const featureMap = {
"GTM 0.5x": "三网",
"GTM": "三网",
"S1": "广移",
"S2": "广电",
"S3": "广移",
"S4": "广联",
"BGP": "cn2|5x",
"Anytls": "直连"
};
新增规则示例:
"IEPL": "专线"
匹配逻辑
- 关键词匹配不区分大小写。
- 关键词会按长度从长到短生成正则,避免
GTM先抢走GTM 0.5x的匹配。 - 纯字母数字关键词会自动加单词边界,避免
S1错误匹配到US1。 - 映射时会忽略关键词中的空格,例如
GTM 0.5x与GTM0.5X会映射到同一个标签。
注意事项
- 该脚本只修改节点名称,不修改节点协议、地址、端口或其他连接参数。
- 如果节点命中多个关键词,只会按当前正则排序匹配第一个。
- 如需支持更多后缀位置,可修改脚本中的
suffixRegex。