From d3831d706176301c067f66e26f9745ae5f720590 Mon Sep 17 00:00:00 2001 From: Orion Date: Mon, 15 Jun 2026 00:14:51 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(core):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20iriscloud-rename=20=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 增强落地地区判定,新增对 JP 关键字的支持 * 引入 multiplierOf 逻辑,支持识别并保留节点倍率信息 * 扩展供应商识别列表,新增 SoftBank Home 和 iCable Home * 优化节点名称拼接结构,将倍率信息追加至名称末尾 * 同步更新 README 文档中的规则说明与示例输出 --- substore/README.md | 9 ++++++--- substore/iriscloud-rename.js | 17 ++++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/substore/README.md b/substore/README.md index f5988a2..2060085 100644 --- a/substore/README.md +++ b/substore/README.md @@ -30,7 +30,7 @@ https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260608 | `yuetong-rename.js` | YueTong 单订阅 | 去掉 `悦·`、`💎`,把 `AI解锁` 压成 `AI` | | `peiqian-rename.js` | PeiQian 单订阅 | 压短 `电信联通推荐`、`移动联通推荐`、`高速专线`、`hy2`、倍率和用途描述 | | `alphaair-rename.js` | Alpha Air 单订阅 | 去掉提供者/三网/家宽文案,普通节点保留地区,高级非倍率节点保留供应商,倍率节点保留倍率并连续编号 | -| `iriscloud-rename.js` | Iris Cloud 单订阅 | 按 `SG`、`TYO`、其余香港的专属规则重判落地地区,去掉 `SZ`、`HZ`、`[Edge]` 入口标签 | +| `iriscloud-rename.js` | Iris Cloud 单订阅 | 按 `SG`、`TYO`/`JP`、其余香港的专属规则重判落地地区,去掉 `SZ`、`HZ`、`[Edge]` 入口标签并保留倍率 | | `liangxin-rename.js` | LiangXin 单订阅 | 去掉 `高速`、`BGP`、`CMCU`、`CM`、`CU`、`CT` 等线路描述 | | `rename.js` | 整合订阅 | 统一国家/城市短码,移动国旗到首部,追加 `- _subName`,处理重名编号 | | `common.js` | 公共依赖 | 被各处理脚本远程加载,不需要单独配置为处理器 | @@ -123,10 +123,10 @@ https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260608 ## Iris Cloud 规则 -`iriscloud-rename.js` 建议挂在 Iris Cloud 单条订阅里使用。Iris Cloud 的节点名里 `HK` 可能只是入口或线路名,脚本会按落地关键词重新判断地区: +`iriscloud-rename.js` 建议挂在 Iris Cloud 单条订阅里使用。Iris Cloud 的节点名里 `HK` 可能只是入口或线路名,脚本会按落地关键词重新判断地区,并保留 `0.5x`、`2.69x` 这类倍率: - 名称包含 `SG`:新加坡节点。 -- 名称包含 `TYO`:日本东京节点。 +- 名称包含 `TYO` 或 `JP`:日本节点。 - 其余节点:香港节点。 ```text @@ -138,6 +138,9 @@ https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260608 🏴☠️ [Edge] iCable - Iris Cloud => 🇭🇰 HK 01 iCable + +🇭🇰 HK DMIT | 2.69x | HZBGP Aliyun +=> 🇭🇰 HK 01 DMIT 2.69X ``` ## LiangXin 规则 diff --git a/substore/iriscloud-rename.js b/substore/iriscloud-rename.js index 7e6b77b..20bc96b 100644 --- a/substore/iriscloud-rename.js +++ b/substore/iriscloud-rename.js @@ -1,8 +1,8 @@ /** * Iris Cloud 专用节点清理脚本 * - Iris Cloud 名称里 HK 是入口/线路名的一部分,落地以尾部 SG、TYO、HKG 等标识为准 - * - 包含 SG 的节点归新加坡,包含 TYO 的节点归日本东京,其余默认香港 - * - 去掉 SZ/HZ/[Edge] 入口标签,保留 DMIT、DataCamp、iCable、SG.GS 等供应商特征 + * - 包含 SG 的节点归新加坡,包含 TYO/JP 的节点归日本,其余默认香港 + * - 去掉 SZ/HZ/[Edge] 入口标签,保留 DMIT、DataCamp、iCable、SoftBank、SG.GS 等供应商特征和倍率 */ // noinspection JSUnusedGlobalSymbols const COMMON_SCRIPT_VERSION = '20260608-1'; @@ -37,10 +37,14 @@ async function operator(proxies) { const landingPrefixOf = name => { if (/(?:^|[-\s])SG(?:$|[-\s.])/i.test(name)) return 'SG'; if (/(?:^|[-\s])TYO(?:$|[-\s])/i.test(name)) return 'JP TYO'; + if (/(?:^|[-\s])JP(?:$|[-\s])/i.test(name)) return 'JP'; + if (/(?:^|[-\s])HK(?:$|[-\s])/i.test(name)) return 'HK'; return 'HK'; }; const providerOf = name => { + if (/SoftBank\s+Home/i.test(name)) return 'SoftBank Home'; + if (/iCable\s+Home/i.test(name)) return 'iCable Home'; if (/DataCamp/i.test(name)) return 'DataCamp'; if (/iCable/i.test(name)) return 'iCable'; if (/SG\.GS/i.test(name)) return 'SG.GS'; @@ -48,6 +52,11 @@ async function operator(proxies) { return ''; }; + const multiplierOf = name => { + const match = name.match(/\b(\d+(?:\.\d+)?)(?:\s*[xX]|倍)\b/i); + return match ? `${match[1]}X` : ''; + }; + const cleanCoreName = name => { const { text } = utils.splitLeadingOrInlineFlag(name); return text @@ -77,6 +86,7 @@ async function operator(proxies) { regionPrefix, regionCode, provider: providerOf(coreName), + multiplier: multiplierOf(coreName), flag: utils.regionCodeToFlag(regionCode) }; }); @@ -108,7 +118,8 @@ async function operator(proxies) { item.flag, item.regionPrefix, String(regionCount[item.regionPrefix]).padStart(2, '0'), - item.provider + item.provider, + item.multiplier ].filter(Boolean).join(' ').trim(); return item.proxy; });