43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
const spotify = require('../music_sources/spotify');
|
|
const soundcloud = require('../music_sources/soundcloud');
|
|
const youtube = require('../music_sources/youtube');
|
|
|
|
const { StreamType } = require('@discordjs/voice');
|
|
|
|
async function getMusicStream(query) {
|
|
let stream;
|
|
let songTitle;
|
|
let songDuration;
|
|
let type = StreamType.Opus;
|
|
|
|
if (query.includes('spotify.com')) {
|
|
stream = await spotify.getStream(query);
|
|
songTitle = stream.title;
|
|
songDuration = stream.duration;
|
|
stream = stream.stream;
|
|
|
|
} else if (query.includes('soundcloud.com')) {
|
|
stream = await soundcloud.getStream(query);
|
|
songTitle = stream.title;
|
|
songDuration = stream.duration;
|
|
stream = stream.stream;
|
|
type = StreamType.OggOpus;
|
|
|
|
} else {
|
|
stream = await youtube.getStream(query)
|
|
songTitle = stream?.title ?? 'Unknown';
|
|
songDuration = stream?.duration ?? 'Unknown';
|
|
stream = stream?.stream;
|
|
type = StreamType.Opus;
|
|
}
|
|
|
|
return {
|
|
title: songTitle,
|
|
duration: songDuration,
|
|
stream: stream,
|
|
type: type
|
|
};
|
|
}
|
|
|
|
module.exports.getMusicStream = getMusicStream;
|