forked from OpenWF/SpaceNinjaServer
		
	cleanup: fully switch to Public-Export+(#354)
Co-authored-by: Sainan <Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									fda7b5f816
								
							
						
					
					
						commit
						93dce67037
					
				
							
								
								
									
										18
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										18
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -12,7 +12,6 @@
 | 
				
			|||||||
        "copyfiles": "^2.4.1",
 | 
					        "copyfiles": "^2.4.1",
 | 
				
			||||||
        "express": "^5.0.0-beta.3",
 | 
					        "express": "^5.0.0-beta.3",
 | 
				
			||||||
        "mongoose": "^8.1.1",
 | 
					        "mongoose": "^8.1.1",
 | 
				
			||||||
        "warframe-items": "^1.1262.74",
 | 
					 | 
				
			||||||
        "warframe-public-export-plus": "^0.3.0",
 | 
					        "warframe-public-export-plus": "^0.3.0",
 | 
				
			||||||
        "warframe-riven-info": "^0.1.0",
 | 
					        "warframe-riven-info": "^0.1.0",
 | 
				
			||||||
        "winston": "^3.11.0",
 | 
					        "winston": "^3.11.0",
 | 
				
			||||||
@ -3669,14 +3668,6 @@
 | 
				
			|||||||
        "node": ">= 0.8"
 | 
					        "node": ">= 0.8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/warframe-items": {
 | 
					 | 
				
			||||||
      "version": "1.1262.74",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/warframe-items/-/warframe-items-1.1262.74.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-piS27vLxULdeXv1GZrac5Da18DavYnj99w5Pdmvlbyt/vPImq4SWq21PQwaLle1mkyEeqNjbcd3H7zh1I7eA1g==",
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "warframe-worldstate-data": "^2"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/warframe-public-export-plus": {
 | 
					    "node_modules/warframe-public-export-plus": {
 | 
				
			||||||
      "version": "0.3.0",
 | 
					      "version": "0.3.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.3.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.3.0.tgz",
 | 
				
			||||||
@ -3687,15 +3678,6 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/warframe-riven-info/-/warframe-riven-info-0.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/warframe-riven-info/-/warframe-riven-info-0.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-99e1HsGZomE1vHXat97V/eseccEnnQ1rv9vC0bdV9mig1wPdWiixHqCIpvIOBVUGKSEKuw2DJEErPD5Nxg+EsQ=="
 | 
					      "integrity": "sha512-99e1HsGZomE1vHXat97V/eseccEnnQ1rv9vC0bdV9mig1wPdWiixHqCIpvIOBVUGKSEKuw2DJEErPD5Nxg+EsQ=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/warframe-worldstate-data": {
 | 
					 | 
				
			||||||
      "version": "2.5.14",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/warframe-worldstate-data/-/warframe-worldstate-data-2.5.14.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-85UFs+kW0+rBW+fWcf8vCiLOIsTcH6ZkO8ANz7fiDTQfWdA5Y33jT2Z21RiVvtNDHDFXNrpZfpZtibJfhffdqA==",
 | 
					 | 
				
			||||||
      "peer": true,
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=18.19.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/webidl-conversions": {
 | 
					    "node_modules/webidl-conversions": {
 | 
				
			||||||
      "version": "7.0.0",
 | 
					      "version": "7.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,6 @@
 | 
				
			|||||||
    "copyfiles": "^2.4.1",
 | 
					    "copyfiles": "^2.4.1",
 | 
				
			||||||
    "express": "^5.0.0-beta.3",
 | 
					    "express": "^5.0.0-beta.3",
 | 
				
			||||||
    "mongoose": "^8.1.1",
 | 
					    "mongoose": "^8.1.1",
 | 
				
			||||||
    "warframe-items": "^1.1262.74",
 | 
					 | 
				
			||||||
    "warframe-public-export-plus": "^0.3.0",
 | 
					    "warframe-public-export-plus": "^0.3.0",
 | 
				
			||||||
    "warframe-riven-info": "^0.1.0",
 | 
					    "warframe-riven-info": "^0.1.0",
 | 
				
			||||||
    "winston": "^3.11.0",
 | 
					    "winston": "^3.11.0",
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
import { MinItem, items, getEnglishString } from "@/src/services/itemDataService";
 | 
					import { getEnglishString } from "@/src/services/itemDataService";
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
    ExportArcanes,
 | 
					    ExportArcanes,
 | 
				
			||||||
    ExportGear,
 | 
					    ExportGear,
 | 
				
			||||||
@ -15,16 +15,6 @@ interface ListedItem {
 | 
				
			|||||||
    fusionLimit?: number;
 | 
					    fusionLimit?: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function reduceItems(items: MinItem[]): ListedItem[] {
 | 
					 | 
				
			||||||
    return items.map((item: MinItem): ListedItem => {
 | 
					 | 
				
			||||||
        return {
 | 
					 | 
				
			||||||
            uniqueName: item.uniqueName,
 | 
					 | 
				
			||||||
            name: item.name,
 | 
					 | 
				
			||||||
            fusionLimit: (item as any).fusionLimit
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const getItemListsController: RequestHandler = (_req, res) => {
 | 
					const getItemListsController: RequestHandler = (_req, res) => {
 | 
				
			||||||
    const weapons = [];
 | 
					    const weapons = [];
 | 
				
			||||||
    const miscitems = [];
 | 
					    const miscitems = [];
 | 
				
			||||||
@ -56,20 +46,24 @@ const getItemListsController: RequestHandler = (_req, res) => {
 | 
				
			|||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const mods = reduceItems(items.filter(item => item.category == "Mods"));
 | 
					    const mods: ListedItem[] = [];
 | 
				
			||||||
    for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) {
 | 
					 | 
				
			||||||
        mods.push({
 | 
					 | 
				
			||||||
            uniqueName: uniqueName,
 | 
					 | 
				
			||||||
            name: getEnglishString(arcane.name)
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const badItems: Record<string, boolean> = {};
 | 
					    const badItems: Record<string, boolean> = {};
 | 
				
			||||||
    for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) {
 | 
					    for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) {
 | 
				
			||||||
 | 
					        mods.push({
 | 
				
			||||||
 | 
					            uniqueName,
 | 
				
			||||||
 | 
					            name: getEnglishString(upgrade.name),
 | 
				
			||||||
 | 
					            fusionLimit: upgrade.fusionLimit
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
        if (upgrade.isStarter || upgrade.isFrivolous || upgrade.upgradeEntries) {
 | 
					        if (upgrade.isStarter || upgrade.isFrivolous || upgrade.upgradeEntries) {
 | 
				
			||||||
            badItems[uniqueName] = true;
 | 
					            badItems[uniqueName] = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) {
 | 
				
			||||||
 | 
					        mods.push({
 | 
				
			||||||
 | 
					            uniqueName,
 | 
				
			||||||
 | 
					            name: getEnglishString(arcane.name)
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    res.json({
 | 
					    res.json({
 | 
				
			||||||
        warframes: Object.entries(ExportWarframes)
 | 
					        warframes: Object.entries(ExportWarframes)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,5 @@
 | 
				
			|||||||
import { getIndexAfter } from "@/src/helpers/stringHelpers";
 | 
					import { getIndexAfter } from "@/src/helpers/stringHelpers";
 | 
				
			||||||
import { logger } from "@/src/utils/logger";
 | 
					import { logger } from "@/src/utils/logger";
 | 
				
			||||||
import Items, { MinimalItem, Warframe, Weapon } from "warframe-items";
 | 
					 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
    dict_en,
 | 
					    dict_en,
 | 
				
			||||||
    ExportRecipes,
 | 
					    ExportRecipes,
 | 
				
			||||||
@ -10,10 +9,6 @@ import {
 | 
				
			|||||||
    IRecipe
 | 
					    IRecipe
 | 
				
			||||||
} from "warframe-public-export-plus";
 | 
					} from "warframe-public-export-plus";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type MinWarframe = Omit<Warframe, "patchlogs">;
 | 
					 | 
				
			||||||
export type MinWeapon = Omit<Weapon, "patchlogs">;
 | 
					 | 
				
			||||||
export type MinItem = Omit<MinimalItem, "patchlogs">;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type WeaponTypeInternal =
 | 
					export type WeaponTypeInternal =
 | 
				
			||||||
    | "LongGuns"
 | 
					    | "LongGuns"
 | 
				
			||||||
    | "Pistols"
 | 
					    | "Pistols"
 | 
				
			||||||
@ -24,12 +19,6 @@ export type WeaponTypeInternal =
 | 
				
			|||||||
    | "OperatorAmps"
 | 
					    | "OperatorAmps"
 | 
				
			||||||
    | "SpecialItems";
 | 
					    | "SpecialItems";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const items: MinItem[] = Array.from(new Items({ category: ["All"] }) as MinimalItem[]).map(item => {
 | 
					 | 
				
			||||||
    const next = { ...item };
 | 
					 | 
				
			||||||
    delete next.patchlogs;
 | 
					 | 
				
			||||||
    return next;
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const getWeaponType = (weaponName: string): WeaponTypeInternal => {
 | 
					export const getWeaponType = (weaponName: string): WeaponTypeInternal => {
 | 
				
			||||||
    const weaponInfo = ExportWeapons[weaponName];
 | 
					    const weaponInfo = ExportWeapons[weaponName];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -52,33 +41,6 @@ export const getWeaponType = (weaponName: string): WeaponTypeInternal => {
 | 
				
			|||||||
    return weaponType;
 | 
					    return weaponType;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const craftNames = Object.fromEntries(
 | 
					 | 
				
			||||||
    (
 | 
					 | 
				
			||||||
        new Items({
 | 
					 | 
				
			||||||
            category: [
 | 
					 | 
				
			||||||
                "Warframes",
 | 
					 | 
				
			||||||
                "Gear",
 | 
					 | 
				
			||||||
                "Melee",
 | 
					 | 
				
			||||||
                "Primary",
 | 
					 | 
				
			||||||
                "Secondary",
 | 
					 | 
				
			||||||
                "Sentinels",
 | 
					 | 
				
			||||||
                "Misc",
 | 
					 | 
				
			||||||
                "Arch-Gun",
 | 
					 | 
				
			||||||
                "Arch-Melee"
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
        }) as Warframe[]
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
        .flatMap(item => item.components || [])
 | 
					 | 
				
			||||||
        .filter(item => item.drops && item.drops[0])
 | 
					 | 
				
			||||||
        .map(item => [item.drops![0].type, item.uniqueName])
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const blueprintNames = Object.fromEntries(
 | 
					 | 
				
			||||||
    Object.keys(craftNames)
 | 
					 | 
				
			||||||
        .filter(name => name.includes("Blueprint"))
 | 
					 | 
				
			||||||
        .map(name => [name, craftNames[name]])
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const getRecipe = (uniqueName: string): IRecipe | undefined => {
 | 
					export const getRecipe = (uniqueName: string): IRecipe | undefined => {
 | 
				
			||||||
    return ExportRecipes[uniqueName];
 | 
					    return ExportRecipes[uniqueName];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -113,16 +75,6 @@ export const getSuitByUniqueName = (uniqueName: string): IPowersuit | undefined
 | 
				
			|||||||
    return ExportWarframes[uniqueName];
 | 
					    return ExportWarframes[uniqueName];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getItemByUniqueName = (uniqueName: string) => {
 | 
					 | 
				
			||||||
    const item = items.find(item => item.uniqueName === uniqueName);
 | 
					 | 
				
			||||||
    return item;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const getItemByName = (name: string) => {
 | 
					 | 
				
			||||||
    const item = items.find(item => item.name === name);
 | 
					 | 
				
			||||||
    return item;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const getEnglishString = (key: string): string => {
 | 
					export const getEnglishString = (key: string): string => {
 | 
				
			||||||
    return dict_en[key] ?? key;
 | 
					    return dict_en[key] ?? key;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user