From 40d65ad35a6ae3dbd45c260c4887157d65564028 Mon Sep 17 00:00:00 2001 From: ArcaneDisgea <39720490+ArcaneDisgea@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:42:56 -0400 Subject: [PATCH] ilvlfilter --- create-card.js | 16 +++++++++++++++- createilvlfilter.js | 27 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 createilvlfilter.js diff --git a/create-card.js b/create-card.js index 05da468..88399dd 100644 --- a/create-card.js +++ b/create-card.js @@ -1,6 +1,14 @@ const fetch = require("node-fetch"); const path = require("path"); const { createCanvas, loadImage, registerFont } = require("canvas"); +const createilvlfilter = require('./createilvlfilter') + +let ilvlarray; +console.log('Generating ilvl filter') +createilvlfilter().then((ilvlfilter) => { + ilvlarray = ilvlfilter; + console.log("ilvl filter generated!") +}) function absolute(relativePath) { return path.join(__dirname, relativePath); @@ -241,6 +249,7 @@ class CardCreator { var mainHandLvl = 0; var hasOffHand = false; + console.log(ilvlarray) for (var key in gearset) { var piece = gearset[key]; @@ -253,7 +262,12 @@ class CardCreator { if (key == 'OffHand') hasOffHand = true; - ilvl += piece.Item.LevelItem; + if(ilvlarray.includes(piece.Item.ID) == true) { + ilvl += 1; + } else { + ilvl += piece.Item.LevelItem; + } + cnt++; } diff --git a/createilvlfilter.js b/createilvlfilter.js new file mode 100644 index 0000000..08c7333 --- /dev/null +++ b/createilvlfilter.js @@ -0,0 +1,27 @@ +const fetch = require("node-fetch"); + +const itemUICategory = [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 84, 87, 88, 89, 96, 97, 98, 99, + 105, 106, 107, +]; + +async function createilvlfilter() { + let results = []; + for (const category of itemUICategory) { + let url = `https://xivapi.com/search?indexes=item&filters=IsIndisposable=1,ItemUICategoryTargetID=${category}`; + const response = await fetch(url); + const data = response.json(); + data.then((payload) => { + if (payload.Pagination.Results === 0) { + return; + } + for (const item of payload.Results) { + let part = item.ID + results.push(part); + } + }); + } + return results; +} + +module.exports = createilvlfilter