From 4f5d7c13209555a114761f5027299f3ba1b42217 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 08 Jun 2026 13:27:09 +0800
Subject: [PATCH] Release 7.8.22 Apple default app catalog
---
Research/SmartStart/Scripts/build-ultimate-default-catalog.mjs | 58 ++++++++++++----------------------------------------------
1 files changed, 12 insertions(+), 46 deletions(-)
diff --git a/Research/SmartStart/Scripts/build-ultimate-default-catalog.mjs b/Research/SmartStart/Scripts/build-ultimate-default-catalog.mjs
index c8d46de..dba1b6b 100644
--- a/Research/SmartStart/Scripts/build-ultimate-default-catalog.mjs
+++ b/Research/SmartStart/Scripts/build-ultimate-default-catalog.mjs
@@ -13,7 +13,6 @@
const sources = {
curatedCatalog: path.join(outputDir, "SmartStart_UltimateDefaultCatalog.csv"),
- appleNotes: path.join(projectDir, "Apptag", "AppleDefaultAppNotes.swift"),
localizationDir: path.join(projectDir, "Apptag", "Localization"),
};
@@ -714,35 +713,6 @@
};
}
-function parseAppleNotes() {
- if (!fs.existsSync(sources.appleNotes)) {
- return { byBundle: new Map(), byName: new Map() };
- }
-
- const swift = fs.readFileSync(sources.appleNotes, "utf8");
- const byBundle = new Map();
- const byName = new Map();
- const entryPattern = /"([^"]+)"\s*:\s*"([^"]+)"/g;
- let currentSection = null;
-
- for (const line of swift.split("\n")) {
- if (line.includes("private static let byBundleID")) currentSection = "bundle";
- if (line.includes("private static let byName")) currentSection = "name";
- if (line.includes("static func note")) currentSection = null;
-
- let match;
- while ((match = entryPattern.exec(line)) !== null) {
- if (currentSection === "bundle") {
- byBundle.set(match[1].toLowerCase(), match[2]);
- } else if (currentSection === "name") {
- byName.set(match[1], match[2]);
- }
- }
- }
-
- return { byBundle, byName };
-}
-
function rawEntry({
source,
name,
@@ -867,19 +837,27 @@
throw new Error(`required fallback language is missing from Localization: ${language}`);
}
}
- const appleNotes = parseAppleNotes();
const previousRuntimeEntries = fs.existsSync(outputs.runtimeJSON)
? new Map(
(JSON.parse(fs.readFileSync(outputs.runtimeJSON, "utf8")).entries ?? []).map((entry) => [entry.normalizedName, entry]),
)
: new Map();
const rawCuratedRows = readCSVObjects(sources.curatedCatalog);
+ const appleRows = rawCuratedRows.filter((row) => {
+ const bundleIdentifier = normalizeBundle(row.bundleIdentifier);
+ return bundleIdentifier?.toLowerCase().startsWith("com.apple.");
+ });
+ if (appleRows.length > 0) {
+ throw new Error(
+ `SmartStart curated catalog contains ${appleRows.length} Apple rows. ` +
+ "Move Apple default apps to Research/AppleDefaultApps before rebuilding.",
+ );
+ }
const unknownTagerTokens = new Set();
const stats = {
curatedRows: rawCuratedRows.length,
aliasDuplicatesRemoved: 0,
rowsWithSourceNotes: 0,
- appleNotesAttached: 0,
tagChangedVsPrevious: 0,
zhNoteChangedVsPrevious: 0,
bundleChangedVsPrevious: 0,
@@ -894,16 +872,7 @@
for (const token of mapping.unknownTokens) unknownTagerTokens.add(token);
let noteZH = truncateNote(row["defaultNote-ZH"]);
- let usedAppleFallback = false;
- if (!noteZH) {
- const bundleNote = bundleIdentifier ? appleNotes.byBundle.get(bundleIdentifier.toLowerCase()) : null;
- const nameNote = appleNotes.byName.get(name);
- if (bundleNote || nameNote) {
- noteZH = truncateNote(bundleNote ?? nameNote);
- usedAppleFallback = true;
- stats.appleNotesAttached += 1;
- }
- } else {
+ if (noteZH) {
stats.rowsWithSourceNotes += 1;
}
@@ -927,9 +896,7 @@
bundleIdentifier,
tags: mapping.tags,
noteZH,
- sourceEvidence: usedAppleFallback
- ? ["curated_tager_catalog", "apple_default_notes"]
- : ["curated_tager_catalog"],
+ sourceEvidence: ["curated_tager_catalog"],
};
});
@@ -1084,7 +1051,6 @@
- Final rows: ${finalRows.length}
- Rows with Chinese default notes: ${noteRows.length}
- Rows with source Chinese notes from curated CSV: ${stats.rowsWithSourceNotes}
-- Rows with Apple note fallback attached: ${stats.appleNotesAttached}
- Supported languages: ${supportedLanguages.length}
- Unique source notes: ${uniqueSourceNotes.length}
- Expected localized notes: ${noteRows.length * supportedLanguages.length}
--
Gitblit v1.9.3