From 51488a5ec20bf592cb4a362277f2a3b9c0954639 Mon Sep 17 00:00:00 2001 From: Orion Date: Wed, 3 Jun 2026 11:18:28 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(substore):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8A=82=E7=82=B9=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E8=A7=84=E5=88=99=E5=B9=B6=E8=A7=84=E8=8C=83=E5=8C=96=E5=9C=B0?= =?UTF-8?q?=E5=8C=BA=E5=BA=8F=E5=88=97=E5=8F=B7=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- substore/peiqian-rename.js | 16 +++++----------- substore/rename.js | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/substore/peiqian-rename.js b/substore/peiqian-rename.js index 13eed79..fa0d33b 100644 --- a/substore/peiqian-rename.js +++ b/substore/peiqian-rename.js @@ -1,6 +1,6 @@ /** * PeiQian 专用节点清理脚本 - * 负责清理推荐、用途、hy2、倍率等 PeiQian 节点文案。 + * 负责清理推荐、用途、hy2、倍率、线路特征和提供商等 PeiQian 节点文案。 */ // noinspection JSUnusedGlobalSymbols function operator(proxies) { @@ -10,21 +10,15 @@ function operator(proxies) { } proxy.name = proxy.name - .replace(/^AWS\s*新加坡\s*/i, '新加坡 AWS ') + .replace(/AWS\s*新加坡\s*/gi, '') .replace(/\s*\|\s*合适下载使用\s*-\s*(\d+(?:\.\d+)?)倍/gi, ' $1x') .replace(/\s*\|\s*合适下载使用/gi, '') .replace(/\s*\|\s*避免晚高峰使用/gi, '') - .replace(/\s*\|\s*电信联通移动推荐\s*-\s*hy2/gi, ' [三网 HY2]') - .replace(/\s*\|\s*电信联通移动推荐/gi, ' [三网]') - .replace(/\s*\|\s*电信联通推荐\s*-\s*hy2/gi, ' [电联 HY2]') - .replace(/\s*\|\s*电信联通推荐/gi, ' [电联]') - .replace(/\s*\|\s*移动联通推荐\s*-\s*hy2/gi, ' [移联 HY2]') - .replace(/\s*\|\s*移动联通推荐/gi, ' [移联]') - .replace(/\s*\|\s*高速专线(?:推荐)?\s*-\s*hy2/gi, ' [HY2]') - .replace(/\s*\|\s*高速专线推荐/gi, ' [专线]') - .replace(/\s*\|\s*三网推荐/gi, ' [三网]') + .replace(/\s*\|\s*(?:电信联通移动|电信联通|移动联通|三网)推荐(?:\s*-\s*hy2)?/gi, '') + .replace(/\s*\|\s*高速专线(?:推荐)?(?:\s*-\s*hy2)?/gi, '') .replace(/-\s*(\d+(?:\.\d+)?)倍/gi, ' $1x') .replace(/(\d+(?:\.\d+)?)倍/gi, '$1x') + .replace(/\s*\[(?:专线|移联|电联|三网|HY2)(?:\s+(?:专线|移联|电联|三网|HY2))*\]/gi, '') .replace(/\s+\[/g, ' [') .replace(/\s{2,}/g, ' ') .trim(); diff --git a/substore/rename.js b/substore/rename.js index d0bb451..eca38c9 100644 --- a/substore/rename.js +++ b/substore/rename.js @@ -676,6 +676,19 @@ function operator(proxies) { return `${nameWithoutMultiplier} ${multipliers.join(' ')}`.trim(); }; + const normalizeRegionSequence = name => name + .replace(/(^|\s)([A-Z]{2}(?:\s+[A-Z]{3})?)[\s|\-]*(\d{1,2})(?=$|[\s|\-[\]])/g, ( + match, + prefix, + regionCode, + sequenceNumber + ) => { + return `${prefix}${regionCode} ${sequenceNumber.padStart(2, '0')}`; + }) + .replace(/(\b[A-Z]{2}(?:\s+[A-Z]{3})? \d{2})-\s*(?=\d+(?:\.\d+)?X\b)/g, '$1 ') + .replace(/\s{2,}/g, ' ') + .trim(); + const normalizeBilingualName = name => { const bilingualMatch = name.match(/^(.+?)\s*|\s*(.+)$/); if (!bilingualMatch) return name; @@ -740,7 +753,7 @@ function operator(proxies) { core = joinAlias(flagRegionCode, core); } - core = moveMultiplierToEnd(simplifyCoreName(core)); + core = normalizeRegionSequence(moveMultiplierToEnd(simplifyCoreName(core))); return flag ? `${flag} ${core}` : core; };