Normalize names for Waka, and log mismatches
By printing out this logging data, of item names we have that Waka doesn't, vs item names Waka has that we don't, I was able to solve a lot of them with new code in `normalizeItemName`! Here's the mismatches that are left at time of writing: ``` [Item: Y, Waka: N] No Waka value for NC DTI item "goldenlulumedallion" (43034) [Item: Y, Waka: N] No Waka value for NC DTI item "faelliebirthdaybagsurprise" (51350) [Item: Y, Waka: N] No Waka value for NC DTI item "neopets11thbirthdaycommemorativemysterycapsule" (53448) [Item: Y, Waka: N] No Waka value for NC DTI item "dyeworksblue:iscawig-blue" (70896) [Item: Y, Waka: N] No Waka value for NC DTI item "mysteriousdoorwithlocks" (75601) [Item: Y, Waka: N] No Waka value for NC DTI item "grapefruitnecklace" (77779) [Item: Y, Waka: N] No Waka value for NC DTI item "discofeverbackground" (79250) [Item: Y, Waka: N] No Waka value for NC DTI item "featherflaredshoes" (80047) [Item: Y, Waka: N] No Waka value for NC DTI item "dyeworksredradioactivemutantmarkings" (80441) [Item: N, Waka: Y] No NC DTI data for Waka item "7thbirthdaycakeslice#1" [Item: N, Waka: Y] No NC DTI data for Waka item "7thbirthdaycakeslice#2" [Item: N, Waka: Y] No NC DTI data for Waka item "7thbirthdaycakeslice#3" [Item: N, Waka: Y] No NC DTI data for Waka item "8thbirthdayrainbowcupcake" [Item: N, Waka: Y] No NC DTI data for Waka item "8thbirthdaysparklercupcake" [Item: N, Waka: Y] No NC DTI data for Waka item "8thbirthdaytiedwithabowcupcake" [Item: N, Waka: Y] No NC DTI data for Waka item "babyspringdress" [Item: N, Waka: Y] No NC DTI data for Waka item "butterflydress(fromfaeriefestivalevent)" [Item: N, Waka: Y] No NC DTI data for Waka item "discofever" [Item: N, Waka: Y] No NC DTI data for Waka item "dyeworksblue:iscawig" [Item: N, Waka: Y] No NC DTI data for Waka item "dyeworksred:radioactivemutantmarkings" [Item: N, Waka: Y] No NC DTI data for Waka item "featherflairedshoes" [Item: N, Waka: Y] No NC DTI data for Waka item "festivebooktree" [Item: N, Waka: Y] No NC DTI data for Waka item "floralblackcardigan" [Item: N, Waka: Y] No NC DTI data for Waka item "grapefruitneckace" [Item: N, Waka: Y] No NC DTI data for Waka item "mysteriousdoorwithlocksbackground" [Item: N, Waka: Y] No NC DTI data for Waka item "valiantchampionwings" [Item: N, Waka: Y] No NC DTI data for Waka item "waxcrayonwig" [Item: N, Waka: Y] No NC DTI data for Waka item "youngsophiesdress" ```
This commit is contained in:
parent
be816d89c9
commit
61e7a38b33
1 changed files with 34 additions and 2 deletions
|
@ -30,6 +30,23 @@ async function handle(req, res) {
|
||||||
for (const { name, id } of allNcItemNamesAndIds) {
|
for (const { name, id } of allNcItemNamesAndIds) {
|
||||||
if (name in itemValuesByName) {
|
if (name in itemValuesByName) {
|
||||||
itemValues[id] = itemValuesByName[name];
|
itemValues[id] = itemValuesByName[name];
|
||||||
|
} else {
|
||||||
|
console.warn(
|
||||||
|
`[Item: Y, Waka: N] No Waka value for NC DTI item ${JSON.stringify(
|
||||||
|
name
|
||||||
|
)} (${id})`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const allNcItemNames = new Set(allNcItemNamesAndIds.map(({ name }) => name));
|
||||||
|
for (const name of Object.keys(itemValuesByName)) {
|
||||||
|
if (!allNcItemNames.has(name)) {
|
||||||
|
console.warn(
|
||||||
|
`[Item: N, Waka: Y] No NC DTI data for Waka item ${JSON.stringify(
|
||||||
|
name
|
||||||
|
)}`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +73,7 @@ async function loadAllNcItemNamesAndIds() {
|
||||||
AND item_translations.locale = "en"
|
AND item_translations.locale = "en"
|
||||||
`);
|
`);
|
||||||
|
|
||||||
return rows;
|
return rows.map(({ id, name }) => ({ id, name: normalizeItemName(name) }));
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadWakaValuesByName() {
|
async function loadWakaValuesByName() {
|
||||||
|
@ -96,12 +113,27 @@ async function loadWakaValuesByName() {
|
||||||
// That's why we set `""` as the default `value`.
|
// That's why we set `""` as the default `value`.
|
||||||
const itemValuesByName = {};
|
const itemValuesByName = {};
|
||||||
for (const [itemName, value = ""] of rows) {
|
for (const [itemName, value = ""] of rows) {
|
||||||
itemValuesByName[itemName] = { value };
|
const normalizedItemName = normalizeItemName(itemName);
|
||||||
|
itemValuesByName[normalizedItemName] = { value };
|
||||||
}
|
}
|
||||||
|
|
||||||
return itemValuesByName;
|
return itemValuesByName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function normalizeItemName(name) {
|
||||||
|
return (
|
||||||
|
name
|
||||||
|
// Remove all spaces, they're a common source of inconsistency
|
||||||
|
.replace(/\s+/g, "")
|
||||||
|
// Lower case, because capitalization is another common source
|
||||||
|
.toLowerCase()
|
||||||
|
// Remove diacritics: https://stackoverflow.com/a/37511463/107415
|
||||||
|
// Waka has some stray ones in item names, not sure why!
|
||||||
|
.normalize("NFD")
|
||||||
|
.replace(/[\u0300-\u036f]/g, "")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export default async (req, res) => {
|
export default async (req, res) => {
|
||||||
beeline.withTrace({ name: "allWakaValues" }, () => handle(req, res));
|
beeline.withTrace({ name: "allWakaValues" }, () => handle(req, res));
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue