diff options
| author | Thongrapee Panyapatiphan <[email protected]> | 2022-03-12 22:50:29 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-03-12 09:50:29 -0600 |
| commit | 6c118dc965a282f55d838c555d9e6216be2f472c (patch) | |
| tree | 12667ecc4530155c0db2ffc2f24361cfdccc3469 /src/utils | |
| parent | eac12eaade4def77c0e5dfba3c872918b24e9f51 (diff) | |
| download | muse-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.ts | 15 |
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; |
