download and inline fish icons
This commit is contained in:
parent
36be313093
commit
faa92fcc76
1021 changed files with 35 additions and 12 deletions
|
@ -5,6 +5,11 @@
|
|||
import { DATA } from "./data.js";
|
||||
import { FISH_INFO } from "./fish_data.js";
|
||||
import fs from "node:fs/promises";
|
||||
import axios from "axios";
|
||||
import PQueue from "p-queue";
|
||||
import minimist from "minimist";
|
||||
|
||||
const argv = minimist(process.argv.slice(2));
|
||||
|
||||
const result = {
|
||||
db_data: DATA,
|
||||
|
@ -18,6 +23,25 @@ Object.values(result.db_data.FISH).forEach((fish) => {
|
|||
}
|
||||
});
|
||||
|
||||
if (argv.icons) {
|
||||
let promises = Object.values(result.db_data.ITEMS).map((item) => async () => {
|
||||
if (item.icon !== "") {
|
||||
let url = `https://v2.xivapi.com/api/asset?path=ui/icon/${item.icon.toString().slice(0, 3)}000/${item.icon}.tex&format=png`;
|
||||
let { data } = await axios.get(url, { responseType: "arraybuffer" });
|
||||
let fileData = Buffer.from(data, "binary");
|
||||
return fs.writeFile(`./static/icons/${item.icon}.png`, fileData);
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
console.log(`Downloading ${promises.length} icons...`);
|
||||
const queue = new PQueue({ concurrency: 5 });
|
||||
await queue.addAll(promises);
|
||||
console.log("Download complete!");
|
||||
}
|
||||
|
||||
const json = JSON.stringify(result);
|
||||
|
||||
await fs.writeFile("data.json", json, { encoding: "utf8" });
|
||||
console.log("Saved JSON to data.json!");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue