webamp/packages/skinArchiveTools/lib/takeScreenshots.js
2020-05-17 22:24:35 -07:00

36 lines
1.2 KiB
JavaScript

const path = require("path");
const fs = require("fs");
const fsPromises = require("fs").promises;
const Shooter = require("./shooter");
module.exports = async function takeScreenshots(skinDir, screenshotDir) {
console.log(`Looking for skins in ${skinDir}`);
const files = await fsPromises.readdir(skinDir);
console.log(`Found ${files.length} skins`);
let skipCount = 0;
let shotCount = 0;
const interval = setInterval(() => {
console.log(`Update: Skipped: ${skipCount}`);
console.log(`Update: Shot: ${shotCount}`);
}, 10000);
const shooter = new Shooter();
for (const fileName of files) {
const filePath = path.join(skinDir, fileName);
if (!fs.existsSync(filePath)) {
throw new Error("wat", filePath);
}
const md5 = path.basename(filePath, ".wsz");
const screenshotPath = path.join(screenshotDir, `${md5}.png`);
if (fs.existsSync(screenshotPath)) {
skipCount++;
continue;
}
await shooter.takeScreenshot(filePath, screenshotPath, {
minify: true,
});
shotCount++;
}
clearInterval(interval);
console.log(`FINAL: Skipped: ${skipCount}`);
console.log(`FINAL: Shot: ${shotCount}`);
};