mirror of
https://github.com/captbaritone/webamp.git
synced 2026-01-23 18:25:30 +00:00
| .. | ||
| collectSkins.js | ||
| color.js | ||
| constants.js | ||
| index.js | ||
| readme.js | ||
| shooter.js | ||
| takeScreenshots.js | ||
| utils.js | ||
const { exec } = require("child_process");
const reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/gi;
const extract = (value) => (value && value.match(reg)) || [];
async function extractTextData(skinPath) {
const ignoreFiles = [
"genex.txt",
"genexinfo.txt",
"gen_gslyrics.txt",
"region.txt",
"pledit.txt",
"viscolor.txt",
"winampmb.txt",
"gen_ex help.txt",
"mbinner.txt",
// Skinning Updates.txt ?
];
const ignoreArgs = ignoreFiles
.map((file) => `-x "**/${file}" ${file}`)
.join(" ");
// Change -p to -c to get context of which file is missing
const debug = false;
const listFlag = debug ? "-c" : "-p";
// TODO: Escape path
const cmd = `unzip ${listFlag} -C "${skinPath}" "file_id.diz" "*.txt" ${ignoreArgs}`;
const raw = await new Promise((resolve) => {
exec(cmd, (error, stdout) => {
if (error != null) {
// reject(error);
// return;
}
resolve(stdout);
});
});
return { raw, emails: extract(raw) };
}
module.exports = {
extractTextData,
};