forked from OpenWF/SpaceNinjaServer
		
	chore: update data for 36.0.0 (Jade Shadows) (#324)
This commit is contained in:
		
							parent
							
								
									74de4e0753
								
							
						
					
					
						commit
						03ac8ab010
					
				
							
								
								
									
										8
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -13,7 +13,7 @@
 | 
				
			|||||||
        "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-items": "^1.1262.74",
 | 
				
			||||||
        "warframe-public-export-plus": "^0.2.4",
 | 
					        "warframe-public-export-plus": "^0.2.5",
 | 
				
			||||||
        "warframe-riven-info": "^0.1.0",
 | 
					        "warframe-riven-info": "^0.1.0",
 | 
				
			||||||
        "winston": "^3.11.0",
 | 
					        "winston": "^3.11.0",
 | 
				
			||||||
        "winston-daily-rotate-file": "^4.7.1"
 | 
					        "winston-daily-rotate-file": "^4.7.1"
 | 
				
			||||||
@ -3909,9 +3909,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/warframe-public-export-plus": {
 | 
					    "node_modules/warframe-public-export-plus": {
 | 
				
			||||||
      "version": "0.2.4",
 | 
					      "version": "0.2.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.2.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.2.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-Kh2+4p0qirTNUfHLr/nUJ1y/kH9mKnig28dwgpPaWt41ZfGzA+/qrpqI3DHYUvpd4wTCii/HItIy6tZtpTsy4Q=="
 | 
					      "integrity": "sha512-IsS2Z14CeTpGSpfeUxqTi8wAQjQ6qjh2kV8RC9St5hcDmII3NpwEFXmStEqz7r+JPfea72D3cZMMl+4QLHqvXw=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/warframe-riven-info": {
 | 
					    "node_modules/warframe-riven-info": {
 | 
				
			||||||
      "version": "0.1.0",
 | 
					      "version": "0.1.0",
 | 
				
			||||||
 | 
				
			|||||||
@ -17,7 +17,7 @@
 | 
				
			|||||||
    "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-items": "^1.1262.74",
 | 
				
			||||||
    "warframe-public-export-plus": "^0.2.4",
 | 
					    "warframe-public-export-plus": "^0.2.5",
 | 
				
			||||||
    "warframe-riven-info": "^0.1.0",
 | 
					    "warframe-riven-info": "^0.1.0",
 | 
				
			||||||
    "winston": "^3.11.0",
 | 
					    "winston": "^3.11.0",
 | 
				
			||||||
    "winston-daily-rotate-file": "^4.7.1"
 | 
					    "winston-daily-rotate-file": "^4.7.1"
 | 
				
			||||||
 | 
				
			|||||||
@ -5,12 +5,9 @@ import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
 | 
				
			|||||||
import { Request, RequestHandler, Response } from "express";
 | 
					import { Request, RequestHandler, Response } from "express";
 | 
				
			||||||
import { config } from "@/src/services/configService";
 | 
					import { config } from "@/src/services/configService";
 | 
				
			||||||
import allMissions from "@/static/fixed_responses/allMissions.json";
 | 
					import allMissions from "@/static/fixed_responses/allMissions.json";
 | 
				
			||||||
import allQuestKeys from "@/static/fixed_responses/allQuestKeys.json";
 | 
					 | 
				
			||||||
import allShipDecorations from "@/static/fixed_responses/allShipDecorations.json";
 | 
					 | 
				
			||||||
import allFlavourItems from "@/static/fixed_responses/allFlavourItems.json";
 | 
					 | 
				
			||||||
import allSkins from "@/static/fixed_responses/allSkins.json";
 | 
					 | 
				
			||||||
import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
 | 
					import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
 | 
				
			||||||
import { IShipInventory, IFlavourItem } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
					import { IShipInventory } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
 | 
					import { ExportCustoms, ExportFlavour, ExportKeys, ExportResources } from "warframe-public-export-plus";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const inventoryController: RequestHandler = async (request: Request, response: Response) => {
 | 
					const inventoryController: RequestHandler = async (request: Request, response: Response) => {
 | 
				
			||||||
    let accountId;
 | 
					    let accountId;
 | 
				
			||||||
@ -51,9 +48,11 @@ const inventoryController: RequestHandler = async (request: Request, response: R
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (config.unlockAllQuests) {
 | 
					    if (config.unlockAllQuests) {
 | 
				
			||||||
        for (const questKey of allQuestKeys) {
 | 
					        for (const [k, v] of Object.entries(ExportKeys)) {
 | 
				
			||||||
            if (!inventoryResponse.QuestKeys.find(quest => quest.ItemType == questKey)) {
 | 
					            if ("chainStages" in v) {
 | 
				
			||||||
                inventoryResponse.QuestKeys.push({ ItemType: questKey });
 | 
					                if (!inventoryResponse.QuestKeys.find(quest => quest.ItemType == k)) {
 | 
				
			||||||
 | 
					                    inventoryResponse.QuestKeys.push({ ItemType: k });
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -76,17 +75,30 @@ const inventoryController: RequestHandler = async (request: Request, response: R
 | 
				
			|||||||
        inventoryResponse.NodeIntrosCompleted.push("/Lotus/Levels/Cinematics/NewWarIntro/NewWarStageTwo.level");
 | 
					        inventoryResponse.NodeIntrosCompleted.push("/Lotus/Levels/Cinematics/NewWarIntro/NewWarStageTwo.level");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (config.unlockAllShipDecorations) inventoryResponse.ShipDecorations = allShipDecorations;
 | 
					    if (config.unlockAllShipDecorations) {
 | 
				
			||||||
    if (config.unlockAllFlavourItems) inventoryResponse.FlavourItems = allFlavourItems satisfies IFlavourItem[];
 | 
					        inventoryResponse.ShipDecorations = [];
 | 
				
			||||||
 | 
					        for (const [uniqueName, item] of Object.entries(ExportResources)) {
 | 
				
			||||||
 | 
					            if (item.productCategory == "ShipDecorations") {
 | 
				
			||||||
 | 
					                inventoryResponse.ShipDecorations.push({ ItemType: uniqueName, ItemCount: 1 });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (config.unlockAllFlavourItems) {
 | 
				
			||||||
 | 
					        inventoryResponse.FlavourItems = [];
 | 
				
			||||||
 | 
					        for (const uniqueName in ExportFlavour) {
 | 
				
			||||||
 | 
					            inventoryResponse.FlavourItems.push({ ItemType: uniqueName });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (config.unlockAllSkins) {
 | 
					    if (config.unlockAllSkins) {
 | 
				
			||||||
        inventoryResponse.WeaponSkins = [];
 | 
					        inventoryResponse.WeaponSkins = [];
 | 
				
			||||||
        for (const skin of allSkins) {
 | 
					        for (const uniqueName in ExportCustoms) {
 | 
				
			||||||
            inventoryResponse.WeaponSkins.push({
 | 
					            inventoryResponse.WeaponSkins.push({
 | 
				
			||||||
                ItemId: {
 | 
					                ItemId: {
 | 
				
			||||||
                    $oid: "000000000000000000000000"
 | 
					                    $oid: "000000000000000000000000"
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                ItemType: skin
 | 
					                ItemType: uniqueName
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
import { MinItem, MinWeapon, warframes, items, getEnglishString } from "@/src/services/itemDataService";
 | 
					import { MinItem, items, getEnglishString } from "@/src/services/itemDataService";
 | 
				
			||||||
import badItems from "@/static/json/exclude-mods.json";
 | 
					import badItems from "@/static/json/exclude-mods.json";
 | 
				
			||||||
import { ExportArcanes, ExportWeapons } from "warframe-public-export-plus";
 | 
					import { ExportArcanes, ExportResources, ExportWarframes, ExportWeapons } from "warframe-public-export-plus";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface ListedItem {
 | 
					interface ListedItem {
 | 
				
			||||||
    uniqueName: string;
 | 
					    uniqueName: string;
 | 
				
			||||||
@ -20,6 +20,30 @@ function reduceItems(items: MinItem[]): ListedItem[] {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const getItemListsController: RequestHandler = (_req, res) => {
 | 
					const getItemListsController: RequestHandler = (_req, res) => {
 | 
				
			||||||
 | 
					    const weapons = [];
 | 
				
			||||||
 | 
					    const miscitems = [];
 | 
				
			||||||
 | 
					    for (const [uniqueName, item] of Object.entries(ExportWeapons)) {
 | 
				
			||||||
 | 
					        if (item.productCategory !== "OperatorAmps") {
 | 
				
			||||||
 | 
					            if (item.totalDamage !== 0) {
 | 
				
			||||||
 | 
					                weapons.push({
 | 
				
			||||||
 | 
					                    uniqueName,
 | 
				
			||||||
 | 
					                    name: getEnglishString(item.name)
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            } else if (!item.excludeFromCodex) {
 | 
				
			||||||
 | 
					                miscitems.push({
 | 
				
			||||||
 | 
					                    uniqueName,
 | 
				
			||||||
 | 
					                    name: getEnglishString(item.name)
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for (const [uniqueName, item] of Object.entries(ExportResources)) {
 | 
				
			||||||
 | 
					        miscitems.push({
 | 
				
			||||||
 | 
					            uniqueName,
 | 
				
			||||||
 | 
					            name: getEnglishString(item.name)
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const mods = reduceItems(items.filter(item => item.category == "Mods"));
 | 
					    const mods = reduceItems(items.filter(item => item.category == "Mods"));
 | 
				
			||||||
    for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) {
 | 
					    for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) {
 | 
				
			||||||
        mods.push({
 | 
					        mods.push({
 | 
				
			||||||
@ -27,27 +51,18 @@ const getItemListsController: RequestHandler = (_req, res) => {
 | 
				
			|||||||
            name: getEnglishString(arcane.name)
 | 
					            name: getEnglishString(arcane.name)
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    res.json({
 | 
					    res.json({
 | 
				
			||||||
        warframes: reduceItems(warframes),
 | 
					        warframes: Object.entries(ExportWarframes)
 | 
				
			||||||
        weapons: Object.entries(ExportWeapons)
 | 
					            .filter(([_uniqueName, warframe]) => warframe.productCategory == "Suits")
 | 
				
			||||||
            .filter(([_uniqueName, weapon]) => weapon.productCategory !== "OperatorAmps" && weapon.totalDamage !== 0)
 | 
					            .map(([uniqueName, warframe]) => {
 | 
				
			||||||
            .map(([uniqueName, weapon]) => {
 | 
					 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    uniqueName,
 | 
					                    uniqueName,
 | 
				
			||||||
                    name: getEnglishString(weapon.name)
 | 
					                    name: getEnglishString(warframe.name)
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
        miscitems: reduceItems(
 | 
					        weapons,
 | 
				
			||||||
            items.filter(
 | 
					        miscitems,
 | 
				
			||||||
                item =>
 | 
					 | 
				
			||||||
                    item.category == "Misc" ||
 | 
					 | 
				
			||||||
                    item.category == "Resources" ||
 | 
					 | 
				
			||||||
                    item.category == "Fish" ||
 | 
					 | 
				
			||||||
                    ((item as any).productCategory == "Pistols" &&
 | 
					 | 
				
			||||||
                        (item as MinWeapon).totalDamage == 0 &&
 | 
					 | 
				
			||||||
                        !item.excludeFromCodex) // exclude Zaw Strike PvP variant
 | 
					 | 
				
			||||||
            )
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        mods,
 | 
					        mods,
 | 
				
			||||||
        badItems
 | 
					        badItems
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
				
			|||||||
@ -15,16 +15,6 @@ export type MinWarframe = Omit<Warframe, "patchlogs">;
 | 
				
			|||||||
export type MinWeapon = Omit<Weapon, "patchlogs">;
 | 
					export type MinWeapon = Omit<Weapon, "patchlogs">;
 | 
				
			||||||
export type MinItem = Omit<MinimalItem, "patchlogs">;
 | 
					export type MinItem = Omit<MinimalItem, "patchlogs">;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const warframes: MinWarframe[] = Array.from(new Items({ category: ["Warframes"] }) as Warframe[])
 | 
					 | 
				
			||||||
    .filter(item => {
 | 
					 | 
				
			||||||
        return item.uniqueName.substring(0, 30) != "/Lotus/Powersuits/EntratiMech/";
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    .map(item => {
 | 
					 | 
				
			||||||
        const next = { ...item };
 | 
					 | 
				
			||||||
        delete next.patchlogs;
 | 
					 | 
				
			||||||
        return next;
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export type WeaponTypeInternal =
 | 
					export type WeaponTypeInternal =
 | 
				
			||||||
    | "LongGuns"
 | 
					    | "LongGuns"
 | 
				
			||||||
    | "Pistols"
 | 
					    | "Pistols"
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1249,6 +1249,11 @@
 | 
				
			|||||||
    "Tier": 1,
 | 
					    "Tier": 1,
 | 
				
			||||||
    "Tag": "SolNode721"
 | 
					    "Tag": "SolNode721"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "Completes": 1,
 | 
				
			||||||
 | 
					    "Tier": 1,
 | 
				
			||||||
 | 
					    "Tag": "SolNode723"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    "Completes": 1,
 | 
					    "Completes": 1,
 | 
				
			||||||
    "Tier": 1,
 | 
					    "Tier": 1,
 | 
				
			||||||
@ -1516,6 +1521,7 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    "Completes": 1,
 | 
					    "Completes": 1,
 | 
				
			||||||
 | 
					    "Tier": 1,
 | 
				
			||||||
    "Tag": "UranusToNeptuneJunction"
 | 
					    "Tag": "UranusToNeptuneJunction"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,38 +0,0 @@
 | 
				
			|||||||
[
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/GlassQuest/GlassQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/SolarisQuest/SolarisQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/InfestedIntroQuest/InfestedIntroQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/KubrowQuest/KubrowQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/ArchwingQuest/ArchwingQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/GetClemQuest/GetClemQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/SpyQuestKeyChain/SpyQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/DragonQuest/DragonQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/LimboQuest/LimboQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/SentientQuest/SentientQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/OrokinMoonQuest/OrokinMoonQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/MirageQuest/MirageQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/WarWithinQuest/WarWithinQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/InfestedAladVQuest/InfestedAladVQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/GolemQuest/GolemQuestKeyChainItem",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/BardQuest/BardQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/FairyQuest/FairyQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/IndexQuest/IndexQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/PriestFrameQuest/PriestQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/ApostasyQuest/ApostasyKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/SacrificeQuest/SacrificeQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/ChimeraQuest/ChimeraKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/MummyQuest/MummyQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/RailJackBuildQuest/RailjackBuildQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/NewWarIntroQuest/NewWarIntroKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/ProteaQuest/ProteaQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/RevenantQuest/RevenantQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/InfestedMicroplanetQuest/InfestedMicroplanetQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/WraithQuest/WraithQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/YareliQuest/YareliQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/NewWarQuest/NewWarQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/ZarimanQuest/ZarimanQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/KahlQuest/KahlQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/DuviriQuest/DuviriQuestKeyChain",
 | 
					 | 
				
			||||||
  "/Lotus/Types/Keys/EntratiLab/EntratiQuestKeyChain"
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user