aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorThongrapee Panyapatiphan <[email protected]>2022-03-12 22:50:29 +0700
committerGitHub <[email protected]>2022-03-12 09:50:29 -0600
commit6c118dc965a282f55d838c555d9e6216be2f472c (patch)
tree12667ecc4530155c0db2ffc2f24361cfdccc3469 /src/utils
parenteac12eaade4def77c0e5dfba3c872918b24e9f51 (diff)
downloadmuse-6c118dc965a282f55d838c555d9e6216be2f472c.tar.xz
muse-6c118dc965a282f55d838c555d9e6216be2f472c.zip
Support for web streaming audio files (#550)
Co-authored-by: Max Isom <[email protected]>
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/build-embed.ts15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/utils/build-embed.ts b/src/utils/build-embed.ts
index cb9e634..1979f7d 100644
--- a/src/utils/build-embed.ts
+++ b/src/utils/build-embed.ts
@@ -1,6 +1,6 @@
import getYouTubeID from 'get-youtube-id';
import {MessageEmbed} from 'discord.js';
-import Player, {QueuedSong, STATUS} from '../services/player.js';
+import Player, {MediaSource, QueuedSong, STATUS} from '../services/player.js';
import getProgressBar from './get-progress-bar.js';
import {prettyTime} from './time.js';
import {truncate} from './string.js';
@@ -13,7 +13,11 @@ const getMaxSongTitleLength = (title: string) => {
return nonASCII.test(title) ? 28 : 48;
};
-const getSongTitle = ({title, url, offset}: QueuedSong, shouldTruncate = false) => {
+const getSongTitle = ({title, url, offset, source}: QueuedSong, shouldTruncate = false) => {
+ if (source === MediaSource.HLS) {
+ return `[${title}](${url})`;
+ }
+
const cleanSongTitle = title.replace(/\[.*\]/, '').trim();
const songTitle = shouldTruncate ? truncate(cleanSongTitle, getMaxSongTitleLength(cleanSongTitle)) : cleanSongTitle;
@@ -92,7 +96,12 @@ export const buildQueueEmbed = (player: Player, page: number): MessageEmbed => {
const queuedSongs = player
.getQueue()
.slice(queuePageBegin, queuePageEnd)
- .map((song, index) => `\`${index + 1 + queuePageBegin}.\` ${getSongTitle(song, true)} \`[${prettyTime(song.length)}]\``)
+ .map((song, index) => {
+ const songNumber = index + 1 + queuePageBegin;
+ const duration = song.isLive ? 'live' : prettyTime(song.length);
+
+ return `\`${songNumber}.\` ${getSongTitle(song, true)} \`[${duration}]\``;
+ })
.join('\n');
const {artist, thumbnailUrl, playlist, requestedBy} = currentlyPlaying;