Skip to content

Commit 981fb09

Browse files
author
Anson Foong
committed
youtube-search bot
1 parent f512bda commit 981fb09

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

youtube-search/bot.js

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

0 commit comments

Comments
 (0)