♻️ refactor(substore): 重构节点重命名脚本以支持更稳定的线路标识过滤与地区归并
This commit is contained in:
+20
-1
@@ -716,6 +716,25 @@ function operator(proxies) {
|
||||
.trim();
|
||||
};
|
||||
|
||||
const withInferredRegionSequence = sequenceInfo => {
|
||||
const featureSequenceMatch = sequenceInfo.rest.match(/^\s+(专属|家宽|AI|高速|专线)\s+(\d{1,2})(?!\d)(?!\s*(?:[xX倍]|\.\d))(.*)$/i);
|
||||
if (!featureSequenceMatch) return withRegionSequence(sequenceInfo, '01');
|
||||
|
||||
const featureName = featureSequenceMatch[1].toUpperCase() === 'AI'
|
||||
? 'AI'
|
||||
: featureSequenceMatch[1];
|
||||
const inferredSequence = featureSequenceMatch[2].padStart(2, '0');
|
||||
const remainingRest = featureSequenceMatch[3] || '';
|
||||
|
||||
return withRegionSequence(
|
||||
{
|
||||
...sequenceInfo,
|
||||
rest: ` ${featureName}${remainingRest}`
|
||||
},
|
||||
inferredSequence
|
||||
);
|
||||
};
|
||||
|
||||
const normalizeBilingualName = name => {
|
||||
const bilingualMatch = name.match(/^(.+?)\s*|\s*(.+)$/);
|
||||
if (!bilingualMatch) return name;
|
||||
@@ -802,7 +821,7 @@ function operator(proxies) {
|
||||
const sequenceInfo = sequenceInfos[proxyIndex];
|
||||
const needsLeadingSequence = sequenceInfo && !sequenceInfo.sequenceNumber;
|
||||
const coreName = needsLeadingSequence
|
||||
? withRegionSequence(sequenceInfo, '01')
|
||||
? withInferredRegionSequence(sequenceInfo)
|
||||
: normalizedCoreName;
|
||||
const baseName = subName ? `${coreName} - ${subName}` : coreName;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user