1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
const { VoiceChannel, TextChannel, MessageEmbed } = require("discord.js");
const axios = require('axios').default;
const instance = axios.create({
baseURL: 'http://retrowave.ru/api/v1'
});
require('dotenv').config();
const resourceUrl = 'http://retrowave.ru'
async function broadcastRadio(client, args, message, voiceChannel, textChannel) {
const connection = await voiceChannel.join();
try {
playRadioRetroWave(connection, textChannel);
} catch (error) {
console.log(error);
textChannel.send('Something went wrong. RADIO MON got ill...😱😱');
}
}
async function playRadioRetroWave(connection, textChannel) {
const nextMusic = await getNextMusic();
const { id, title, streamUrl, artworkUrl } = nextMusic;
const nowPlayingMessage = new MessageEmbed()
.setTitle("Now Playing")
.setDescription(title)
.setColor('LUMINOUS_VIVID_PINK')
.setThumbnail(`${resourceUrl}${artworkUrl}`);
textChannel.send(nowPlayingMessage);
connection.play(`${resourceUrl}${streamUrl}`, { seek: 0, volume: 1 })
.on('finish', () => {
playRadio(connection, textChannel);
});
}
async function getNextMusic() {
const result = await instance.get('/tracks?cursor=1&limit=1');
return result.data.body.tracks[0];
}
module.exports = {
async execute(client, message, args) {
if(message.author.id !== process.env.ADMIN_ID) return;
const { RADIO_CHANNEL, NOW_PLAYING_CHANNEL } = process.env;
if (!RADIO_CHANNEL) return message.reply(`Please add RADIO_CHANNEL to .env with a Voice Channel ID`);
if (!NOW_PLAYING_CHANNEL) return message.reply(`Please add NOW_PLAYING_CHANNEL to .env with a Text Channel ID`);
const voiceChannel = await client.channels.fetch(process.env.RADIO_CHANNEL);
const nowPlayingChannel = await client.channels.fetch(process.env.NOW_PLAYING_CHANNEL);
if (!(voiceChannel instanceof VoiceChannel)) return message.reply(`Please provice a Voice Channel ID to the RADIO_CHANNEL`);
if (!(nowPlayingChannel instanceof TextChannel)) return message.reply(`Please provice a Text Channel ID to the NOW_PLAYING_CHANNEL`);
broadcastRadio(client, args, message, voiceChannel, nowPlayingChannel);
}
}
|