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