поиск на YouTube не получает URL - PullRequest
3 голосов
/ 30 мая 2020

Я пытаюсь создать команду, которая ищет на 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);
      }
  }
});
...