const { MessageEmbed } = require("discord.js"); const YouTubeAPI = require("simple-youtube-api"); const { YOUTUBE_API_KEY } = require("../../util/LanBot"); const youtube = new YouTubeAPI(YOUTUBE_API_KEY); const { MESSAGES } = require("../../util/constants"); module.exports.run = async (client, message, args, settings) => { if (message.channel.activeCollector) return message.reply("Un collecteur de messages est déjà actif dans ce canal."); if (!message.member.voice.channel) return message.reply("Vous devez d'abord rejoindre un canal vocal!").catch(console.error); const search = args.join(" "); let resultsEmbed = new MessageEmbed() .setTitle("**Répondez avec le numéro de la chanson que vous souhaitez écouter**") .setDescription(`Résultat pour: ${search}`) .setColor("#F8AA2A"); try { const results = await youtube.searchVideos(search, 10); results.map((video, index) => resultsEmbed.addField(video.shortURL, `${index + 1}. ${video.title}`)); let resultsMessage = await message.channel.send(resultsEmbed); function filter(msg) { const pattern = /^[0-9]{1,2}(\s*,\s*[0-9]{1,2})*$/; return pattern.test(msg.content); } message.channel.activeCollector = true; const response = await message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ["time"] }); const reply = response.first().content; if (reply.includes(",")) { let songs = reply.split(",").map((str) => str.trim()); for (let song of songs) { await message.client.commands .get("play") .execute(message, [resultsEmbed.fields[parseInt(song) - 1].name]); } } else { const choice = resultsEmbed.fields[parseInt(response.first()) - 1].name; message.client.commands.get("play").execute(message, [choice]); } message.channel.activeCollector = false; resultsMessage.delete().catch(console.error); response.first().delete().catch(console.error); } catch (error) { console.error(error); message.channel.activeCollector = false; message.reply("lantium a encore chié sur le code ! ").catch(console.error); } } module.exports.help = MESSAGES.COMMANDS.MUSIQUE.SEARCH;