mirror of
https://github.com/1disk/edp445.git
synced 2024-08-14 22:47:02 +00:00
Changed alot of things.
This commit is contained in:
parent
a5a0523e5a
commit
3513d5390c
2016 changed files with 336930 additions and 9 deletions
60
node_modules/canvacord/scripts/assets/build.mjs
generated
vendored
Normal file
60
node_modules/canvacord/scripts/assets/build.mjs
generated
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
import fetch from "node-fetch";
|
||||
import fs from "fs";
|
||||
import chalk from "chalk";
|
||||
import { fileURLToPath } from "url";
|
||||
import { dirname } from "path";
|
||||
|
||||
const METADATA_URL = "https://raw.githubusercontent.com/DevAndromeda/canvacord/assets/datasrc.json";
|
||||
const ASSETS_DIR = "CANVACORD_ASSETS" in process.env ? process.env.CANVACORD_ASSETS : `${dirname(fileURLToPath(import.meta.url))}/../../assets`;
|
||||
|
||||
export async function build(force = false) {
|
||||
if (!fs.existsSync(ASSETS_DIR)) await fs.promises.mkdir(ASSETS_DIR, { recursive: true });
|
||||
if (!fs.existsSync(`${ASSETS_DIR}/fonts`)) await fs.promises.mkdir(`${ASSETS_DIR}/fonts`, { recursive: true });
|
||||
if (!fs.existsSync(`${ASSETS_DIR}/images`)) await fs.promises.mkdir(`${ASSETS_DIR}/images`, { recursive: true });
|
||||
|
||||
if (force) console.log(`${chalk.yellowBright("[Canvacord]")} ${chalk.whiteBright("Rebuilding forcefully as --force was supplied!")}`);
|
||||
|
||||
if (fs.existsSync(`${ASSETS_DIR}/meta.json`) && !force) {
|
||||
console.log(`${chalk.greenBright("[Canvacord]")} ${chalk.whiteBright(`Assets installation skipped since metadata is already available!`)}`);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
console.log(`${chalk.yellowBright("[Canvacord]")} ${chalk.whiteBright("Downloading assets...")}`);
|
||||
|
||||
const assetsMeta = await fetch(METADATA_URL, {
|
||||
redirect: "follow"
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
if (!data?.data) throw new Error(`Corrupted assets source`);
|
||||
return data;
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(`${chalk.redBright("[Canvacord]")} ${chalk.whiteBright(`Failed to download assets:\n\t${chalk.redBright(e)}`)}`);
|
||||
});
|
||||
|
||||
if (!assetsMeta) {
|
||||
console.log(`${chalk.redBright("[Canvacord]")} ${chalk.whiteBright(`Failed assets installation!`)}`);
|
||||
} else {
|
||||
await fs.promises.writeFile(`${ASSETS_DIR}/meta.json`, JSON.stringify(assetsMeta));
|
||||
console.log(`${chalk.greenBright("[Canvacord]")} ${chalk.whiteBright(`Successfully downloaded metadata!`)}`);
|
||||
|
||||
console.log(`${chalk.yellowBright("[Canvacord]")} ${chalk.whiteBright("Downloading images...")}`);
|
||||
await Promise.all(assetsMeta.data.images.map(m => downloadAsset(m.url, m.name, true)));
|
||||
console.log(`${chalk.yellowBright("[Canvacord]")} ${chalk.whiteBright("Downloading fonts...")}`);
|
||||
await Promise.all(assetsMeta.data.fonts.map(m => downloadAsset(m.url, m.name, false)));
|
||||
|
||||
async function downloadAsset(url, name, image) {
|
||||
const stream = await fetch(url).then(res => {
|
||||
if (!res.ok || !res.body) throw new Error(`[HTTP${res.status}] Could not download ${url}!`);
|
||||
return res.body;
|
||||
});
|
||||
|
||||
const writer = stream.pipe(fs.createWriteStream(`${ASSETS_DIR}/${image ? "images" : "fonts"}/${name}`));
|
||||
|
||||
writer.on("finish", () => {
|
||||
console.log(`${chalk.greenBright("[Canvacord]")} ${chalk.whiteBright(`Successfully downloaded ${chalk.cyanBright(name)}`)}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue