feat(core): ✨ 新增 Sub-Store 节点命名处理系统
本次变更引入了一套完整的节点自动化重命名方案,旨在提升 Sub-Store 订阅管理的标准化程度: 1. 新增三个机场专属处理脚本:peiqian-rename.js、yuetong-rename.js 及整合版 rename.js,用于精简节点名称和统一格式。 2. 优化 sntp-rename.js:增加了 CT(CF) 和 D(直连) 等线路特征识别。 3. 更新 README.md:详细说明了脚本的链式调用顺序与各自职责。 4. 核心逻辑改进:支持国家/城市短码转换、国旗位置归位及防重复注入机制。
This commit is contained in:
+80
-59
@@ -1,23 +1,37 @@
|
||||
# 守候网络节点命名脚本
|
||||
# Sub-Store 节点命名脚本
|
||||
|
||||
`sntp-rename.js` 是一个专用于守候网络节点命名的 Sub-Store 处理脚本。它会根据节点名称中的线路关键词,自动注入统一的线路标签,让节点列表更容易筛选、分组和识别。
|
||||
这个目录放的是一组 Sub-Store 节点处理脚本。推荐把“单订阅专属规则”和“整合订阅全局规则”分开使用,避免一个机场的关键词误伤其他机场。
|
||||
|
||||
## 功能
|
||||
## 推荐使用顺序
|
||||
|
||||
脚本会遍历传入的 `proxies` 数组,检查每个代理节点的 `name` 字段。命中关键词后,会把对应标签追加到节点名中:
|
||||
单订阅脚本先跑,整合订阅最后跑:
|
||||
|
||||
- 如果节点名带有 `- SNTP...` 后缀,标签会插入到 `- SNTP` 之前。
|
||||
- 如果节点名没有该后缀,标签会追加到名称末尾。
|
||||
- 如果已经包含同样标签,不会重复注入。
|
||||
1. `sntp-rename.js`:只给 SNTP 节点注入线路标签。
|
||||
2. `yuetong-rename.js`:只清理 YueTong 的品牌前缀和装饰符号。
|
||||
3. `peiqian-rename.js`:只清理 PeiQian 的推荐/用途描述。
|
||||
4. `rename.js`:整合订阅最终重命名,负责国家短码、国旗归位、订阅后缀和去重。
|
||||
|
||||
脚本只处理节点名称,不会修改协议、地址、端口或其他连接参数。
|
||||
如果某个订阅没有对应的专属脚本,直接进入最后的 `rename.js` 即可。
|
||||
|
||||
## 默认规则
|
||||
## 脚本职责
|
||||
|
||||
| 脚本 | 建议配置位置 | 作用 |
|
||||
| --- | --- | --- |
|
||||
| `sntp-rename.js` | SNTP 单订阅 | 注入 `[三网]`、`[CF]`、`[直连]`、`[cn2]` 等线路标签 |
|
||||
| `yuetong-rename.js` | YueTong 单订阅 | 去掉 `悦·`、`💎`,把 `AI解锁` 压成 `AI` |
|
||||
| `peiqian-rename.js` | PeiQian 单订阅 | 压短 `电信联通推荐`、`移动联通推荐`、`高速专线`、`hy2`、倍率和用途描述 |
|
||||
| `rename.js` | 整合订阅 | 统一国家/城市短码,移动国旗到首部,追加 `- _subName`,处理重名编号 |
|
||||
|
||||
## SNTP 规则
|
||||
|
||||
`sntp-rename.js` 只建议用于 SNTP。像 `BGP`、`D`、`CT` 这类关键词比较短,全局使用容易误伤其他订阅。
|
||||
|
||||
| 命中关键词 | 注入标签 |
|
||||
| --- | --- |
|
||||
| `GTM 0.5x` | `[三网]` |
|
||||
| `GTM` | `[三网]` |
|
||||
| `CT` | `[CF]` |
|
||||
| `D` | `[直连]` |
|
||||
| `S1` | `[广移]` |
|
||||
| `S2` | `[广电]` |
|
||||
| `S3` | `[广移]` |
|
||||
@@ -25,75 +39,82 @@
|
||||
| `BGP` | `[cn2]` |
|
||||
| `Anytls` | `[直连]` |
|
||||
|
||||
## 示例
|
||||
|
||||
输入:
|
||||
示例:
|
||||
|
||||
```text
|
||||
香港 GTM 0.5x - SNTP 01
|
||||
广州 S1 - SNTP 02
|
||||
日本 BGP 01
|
||||
深圳 Anytls - SNTP 03
|
||||
普通节点 01
|
||||
🇭🇰 HK-CT-1 0.2x - SNTP
|
||||
=> 🇭🇰 HK-CT-1 0.2x [CF] - SNTP
|
||||
|
||||
🇯🇵 JP-D-1-0.2x - SNTP
|
||||
=> 🇯🇵 JP-D-1-0.2x [直连] - SNTP
|
||||
```
|
||||
|
||||
输出:
|
||||
## YueTong 规则
|
||||
|
||||
`yuetong-rename.js` 只处理 `_subName === 'YueTong'`:
|
||||
|
||||
```text
|
||||
香港 GTM 0.5x [三网] - SNTP 01
|
||||
广州 S1 [广移] - SNTP 02
|
||||
日本 BGP 01 [cn2]
|
||||
深圳 Anytls [直连] - SNTP 03
|
||||
普通节点 01
|
||||
🇯🇵 悦·日本专属2💎 - YueTong
|
||||
=> 🇯🇵 日本专属2 - YueTong
|
||||
```
|
||||
|
||||
## 在 Sub-Store 中使用
|
||||
再经过 `rename.js` 后:
|
||||
|
||||
1. 打开 Sub-Store。
|
||||
2. 进入订阅或节点处理配置。
|
||||
3. 添加 JavaScript 脚本处理器。
|
||||
4. 粘贴 [sntp-rename.js](sntp-rename.js) 内容。
|
||||
5. 保存并刷新订阅。
|
||||
|
||||
脚本暴露的入口函数为:
|
||||
|
||||
```javascript
|
||||
function operator(proxies) {
|
||||
// ...
|
||||
}
|
||||
```text
|
||||
🇯🇵 日本专属2 - YueTong
|
||||
=> 🇯🇵 JP 专属 2 - YueTong
|
||||
```
|
||||
|
||||
## 修改规则
|
||||
## PeiQian 规则
|
||||
|
||||
只需要编辑脚本顶部的 `featureMap`。左侧是节点名称中要识别的关键词,右侧是要注入的标签内容:
|
||||
`peiqian-rename.js` 只处理 `_subName === 'PeiQian'`:
|
||||
|
||||
```javascript
|
||||
const featureMap = {
|
||||
"GTM 0.5x": "三网",
|
||||
"GTM": "三网",
|
||||
"S1": "广移",
|
||||
"S2": "广电",
|
||||
"S3": "广移",
|
||||
"S4": "广联",
|
||||
"BGP": "cn2",
|
||||
"Anytls": "直连"
|
||||
};
|
||||
```text
|
||||
🇯🇵 日本东京03-0.1倍 | 电信联通推荐 - PeiQian
|
||||
=> 🇯🇵 日本东京03 0.1x [电联] - PeiQian
|
||||
|
||||
🇺🇸 美国01 | 合适下载使用-0.01倍 - PeiQian
|
||||
=> 🇺🇸 美国01 0.01x - PeiQian
|
||||
|
||||
🇼🇸 台湾 | 避免晚高峰使用 - PeiQian
|
||||
=> 🇼🇸 台湾 - PeiQian
|
||||
```
|
||||
|
||||
新增规则示例:
|
||||
再经过 `rename.js` 后会变成:
|
||||
|
||||
```javascript
|
||||
"IEPL": "专线"
|
||||
```text
|
||||
🇯🇵 JP TYO 03 0.1x [电联] - PeiQian
|
||||
🇺🇸 US 01 0.01x - PeiQian
|
||||
🇼🇸 TW - PeiQian
|
||||
```
|
||||
|
||||
## 匹配逻辑
|
||||
## 全局重命名
|
||||
|
||||
- 关键词匹配不区分大小写。
|
||||
- 关键词会按长度从长到短生成正则,避免 `GTM` 先抢走 `GTM 0.5x` 的匹配。
|
||||
- 纯字母数字关键词会自动加单词边界,避免 `S1` 错误匹配到 `US1`。
|
||||
- 映射时会忽略关键词中的空格,例如 `GTM 0.5x` 与 `GTM0.5X` 会映射到同一个标签。
|
||||
`rename.js` 适合放在整合订阅最后。它做的事情更通用:
|
||||
|
||||
- 国家/地区中文名、英文名转短码,例如 `香港` -> `HK`、`Japan` -> `JP`。
|
||||
- 常见城市转短码,例如 `Los Angeles` -> `LA`、`Seattle` -> `SEA`、`东京` -> `TYO`。
|
||||
- 支持国旗在中间的节点名,例如 `Pro-🇭🇰 Sharon|守夜人` -> `🇭🇰 HK Pro-Sharon|守夜人`。
|
||||
- 清理 `[DIP China-Hongkong]` 为 `[DIP]`。
|
||||
- 清理 `IEPL 专线` 这类冗余描述。
|
||||
- 追加订阅后缀 `- _subName`。
|
||||
- 对最终重名节点追加两位编号。
|
||||
|
||||
示例:
|
||||
|
||||
```text
|
||||
🇭🇰 Hong Kong 01 [DIP China-Hongkong] - Nexitally
|
||||
=> 🇭🇰 HK 01 [DIP] - Nexitally
|
||||
|
||||
🇭🇰 香港实验性 IEPL 专线 1 - Alpha Flower
|
||||
=> 🇭🇰 HK 实验性 1 - Alpha Flower
|
||||
|
||||
Pro-🇭🇰 Sharon|守夜人 - Alpha 8K Snell
|
||||
=> 🇭🇰 HK Pro-Sharon|守夜人 - Alpha 8K Snell
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 如果节点命中多个关键词,只会按当前正则排序匹配第一个。
|
||||
- 如需支持更多后缀位置,可修改脚本中的 `suffixRegex`。
|
||||
- 专属脚本都带 `_subName` 判断,放错位置通常也不会处理其他订阅。
|
||||
- `rename.js` 会剥离并重新追加 `- _subName`,重复运行不会叠加订阅后缀。
|
||||
- 如果新增订阅里出现很短、很泛的关键词,例如 `D`、`CT`、`BGP`、`S1`,优先拆成单订阅脚本,不建议放进全局 `rename.js`。
|
||||
|
||||
Reference in New Issue
Block a user