diff --git a/commands/utility/download.js b/commands/utility/download.js index 5e79b987..eaad77ca 100644 --- a/commands/utility/download.js +++ b/commands/utility/download.js @@ -17,11 +17,6 @@ class DownloadCommand extends Command { start: 'Send the link of wich video you want to download', } }, - { - id: 'alt', - match: 'flag', - flag: '--alt' - }, { id: 'spoiler', match: 'flag', @@ -39,7 +34,6 @@ class DownloadCommand extends Command { async exec(message, args) { let link = args.link; - let needCompress = false; let fileName; if (args.spoiler) { @@ -51,107 +45,73 @@ class DownloadCommand extends Command { if (link.includes('http') || link.includes('www')) { let loadingmsg = await message.channel.send('Downloading '); - if (args.alt) { - console.log('alt download!'); - if (fs.existsSync(`${os.tmpdir()}/${fileName}.mp4`)) { - fs.unlink(`${os.tmpdir()}/${fileName}.mp4`, (err) => { - if (err); - }); - } - return youtubedl.exec(args.link, ['-o', `${os.tmpdir()}/${fileName}.mp4`], {}, async function(err, output) { - if (err) throw err; - console.log(output.join('\n')); - message.delete(); - loadingmsg.delete(); - message.channel.send(`Downloaded by ${message.author.username}`, { files: [`${os.tmpdir()}/${fileName}.mp4`] }) - .catch(err => { - console.error(err); - loadingmsg.delete(); - return message.channel.send('File too big'); - }); + if (fs.existsSync(`${os.tmpdir()}/${fileName}.mp4`)) { + fs.unlink(`${os.tmpdir()}/${fileName}.mp4`, (err) => { + if (err); }); } + return youtubedl.exec(args.link, ['-o', `${os.tmpdir()}/${fileName}.mp4`], {}, async function(err, output) { + if (err) { + console.error(err); + loadingmsg.delete(); + return message.channel.send('An error has occured, I can\'t download from the link you provided.'); + } + console.log(output.join('\n')); + let file = fs.statSync(`${os.tmpdir()}/${fileName}.mp4`); + let fileSize = file.size / 1000000.0; - let video = youtubedl(link); - video.pipe(fs.createWriteStream(`${os.tmpdir()}/${fileName}.mp4`)); - video.on('error', async function error(err) { - console.log('error 2:', err); - loadingmsg.delete(); - message.channel.send('An error has occured, I can\'t download from the link you provided.'); - }); - - video.on('info', async function(info) { - let duration = info.duration; - if (duration) { - duration = duration.replace(/:/g, ''); - - if (duration > 500) { - video.pause(); - video.unpipe(); - loadingmsg.delete(); - return message.channel.send('Can\'t download video longer than 5 minutes'); - } - } - - console.log('Download started'); - console.log('filename: ' + info._filename); - console.log('size: ' + info.size); + console.log(fileSize); + //Compress vid if bigger than 8MB + if (fileSize > 8) { + console.log('file bigger than 8MB'); + let compressmsg = await message.channel.send('Video bigger than 8MB compressing now (This can take a long time!)\nWant it to go faster? Donate to the dev with the donate command, so i can get a better server and do it faster!'); + loadingmsg.delete(); - if (info.size >= 8000000) { - needCompress = true; - } - }); - video.on('end', async function () { - if (!needCompress) { + const options = { + input: `${os.tmpdir()}/${fileName}.mp4`, + output: `${os.tmpdir()}/${fileName}compressed.mp4`, + preset: 'General/Gmail Small 10 Minutes 288p30' + }; + + let handbrake = hbjs.spawn(options); + handbrake.on('error', err => { + console.error(err); + compressmsg.delete(); + return message.channel.send('An error has occured while compressing the video'); + }); + handbrake.on('progress', progress => { + console.log( + 'Percent complete: %s, ETA: %s', + progress.percentComplete, + progress.eta + ); + }); + handbrake.on('end', async function () { + message.delete(); + compressmsg.delete(); + return message.channel.send(`Downloaded by ${message.author.username}`, { files: [`${os.tmpdir()}/${fileName}compressed.mp4`] }) + .catch(err => { + console.error(err); + compressmsg.delete(); + return message.channel.send('File too big'); + }); + }); + } else { + console.log('file smaller than 8MB'); message.delete(); loadingmsg.delete(); return message.channel.send(`Downloaded by ${message.author.username}`, { files: [`${os.tmpdir()}/${fileName}.mp4`] }) .catch(err => { console.error(err); loadingmsg.delete(); - return message.channel.send('File too big'); + return message.channel.send('File too big'); }); } - - let compressmsg = await message.channel.send('Video bigger than 8MB compressing now (This can take a long time!)\nWant it to go faster? Donate to the dev with the donate command, so i can get a better server and do it faster!'); - loadingmsg.delete(); - - const options = { - input: `${os.tmpdir()}/${fileName}.mp4`, - output: `${os.tmpdir()}/${fileName}compressed.mp4`, - preset: 'General/Gmail Small 10 Minutes 288p30' - }; - - //Compress vid if bigger than 8MB - let handbrake = hbjs.spawn(options); - handbrake.on('error', err => { - console.error(err); - compressmsg.delete(); - return message.channel.send('An error has occured while compressing the video'); - }); - handbrake.on('progress', progress => { - console.log( - 'Percent complete: %s, ETA: %s', - progress.percentComplete, - progress.eta - ); - }); - handbrake.on('end', async function () { - message.delete(); - compressmsg.delete(); - return message.channel.send(`Downloaded by ${message.author.username}`, { files: [`${os.tmpdir()}/${fileName}compressed.mp4`] }) - .catch(err => { - console.error(err); - compressmsg.delete(); - return message.channel.send('File too big'); - }); - }); }); - } else { - return message.channel.send('You need to input a valid link'); } + return message.channel.send('You need to input a valid link'); } }