From 72e600454fa4661fa05e3b3d8234c8ed9de3ec09 Mon Sep 17 00:00:00 2001 From: MatteZ02 <47610069+MatteZ02@users.noreply.github.com> Date: Wed, 23 Oct 2019 20:45:22 +0300 Subject: [PATCH] Update playlist.js --- commands/playlist.js | 72 +++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/commands/playlist.js b/commands/playlist.js index 8954b498..d884cf43 100644 --- a/commands/playlist.js +++ b/commands/playlist.js @@ -70,51 +70,53 @@ module.exports = { }; message.channel.send(":white_check_mark: Queue saved!"); } else if (args[1] === 'add') { - const youtube = new YouTube(client.config.apikey); - const searchString = args.slice(2).join(" "); - const url = args[2] ? args[2].replace(/<(.+)>/g, "$1") : ""; - if (!args[2]) return message.channel.send(':x: You need to use a link or search for a song!'); - try { - var video = await youtube.getVideo(url); - } catch (error) { + if (client.global.db.playlists[args[2]].saved) { + const youtube = new YouTube(client.config.apikey); + const searchString = args.slice(2).join(" "); + const url = args[2] ? args[2].replace(/<(.+)>/g, "$1") : ""; + if (!args[2]) return message.channel.send(':x: You need to use a link or search for a song!'); try { - var videos = await youtube.searchVideos(searchString, 10); - let index = 0; - const embed = new Discord.RichEmbed() - .setTitle("__Song Selection__") - .setDescription(`${videos.map(video2 => `**${++index}** ${he.decode(video2.title)} `).join('\n')}`) - .setFooter("Please provide a number ranging from 1-10 to select one of the search results.") - .setColor("#b50002") - message.channel.send(embed); + var video = await youtube.getVideo(url); + } catch (error) { try { - var response = await message.channel.awaitMessages(message2 => message2.content > 0 && message2.content < 11, { - maxMatches: 1, - time: 10000, - errors: ['time'] - }); + var videos = await youtube.searchVideos(searchString, 10); + let index = 0; + const embed = new Discord.RichEmbed() + .setTitle("__Song Selection__") + .setDescription(`${videos.map(video2 => `**${++index}** ${he.decode(video2.title)} `).join('\n')}`) + .setFooter("Please provide a number ranging from 1-10 to select one of the search results.") + .setColor("#b50002") + message.channel.send(embed); + try { + var response = await message.channel.awaitMessages(message2 => message2.content > 0 && message2.content < 11, { + maxMatches: 1, + time: 10000, + errors: ['time'] + }); + } catch (err) { + console.error(err); + return message.channel.send(':x: Cancelling video selection'); + } + const videoIndex = parseInt(response.first().content); + var video = await youtube.getVideoByID(videos[videoIndex - 1].id); } catch (err) { console.error(err); - return message.channel.send(':x: Cancelling video selection'); + return message.channel.send(':x: I could not obtain any search results!'); } - const videoIndex = parseInt(response.first().content); - var video = await youtube.getVideoByID(videos[videoIndex - 1].id); - } catch (err) { - console.error(err); - return message.channel.send(':x: I could not obtain any search results!'); } - } - let song = { - id: video.id, - title: Discord.Util.escapeMarkdown(video.title), - url: `https://www.youtube.com/watch?v=${video.id}` - } - client.global.db.playlists[message.guild.id].songs.push(song); - message.channel.send(`:white_check_mark: ${song.title} added to the playlist!`); + let song = { + id: video.id, + title: Discord.Util.escapeMarkdown(video.title), + url: `https://www.youtube.com/watch?v=${video.id}` + } + client.global.db.playlists[message.guild.id].songs.push(song); + message.channel.send(`:white_check_mark: ${song.title} added to the playlist!`); + } else return message.channel.send(':x: There is no playlist saved! Start by using the save option!') } else { const embed = new Discord.RichEmbed() .setTitle('Options for playlist!') .addField('play', 'Play the guild specific queue.', true) - .addField('save', 'Save the currently playing queue.', true) + .addField('save', 'Save the currently playing queue. Note that this will overwrite the currently saved queue!', true) .addField('add', 'Add songs to the playlist. Like song selection', true) .setFooter(`how to use: ${prefix}playlist