diff --git a/commands/misc/dl.js b/commands/misc/dl.js index 60d209b..13d95df 100644 --- a/commands/misc/dl.js +++ b/commands/misc/dl.js @@ -1,7 +1,7 @@ -const { execFileSync } = require('child_process'); const path = require('path'); const fs = require('fs') +const executeCommand = require('../../util/executeCommand'); module.exports = { name: 'dl', description: 'Download a video', @@ -38,7 +38,7 @@ module.exports = { const originalMessage = await message.channel.send("Downloading video...") - if(this.executeCommand("yt-dlp", [url, "-P", downloadsDir, "--cookies", cookieFilepath]).error){ + if(executeCommand("yt-dlp", [url, "-P", downloadsDir, "--cookies", cookieFilepath]).error){ originalMessage.edit("An error occurred when downloading the video."); this.cleanUp(downloadsDir); return; @@ -68,18 +68,4 @@ module.exports = { fs.rmSync(downloadsDir, {force: true, recursive: true}); }, - executeCommand(command, commandArgs, verbose=false) { - if (typeof command !== 'string' || !Array.isArray(commandArgs)) return { error: true }; - console.log("Executing:", command, commandArgs.join(" ")); - try { - const output = execFileSync(command, commandArgs, {encoding: 'utf8'}) - if (output.length != 0 && verbose) - console.log(output) - } catch (error) { - console.error(`Error executing ${command} command:`, error); - return { error: true }; - } - return { error: false }; - }, - } diff --git a/commands/misc/tdoss.js b/commands/misc/tdoss.js index 6738dfa..e083116 100644 --- a/commands/misc/tdoss.js +++ b/commands/misc/tdoss.js @@ -3,7 +3,7 @@ const fs = require('fs'); const path = require('path'); const { writeFile } = require('node:fs/promises') const { Readable } = require('node:stream') - +const executeCommand = require('../../util/executeCommand'); module.exports = { name: 'tdoss', @@ -60,8 +60,8 @@ module.exports = { } - const command = `magick ${tdossTemplate} \\( ${directory}/input.png -resize 800x800^ -gravity center -extent 1000x1000 \\) -compose dst-over -composite ${directory}/tdoss_result.png`; - if (this.executeCommand(command).error === true) { + const commandArgs = [tdossTemplate, "\\(", `${directory}/input.png`, "-resize", "800x800^", "-gravity", "center", "-extent", "1000x1000", "\\)", "-compose", "dst-over", "-composite", `${directory}/tdoss_result.png`] + if (executeCommand("magick", commandArgs).error === true) { message.channel.send("Something went wrong during image manipulation.\nTry again and if it keeps happening, contact the owner of the bot.") fs.rmSync(`${directory}`, {recursive: true}) return @@ -75,20 +75,6 @@ module.exports = { await message.channel.send({files: [final_image]}) fs.rmSync(`${directory}`, {recursive: true}) }, - - - executeCommand(command) { - console.log("Executing:", command) - try { - const output = execSync(command, { encoding: 'utf-8' }) - if (output.length != 0) - console.log(output) - } catch (error) { - console.error(`Error executing ${command.split(" ")[0]} command:`, error); - return { error: true }; - } - return { error: false }; - }, // https://stackoverflow.com/a/77210219 async downloadImage(url, path) { let res; diff --git a/util/executeCommand.js b/util/executeCommand.js new file mode 100644 index 0000000..25bfd1d --- /dev/null +++ b/util/executeCommand.js @@ -0,0 +1,14 @@ +const { execFileSync } = require('child_process'); +module.exports = function(command, commandArgs, verbose=false) { + if (typeof command !== 'string' || !Array.isArray(commandArgs)) return { error: true }; + console.log("Executing:", command, commandArgs.join(" ")); + try { + const output = execFileSync(command, commandArgs, {encoding: 'utf8'}) + if (output.length != 0 && verbose) + console.log(output) + } catch (error) { + console.error(`Error executing ${command} command:`, error); + return { error: true }; + } + return { error: false }; +} \ No newline at end of file