· 6 years ago · Dec 27, 2019, 03:50 AM
1const Discord = require('discord.js');
2const{ prefix, token, youtube_token} = require('./config.json');
3const cilent = new Discord.Client();
4const search = require('youtube-search');
5
6const opts = {
7 maxResult : 1,
8 key : 'youtube_token',
9 type : 'Video',
10 videoDuration : 'short'
11};
12
13
14
15
16cilent.once('ready', () =>{
17 console.log('Ready!')
18});
19
20cilent.on('message', async message => {
21 if(message.author.bot) return;
22
23 if(message.content.toLowerCase() === '!search') {
24 let embed = new Discord.RichEmbed()
25 .setColor("#73ffdc")
26 .setDescription("Please enter a search query. Remember to narrow down your search.")
27 .setTitle("YouTube Search API");
28 let embedMsg = await message.channel.send(embed);
29 let filter = m => m.author.id === message.author.id;
30 let query = await message.channel.awaitMessages(filter, { max: 1 });
31 let results = await search(query.first().content, opts).catch(err => console.log(err));
32 if(results) {
33 let youtubeResults = results.results;
34 let i =0;
35 let titles = youtubeResults.map(result => {
36 i++;
37 return i + ") " + result.title;
38 });
39 console.log(titles);
40 message.channel.send({
41 embed: {
42 title: 'Select which song you want by typing the number',
43 description: titles.join("\n")
44 }
45 }).catch(err => console.log(err));
46
47 filter = m => (m.author.id === message.author.id) && m.content >= 1 && m.content <= youtubeResults.length;
48 let collected = await message.channel.awaitMessages(filter, { maxMatches: 1 });
49 let selected = youtubeResults[collected.first().content - 1];
50
51 embed = new Discord.RichEmbed()
52 .setTitle(`${selected.title}`)
53 .setURL(`${selected.link}`)
54 .setDescription(`${selected.description}`)
55 .setThumbnail(`${selected.thumbnails.default.url}`);
56
57 message.channel.send(embed);
58 }
59 }
60});
61
62
63cilent.login(token);