Я пытаюсь создать команду, которая ищет на YouTube URL-адрес видео. Когда я запускаю команду самостоятельно, она отправляет вставку с указанием сузить область поиска. Однако, когда я запускаю команду + запрос, он регистрирует большую часть информации о видео в консоли, но не указывает URL-адрес самого видео, а также ничего не отправляет на сервер. Он не регистрирует ошибки, и бот остается в сети. Как исправить эту проблему?
const opts = {
maxResults: 25,
key: '(youtube api key)',
type: 'video'
};
const search = require('youtube-search')
bot.on('message', async message => {
if(message.author.bot) return;
if(message.content.toLowerCase() === 'a!play') {
let embed = new Discord.MessageEmbed()
.setColor("#73ffdc")
.setDescription("Please enter a search query. Remember to narrow down your search.")
.setTitle("YouTube Search API");
let embedMsg = await message.channel.send(embed);
let filter = m => m.author.id === message.author.id;
let query = await message.channel.awaitMessages(filter, { max: 1 });
let results = await search(query.first().content, opts).catch(err => console.log(err));
if(results) {
let youtubeResults = results.results;
let i =0;
let titles = youtubeResults.map(result => {
i++;
return i + ") " + result.title;
});
console.log(titles);
message.channel.send({
embed: {
title: 'Select which song you want by typing the number',
description: titles.join("\n")
}
}).catch(err => console.log(err));
filter = m => (m.author.id === message.author.id) && m.content >= 1 && m.content <= youtubeResults.length;
let collected = await message.channel.awaitMessages(filter, { maxMatches: 1 });
let selected = youtubeResults[collected.first().content - 1];
embed = new Discord.MessageEmbed()
.setTitle(`${selected.title}`)
.setURL(`${selected.link}`)
.setDescription(`${selected.description}`)
.setThumbnail(`${selected.thumbnails.default.url}`);
message.channel.send(embed);
}
}
});