diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 6f8505eb..47d2e35b 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -83,7 +83,7 @@ const MusicKitInterop = { }); }, - async fetchPrimaryArtist() { + async fetchPrimaryArtist(returnType = "name") { const songID = app.mk.nowPlayingItem.attributes.playParams.catalogId || app.mk.nowPlayingItem.attributes.playParams.id; const res = await MusicKit.getInstance().api.v3.music("/v1/catalog/" + MusicKit.getInstance().storefrontId + `/songs/${songID}`, { include: { @@ -107,7 +107,11 @@ const MusicKitInterop = { } const primaryArtist = artistData[0]; - return primaryArtist.attributes.name; + if (returnType === "name") { + return primaryArtist.attributes.name; + } else if (returnType === "id") { + return primaryArtist.id; + } }, getAttributes: function () { diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index b3f54745..2b590a12 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -4535,8 +4535,13 @@ const app = new Vue({ { icon: "./assets/feather/user.svg", name: app.getLz("action.goToArtist"), - action: function () { - app.appRoute(`artist/${app.mk.nowPlayingItem.relationships.artists.data[0].id}`); + action: async function () { + if (app.mk.nowPlayingItem.relationships.artists.data[0].id) { + app.appRoute(`artist/${app.mk.nowPlayingItem.relationships.artists.data[0].id}`); + } else { + const id = await MusicKitInterop.fetchPrimaryArtist("id") + app.appRoute(`artist/${id}`); + } }, }, {