fix: to tudor

This commit is contained in:
Brennan Wilkes (Text Groove) 2026-01-31 14:42:00 -08:00
parent 8b17d94516
commit 1e2bef8e6b
3 changed files with 79 additions and 1 deletions

View file

@ -156,7 +156,6 @@ const PRODUCTS_QUERY = `
$isStaffPick: Boolean,
$pageCursor: String,
$pageLimit: Int,
$pointsMin: Int,
$priceMin: Float,
$priceMax: Float,
$quantityMin: Float,

39
tools/dedupe_skulinks.js Normal file
View file

@ -0,0 +1,39 @@
#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const DB_DIR = path.join(__dirname, "data/db");
const LINKS_FILE = path.join(__dirname, "data/sku_links.json");
// collect all valid SKUs from db files
const validSkus = new Set();
for (const file of fs.readdirSync(DB_DIR)) {
if (!file.endsWith(".json")) continue;
const data = JSON.parse(fs.readFileSync(path.join(DB_DIR, file), "utf8"));
if (!Array.isArray(data.items)) continue;
for (const item of data.items) {
if (item.sku) validSkus.add(String(item.sku));
}
}
// load links
const linksData = JSON.parse(fs.readFileSync(LINKS_FILE, "utf8"));
const originalCount = linksData.links.length;
// keep only links where BOTH skus exist
linksData.links = linksData.links.filter(
({ fromSku, toSku }) =>
validSkus.has(String(fromSku)) && validSkus.has(String(toSku))
);
// write back in place
fs.writeFileSync(
LINKS_FILE,
JSON.stringify(linksData, null, 2) + "\n"
);
console.log(
`Pruned ${originalCount - linksData.links.length} invalid links`
);

View file

@ -0,0 +1,40 @@
#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
const DB_DIR = path.join(__dirname, "data/db");
const LINKS_FILE = path.join(__dirname, "data/sku_links.json");
const includeKegNCork = process.argv.includes("--include-kegncork");
const includeLinked = process.argv.includes("--include-linked");
// load linked SKUs
const linkedSkus = new Set();
if (!includeLinked && fs.existsSync(LINKS_FILE)) {
const { links } = JSON.parse(fs.readFileSync(LINKS_FILE, "utf8"));
for (const { fromSku, toSku } of links) {
linkedSkus.add(String(fromSku));
linkedSkus.add(String(toSku));
}
}
for (const file of fs.readdirSync(DB_DIR)) {
if (!file.endsWith(".json")) continue;
if (!includeKegNCork && file.startsWith("kegncork__")) continue;
const data = JSON.parse(fs.readFileSync(path.join(DB_DIR, file), "utf8"));
if (!Array.isArray(data.items)) continue;
for (const { sku, url } of data.items) {
if (
typeof sku === "string" &&
sku.startsWith("u:") &&
url &&
(includeLinked || !linkedSkus.has(String(sku)))
) {
console.log(url);
}
}
}