keanu-weblite/create_sticker_config.js

45 lines
1.3 KiB
JavaScript
Raw Normal View History

2021-09-25 14:35:38 +02:00
if (!process.argv[2]) {
console.log('Insufficient number of arguments! Need a path to sticker packs...');
}
var path = require('path'), fs = require('fs');
function fromDir(startPath, filter, callback) {
//console.log('Starting from dir '+startPath+'/');
if (!fs.existsSync(startPath)) {
console.log("no dir ", startPath);
return;
}
var files = fs.readdirSync(startPath);
for (var i = 0; i < files.length; i++) {
var filename = path.join(startPath, files[i]);
var stat = fs.lstatSync(filename);
if (stat.isDirectory()) {
fromDir(filename, filter, callback); //recurse
}
else if (filter.test(filename)) callback(filename);
};
};
var packs = [];
fromDir(process.argv[2], /\.png$/, function (filename) {
let file = filename.substring(process.argv[2].length);
let parts = file.split("/");
2025-05-08 11:46:34 +02:00
let pack = parts[parts.length - 2];
let sticker = parts[parts.length - 1];
2021-09-25 14:35:38 +02:00
if (!packs[pack]) {
packs[pack] = [];
}
packs[pack].push(sticker);
});
var result = { baseUrl: "", packs: [] };
for (const pack of Object.keys(packs)) {
const stickers = packs[pack];
result.packs.push({ name: pack, stickers: stickers });
}
console.log(JSON.stringify(result, null, 2));