Changed the way you choose the proxy and added --listproxy

Signed-off-by: loicbersier <loic.bersier1@gmail.com>
This commit is contained in:
loicbersier 2020-08-25 03:11:01 +02:00
parent fb0d1b405c
commit 8abe1bd25c

View file

@ -17,7 +17,8 @@ class DownloadCommand extends Command {
type: 'url', type: 'url',
prompt: { prompt: {
start: 'Please send the URL of which video you want to download. Say `cancel` to stop the command', start: 'Please send the URL of which video you want to download. Say `cancel` to stop the command',
retry: 'Please send a valid URL of the video you want to download. Say `cancel` to stop the command' retry: 'Please send a valid URL of the video you want to download. Say `cancel` to stop the command',
optional: true
}, },
}, },
{ {
@ -32,22 +33,52 @@ class DownloadCommand extends Command {
}, },
{ {
id: 'proxy', id: 'proxy',
match: 'option',
flag: ['--proxy'],
},
{
id: 'listproxy',
match: 'flag', match: 'flag',
flag: ['--proxy'] flag: ['--listproxy', '--proxylist']
} }
], ],
description: { description: {
content: 'Download videos from different website from the link you provided, use "-s" to make the vid a spoiler', content: 'Download videos from different website from the link you provided, use `-s` to make the vid a spoiler, `--proxy #` to select a proxy, `--listproxy` to see a list of proxy',
usage: '[link] [caption]', usage: '[link] [caption]',
examples: ['https://www.youtube.com/watch?v=6n3pFFPSlW4 Look at this funny gnome'] examples: ['https://www.youtube.com/watch?v=6n3pFFPSlW4 Look at this funny gnome', 'https://www.youtube.com/watch?v=6n3pFFPSlW4 --proxy 1']
} }
}); });
} }
async exec(message, args) { async exec(message, args) {
if (!args.link) return message.channel.send('Please try again with a valid URL.');
if (args.listproxy) {
let proxys = [];
let i = 0;
proxy.forEach(proxy => {
i++;
proxys.push(`[${i}] ${ proxy.hidden ? '[IP HIDDEN]' : proxy.ip.substring(0, proxy.ip.length - 5)} - ${proxy.country}`);
});
const Embed = this.client.util.embed()
.setColor(message.member ? message.member.displayHexColor : 'NAVY')
.setTitle('List of available proxy')
.setDescription(proxys.join('\n'))
.setFooter('You can help me get more proxy by either donating to me or providing a proxy for me');
return message.channel.send(Embed);
}
let loadingmsg = await message.channel.send('Downloading <a:loadingmin:527579785212329984>'); let loadingmsg = await message.channel.send('Downloading <a:loadingmin:527579785212329984>');
let filename = `${message.id}_video`; let filename = `${message.id}_video`;
if (args.proxy) {
args.proxy = args.proxy -1;
if (!proxy[args.proxy]) args.proxy = 0;
}
if (args.spoiler) { if (args.spoiler) {
filename = `SPOILER_${message.id}_video`; filename = `SPOILER_${message.id}_video`;
} }
@ -58,7 +89,7 @@ class DownloadCommand extends Command {
.setDescription(args.caption ? args.caption : '') .setDescription(args.caption ? args.caption : '')
.setFooter(`You can get the original video by clicking on the "downloaded by ${message.author.username}" message!`); .setFooter(`You can get the original video by clicking on the "downloaded by ${message.author.username}" message!`);
downloader(args.link.href, args.proxy ? ['--proxy', proxy] : null, `${os.tmpdir()}/${filename}.mp4`) downloader(args.link.href, args.proxy ? ['--proxy', proxy[args.proxy].ip] : null, `${os.tmpdir()}/${filename}.mp4`)
.on('error', async err => { .on('error', async err => {
if (err.includes('HTTP Error 429: Too Many Requests')) return message.channel.send('`HTTP Error 429: Too Many Requests.`\nThe website you tried to download from probably has the bot blocked, you can try again with the `--proxy` option and hope it work.'); if (err.includes('HTTP Error 429: Too Many Requests')) return message.channel.send('`HTTP Error 429: Too Many Requests.`\nThe website you tried to download from probably has the bot blocked, you can try again with the `--proxy` option and hope it work.');
return message.channel.send(err, { code: true }); return message.channel.send(err, { code: true });