Skip to content

Commit

Permalink
Updated createIlvlFilter to include xivApiKey
Browse files Browse the repository at this point in the history
  • Loading branch information
carlomorgenstern committed Oct 25, 2021
1 parent 2023697 commit e304b70
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 36 deletions.
13 changes: 4 additions & 9 deletions create-card.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
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!")
})
const createIlvlFilter = require('./create-ilvl-filter');

function absolute(relativePath) {
return path.join(__dirname, relativePath);
Expand Down Expand Up @@ -192,6 +186,8 @@ class CardCreator {
this.imgJobBg[i] = await loadImage(absolute(`./resources/class-jobs-backgrounds/${i}.png`));
}

this.ilvlFilterIds = await createIlvlFilter(this.xivApiKey);

await this.countMountsMinions();
}

Expand Down Expand Up @@ -251,7 +247,6 @@ class CardCreator {
var mainHandLvl = 0;
var hasOffHand = false;

console.log(ilvlarray)
for (var key in gearset) {
var piece = gearset[key];

Expand All @@ -264,7 +259,7 @@ class CardCreator {
if (key == 'OffHand')
hasOffHand = true;

if(ilvlarray.includes(piece.Item.ID) == true) {
if (this.ilvlFilterIds.includes(piece.Item.ID) == true) {
ilvl += 1;
} else {
ilvl += piece.Item.LevelItem;
Expand Down
33 changes: 33 additions & 0 deletions create-ilvl-filter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
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,
];

// Returns a list of item IDs that, when equipped, increase the iLvl by 1
async function createIlvlFilter(xivApiKey = undefined) {
const itemIds = [];

// Fetch for each category one after another to prevent rate limiting
// This should only by needed on startup, so a longer caching time is ok
for (const category of itemUICategory) {
const url = new URL('https://xivapi.com/search');
url.searchParams.set('indexes', 'item');
url.searchParams.set('filters', `IsIndisposable=1,ItemUICategoryTargetID=${category}`);
if (typeof xivApiKey === 'string' && xivApiKey !== '') url.searchParams.set('private_key', xivApiKey);

const response = await fetch(url.toString());
const data = await response.json();

if (data != null && Array.isArray(data.Results)) {
for (const item of data.Results) {
itemIds.push(item.ID);
}
}
}
return itemIds;
}

module.exports = createIlvlFilter
27 changes: 0 additions & 27 deletions createilvlfilter.js

This file was deleted.

0 comments on commit e304b70

Please sign in to comment.