From 26562317caa8a601dbb8dc6320845a1a386bf36a Mon Sep 17 00:00:00 2001 From: bignutty <3515180-bignutty@users.noreply.gitlab.com> Date: Fri, 13 Sep 2024 00:39:50 +0200 Subject: [PATCH] fix yt thumbnail issue, sync ctx and regular audio command --- commands/interaction/context/audio.js | 17 ++++++++++++----- commands/message/search/audio.js | 12 ++++++++---- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/commands/interaction/context/audio.js b/commands/interaction/context/audio.js index 18e00f6..a03c094 100644 --- a/commands/interaction/context/audio.js +++ b/commands/interaction/context/audio.js @@ -29,23 +29,30 @@ module.exports = { let urls = message.content.match(urlr) if(urls){ try{ - let songlink = await superagent.get(`https://api.song.link/v1-alpha.1/links?url=${encodeURIComponent(urls[0])}`) + let songlink = await superagent.get(`https://api.song.link/v1-alpha.1/links`) + .query({ + url: urls[0], + key: process.env.SONGLINK_KEY + }) let song = songlink.body.entitiesByUniqueId[songlink.body.entityUniqueId] + + // YT Playlist thumbnails don't work properly + if(songlink.body.entityUniqueId.startsWith("YOUTUBE_PLAYLIST") && Object.keys(songlink.body.entitiesByUniqueId).length >= 2){ + song.thumbnailUrl = songlink.body.entitiesByUniqueId[Object.keys(songlink.body.entitiesByUniqueId).filter((k)=>!k.startsWith("YOUTUBE_PLAYLIST"))[0]].thumbnailUrl + } let btns = renderMusicButtons(songlink.body.linksByPlatform) return editOrReply(context, {embeds:[ - createEmbed("default", context, { + createEmbed("defaultNoFooter", context, { author: { name: `${song.title} by ${song.artistName}`.substr(0,1000), iconUrl: song.thumbnailUrl, url: urls[0] - }, - footer: { - text: `powered by song.link • ${context.application.name}` } }) ], components: btns }) }catch(e){ + console.log(e) return editOrReply(context, createEmbed("warning", context, "No results found.")) } } else { diff --git a/commands/message/search/audio.js b/commands/message/search/audio.js index 9938a16..72df278 100644 --- a/commands/message/search/audio.js +++ b/commands/message/search/audio.js @@ -41,23 +41,27 @@ module.exports = { }) let song = songlink.body.entitiesByUniqueId[songlink.body.entityUniqueId] + // YT Playlist thumbnails don't work properly + if(songlink.body.entityUniqueId.startsWith("YOUTUBE_PLAYLIST") && Object.keys(songlink.body.entitiesByUniqueId).length >= 2){ + song.thumbnailUrl = songlink.body.entitiesByUniqueId[Object.keys(songlink.body.entitiesByUniqueId).filter((k)=>!k.startsWith("YOUTUBE_PLAYLIST"))[0]].thumbnailUrl + } + let btns = renderMusicButtons(songlink.body.linksByPlatform) return editOrReply(context, { embeds: [ - createEmbed("default", context, { + createEmbed("defaultNoFooter", context, { author: { name: `${song.title} by ${song.artistName}`.substr(0, 1000), iconUrl: song.thumbnailUrl, url: urls[0] - }, - footer: {} + } }) ], components: btns }) } } catch (e) { console.log(e) - return editOrReply(context, createEmbed("error", context, `Unable to perform song search.`)) + return editOrReply(context, createEmbed("warning", context, `No results found.`)) } }, }; \ No newline at end of file