🐛 修复(substore): 避免特征尾号和 HY2 误判
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
`common.js` 是公共工具库,各处理脚本会按下面的 raw 地址自动加载:
|
`common.js` 是公共工具库,各处理脚本会按下面的 raw 地址自动加载:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5
|
https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6
|
||||||
```
|
```
|
||||||
|
|
||||||
## 推荐使用顺序
|
## 推荐使用顺序
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* - 不追加订阅后缀,整合订阅最后仍交给 rename.js 处理
|
* - 不追加订阅后缀,整合订阅最后仍交给 rename.js 处理
|
||||||
*/
|
*/
|
||||||
// noinspection JSUnusedGlobalSymbols
|
// noinspection JSUnusedGlobalSymbols
|
||||||
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5';
|
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6';
|
||||||
const hasCurrentRenameUtils = utils => Boolean(
|
const hasCurrentRenameUtils = utils => Boolean(
|
||||||
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
||||||
);
|
);
|
||||||
|
|||||||
+12
-2
@@ -2,7 +2,7 @@
|
|||||||
* Sub-Store 节点命名公共工具
|
* Sub-Store 节点命名公共工具
|
||||||
*
|
*
|
||||||
* 远程引用地址:
|
* 远程引用地址:
|
||||||
* https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5
|
* https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6
|
||||||
*/
|
*/
|
||||||
(function (root) {
|
(function (root) {
|
||||||
const regexSpecialChars = new Set(['.', '*', '+', '?', '^', '$', '{', '}', '(', ')', '|', '[', ']', '\\']);
|
const regexSpecialChars = new Set(['.', '*', '+', '?', '^', '$', '{', '}', '(', ')', '|', '[', ']', '\\']);
|
||||||
@@ -206,8 +206,18 @@
|
|||||||
match,
|
match,
|
||||||
prefix,
|
prefix,
|
||||||
regionCode,
|
regionCode,
|
||||||
sequenceNumber
|
sequenceNumber,
|
||||||
|
offset,
|
||||||
|
input
|
||||||
) => {
|
) => {
|
||||||
|
if (
|
||||||
|
prefix === ' ' &&
|
||||||
|
offset > 1 &&
|
||||||
|
/^[A-Z]{2}$/.test(input.slice(offset - 2, offset))
|
||||||
|
) {
|
||||||
|
return match;
|
||||||
|
}
|
||||||
|
|
||||||
return `${prefix}${regionCode} ${sequenceNumber.padStart(2, '0')}`;
|
return `${prefix}${regionCode} ${sequenceNumber.padStart(2, '0')}`;
|
||||||
})
|
})
|
||||||
.replace(new RegExp(`(\\b${regionPattern} \\d{2})-\\s*(?=\\d+(?:\\.\\d+)?X\\b)`, 'g'), '$1 ')
|
.replace(new RegExp(`(\\b${regionPattern} \\d{2})-\\s*(?=\\d+(?:\\.\\d+)?X\\b)`, 'g'), '$1 ')
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* 负责去掉高速、BGP、CMCU 等 LiangXin 线路描述,保留地区、序号和倍率。
|
* 负责去掉高速、BGP、CMCU 等 LiangXin 线路描述,保留地区、序号和倍率。
|
||||||
*/
|
*/
|
||||||
// noinspection JSUnusedGlobalSymbols
|
// noinspection JSUnusedGlobalSymbols
|
||||||
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5';
|
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6';
|
||||||
const hasCurrentRenameUtils = utils => Boolean(
|
const hasCurrentRenameUtils = utils => Boolean(
|
||||||
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* 负责清理推荐、用途、hy2、倍率、线路特征和提供商等 PeiQian 节点文案。
|
* 负责清理推荐、用途、hy2、倍率、线路特征和提供商等 PeiQian 节点文案。
|
||||||
*/
|
*/
|
||||||
// noinspection JSUnusedGlobalSymbols
|
// noinspection JSUnusedGlobalSymbols
|
||||||
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5';
|
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6';
|
||||||
const hasCurrentRenameUtils = utils => Boolean(
|
const hasCurrentRenameUtils = utils => Boolean(
|
||||||
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
||||||
);
|
);
|
||||||
|
|||||||
+9
-2
@@ -5,7 +5,7 @@
|
|||||||
* - 基于归一化后的完整名称做精准去重
|
* - 基于归一化后的完整名称做精准去重
|
||||||
*/
|
*/
|
||||||
// noinspection JSUnusedGlobalSymbols
|
// noinspection JSUnusedGlobalSymbols
|
||||||
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5';
|
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6';
|
||||||
const hasCurrentRenameUtils = utils => Boolean(
|
const hasCurrentRenameUtils = utils => Boolean(
|
||||||
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
||||||
);
|
);
|
||||||
@@ -674,6 +674,11 @@ async function operator(proxies) {
|
|||||||
|
|
||||||
const normalizeRegionSequence = name => utils.normalizeRegionSequence(name, { allowCityCode: true });
|
const normalizeRegionSequence = name => utils.normalizeRegionSequence(name, { allowCityCode: true });
|
||||||
|
|
||||||
|
const stripTrailingFeatureSequence = name => String(name)
|
||||||
|
.replace(/^([A-Z]{2}(?:\s+[A-Z]{3})?)\s+([A-Z][A-Z0-9.]{1,15})\s+\d{1,2}$/i, '$1 $2')
|
||||||
|
.replace(/\s{2,}/g, ' ')
|
||||||
|
.trim();
|
||||||
|
|
||||||
const regionSequenceOf = name => {
|
const regionSequenceOf = name => {
|
||||||
const sequenceMatch = name.match(/^((?:[\u{1F1E6}-\u{1F1FF}]{2}|🏴☠️)\s*)?([A-Z]{2}(?:\s+[A-Z]{3})?)(?:\s+(\d{2}))?(\s.*)?$/u);
|
const sequenceMatch = name.match(/^((?:[\u{1F1E6}-\u{1F1FF}]{2}|🏴☠️)\s*)?([A-Z]{2}(?:\s+[A-Z]{3})?)(?:\s+(\d{2}))?(\s.*)?$/u);
|
||||||
if (!sequenceMatch) return null;
|
if (!sequenceMatch) return null;
|
||||||
@@ -780,7 +785,9 @@ async function operator(proxies) {
|
|||||||
core = joinAlias(flagRegionCode, core);
|
core = joinAlias(flagRegionCode, core);
|
||||||
}
|
}
|
||||||
|
|
||||||
core = normalizeRegionSequence(normalizeHyphenatedRegionFeatures(moveMultiplierToEnd(simplifyCoreName(core))))
|
core = stripTrailingFeatureSequence(
|
||||||
|
normalizeRegionSequence(normalizeHyphenatedRegionFeatures(moveMultiplierToEnd(simplifyCoreName(core))))
|
||||||
|
)
|
||||||
.replace(/^([A-Z]{2}(?:\s+[A-Z]{3})?\s+\d{2}\s+(?:标准|高级))\s+1(?=$|\s)/i, '$1');
|
.replace(/^([A-Z]{2}(?:\s+[A-Z]{3})?\s+\d{2}\s+(?:标准|高级))\s+1(?=$|\s)/i, '$1');
|
||||||
|
|
||||||
const coreRegionCode = leadingCodeOf(core);
|
const coreRegionCode = leadingCodeOf(core);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* 维护说明:仅需修改 featureMap 字典即可,底部逻辑永远无需改动。
|
* 维护说明:仅需修改 featureMap 字典即可,底部逻辑永远无需改动。
|
||||||
*/
|
*/
|
||||||
// noinspection JSUnusedGlobalSymbols
|
// noinspection JSUnusedGlobalSymbols
|
||||||
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5';
|
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6';
|
||||||
const hasCurrentRenameUtils = utils => Boolean(
|
const hasCurrentRenameUtils = utils => Boolean(
|
||||||
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* 按地区稳定归并后重新连续编号,避免专属/普通节点撞号。
|
* 按地区稳定归并后重新连续编号,避免专属/普通节点撞号。
|
||||||
*/
|
*/
|
||||||
// noinspection JSUnusedGlobalSymbols
|
// noinspection JSUnusedGlobalSymbols
|
||||||
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-5';
|
const COMMON_SCRIPT_URL = 'https://git.orionc.me/orion/script/raw/branch/main/substore/common.js?v=20260603-6';
|
||||||
const hasCurrentRenameUtils = utils => Boolean(
|
const hasCurrentRenameUtils = utils => Boolean(
|
||||||
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
utils && typeof utils.normalizeLeadingMojibakeFlag === 'function'
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user