Files
script/substore/peiqian-rename.js
orion 7a62f839f1 refactor(substore): 将通用工具函数迁移至公共库
- 从各个重命名脚本中移除重复的工具函数实现
- 将 multiplierOf、multiplierValueOf、stripSubscriptionSuffix 等函数统一到 common.js
- 使用 utils.multiplierOf、utils.multiplierValueOf 替代本地实现
- 引入 utils.createSequenceCounter 替代手动计数逻辑
- 更新版本号从 20260608-1 到 20260702-1
- 移除重复的正则表达式匹配逻辑
- 标准化序列计数器实现方式
- 优化 yinyun-rename.js 中的信息节点过滤逻辑
2026-07-02 23:40:05 +08:00

56 lines
2.2 KiB
JavaScript

/**
* PeiQian 专用节点清理脚本
* 负责清理推荐、用途、hy2、倍率、线路特征和提供商等 PeiQian 节点文案。
*/
// noinspection JSUnusedGlobalSymbols
const COMMON_SCRIPT_VERSION = '20260702-1';
const COMMON_SCRIPT_URL = `https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=${COMMON_SCRIPT_VERSION}`;
const hasCurrentRenameUtils = utils => Boolean(
utils && utils.version === COMMON_SCRIPT_VERSION
);
async function loadRenameUtils() {
if (typeof globalThis !== 'undefined' && hasCurrentRenameUtils(globalThis.SubStoreRenameUtils)) {
return globalThis.SubStoreRenameUtils;
}
const cache = typeof scriptResourceCache !== 'undefined' ? scriptResourceCache : null;
let script = cache && cache.get(COMMON_SCRIPT_URL);
if (!script) {
const response = await $substore.http.get({ url: COMMON_SCRIPT_URL });
script = response && (response.body || response.data || response);
if (cache) cache.set(COMMON_SCRIPT_URL, script);
}
new Function(String(script))();
if (!hasCurrentRenameUtils(globalThis.SubStoreRenameUtils)) {
throw new Error('Loaded common.js is missing current rename utilities');
}
return globalThis.SubStoreRenameUtils;
}
async function operator(proxies) {
const utils = await loadRenameUtils();
return proxies.map(proxy => {
if (typeof proxy.name !== 'string') {
return proxy;
}
proxy.name = proxy.name
.replace(/AWS\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, '')
.replace(/\s*\|\s*高速专线(?:推荐)?(?:\s*-\s*hy2)?/gi, '')
.replace(/\s*\[(?:专线|移联|电联|三网|HY2)(?:\s+(?:专线|移联|电联|三网|HY2))*\]/gi, '')
.replace(/\s+\[/g, ' [')
.replace(/\s{2,}/g, ' ');
proxy.name = utils.normalizeMultiplierText(proxy.name);
proxy.name = utils.normalizeLeadingFlagSpacing(proxy.name);
return proxy;
});
}