From fd7945095724d255efbd38aa7865d1ec1e23cfc0 Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 2 Jun 2024 17:37:09 +0200 Subject: [PATCH] fix(webui): not listing melee arcanes (#265) --- package-lock.json | 6 ++++++ package.json | 1 + src/controllers/custom/getItemListsController.ts | 12 ++++++++++-- src/services/itemDataService.ts | 5 +++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66e1892a..4efe9437 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "express": "^5.0.0-beta.3", "mongoose": "^8.1.1", "warframe-items": "^1.1261.19", + "warframe-public-export-plus": "^0.1.0", "warframe-riven-info": "^0.1.0", "winston": "^3.11.0", "winston-daily-rotate-file": "^4.7.1" @@ -3893,6 +3894,11 @@ "warframe-worldstate-data": "^2" } }, + "node_modules/warframe-public-export-plus": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.1.0.tgz", + "integrity": "sha512-a76Be2pwPjKrin67zMux5L9U6zt9bhEtyy723tM2czGGcOZYWp1XdCZY684q3zPytWS0SmEia0C/h/4EiadBnQ==" + }, "node_modules/warframe-riven-info": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/warframe-riven-info/-/warframe-riven-info-0.1.0.tgz", diff --git a/package.json b/package.json index 87a35cf0..3f4b4f0e 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "express": "^5.0.0-beta.3", "mongoose": "^8.1.1", "warframe-items": "^1.1261.19", + "warframe-public-export-plus": "^0.1.0", "warframe-riven-info": "^0.1.0", "winston": "^3.11.0", "winston-daily-rotate-file": "^4.7.1" diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts index c0345716..b2f970bc 100644 --- a/src/controllers/custom/getItemListsController.ts +++ b/src/controllers/custom/getItemListsController.ts @@ -1,6 +1,7 @@ import { RequestHandler } from "express"; -import { MinItem, warframes, weapons, items } from "@/src/services/itemDataService"; +import { MinItem, warframes, weapons, items, getEnglishString } from "@/src/services/itemDataService"; import badItems from "@/static/json/exclude-mods.json"; +import ExportArcanes from "@/node_modules/warframe-public-export-plus/ExportArcanes.json"; interface ListedItem { uniqueName: string; @@ -19,13 +20,20 @@ function reduceItems(items: MinItem[]): ListedItem[] { } const getItemListsController: RequestHandler = (_req, res) => { + const mods = reduceItems(items.filter(item => item.category == "Mods")); + for (const arcane of ExportArcanes) { + mods.push({ + uniqueName: arcane.uniqueName, + name: getEnglishString(arcane.name) + }); + } res.json({ warframes: reduceItems(warframes), weapons: reduceItems(weapons.filter(item => item.productCategory != "OperatorAmps")), miscitems: reduceItems( items.filter(item => item.category == "Misc" || item.category == "Resources" || item.category == "Fish") ), - mods: reduceItems(items.filter(item => item.category == "Mods" || item.category == "Arcanes")), + mods, badItems }); }; diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index 2aafbcc5..51ad3b68 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -2,6 +2,7 @@ import { getIndexAfter } from "@/src/helpers/stringHelpers"; import { logger } from "@/src/utils/logger"; import Items, { Buildable, Category, MinimalItem, Warframe, Weapon } from "warframe-items"; import badItems from "@/static/json/exclude-mods.json"; +import dict_en from "@/node_modules/warframe-public-export-plus/dict.en.json"; export type MinWarframe = Omit; export type MinWeapon = Omit; @@ -129,3 +130,7 @@ export const getItemByName = (name: string) => { const item = items.find(item => item.name === name); return item; }; + +export const getEnglishString = (key: string) => { + return dict_en[key as keyof typeof dict_en] ?? key; +};