diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index fb76643d..fd23e307 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -101,9 +101,7 @@ export default class DiscordRichPresence { this._client.clearActivity().catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`)); return; } - const listenURL = `https://cider.sh/p?s&id=${attributes.playParams.id}` // cider://play/s/[id] (for song) - const amURL = `https://music.apple.com/${attributes.storefrontId}/song/${attributes.playParams.catalogId || attributes.playParams.id}`; - console.log("DiscordRPC URL: ", amURL); + this._activity = { details: attributes.name, state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`, @@ -114,8 +112,8 @@ export default class DiscordRichPresence { instance: false, // Whether the activity is in a game session buttons: [ - {label: "Listen on Cider", url: listenURL}, - {label: "View on Apple Music", url: amURL}, + {label: "Listen on Cider", url: attributes.url.cider}, + {label: "View on Apple Music", url: attributes.url.appleMusic}, ] }; diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 43627aa9..e7c4b982 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -8,7 +8,6 @@ const MusicKitInterop = { init: function () { MusicKit.getInstance().addEventListener(MusicKit.Events.playbackStateDidChange, () => { if (MusicKitInterop.filterTrack(MusicKitInterop.getAttributes(), true, false)) { - console.log("ayy"); global.ipcRenderer.send('playbackStateDidChange', MusicKitInterop.getAttributes()) ipcRenderer.send('wsapi-updatePlaybackState', MusicKitInterop.getAttributes()); // if (typeof _plugins != "undefined") { @@ -39,11 +38,12 @@ const MusicKitInterop = { }, getAttributes: function () { - const nowPlayingItem = MusicKit.getInstance().nowPlayingItem; - const isPlayingExport = MusicKit.getInstance().isPlaying; - const remainingTimeExport = MusicKit.getInstance().currentPlaybackTimeRemaining; + const mk = MusicKit.getInstance() + const nowPlayingItem = mk.nowPlayingItem; + const isPlayingExport = mk.isPlaying; + const remainingTimeExport = mk.currentPlaybackTimeRemaining; const attributes = (nowPlayingItem != null ? nowPlayingItem.attributes : {}); - const storefrontId = MusicKit.getInstance().storefrontId; + attributes.storefrontId = storefrontId; attributes.status = isPlayingExport ?? false; attributes.name = attributes?.name ?? 'No Title Found'; @@ -51,6 +51,8 @@ const MusicKitInterop = { attributes.artwork.url = (attributes?.artwork?.url ?? '').replace(`{f}`,"png"); attributes.playParams = attributes?.playParams ?? { id: 'no-id-found' }; attributes.playParams.id = attributes?.playParams?.id ?? 'no-id-found'; + attributes.playParams.songid = nowPlayingItem.songId ?? 'no-id-found' + attribtues.url = { cider: "https://cider.sh/p?id=" + attributes.playParams.id, appleMusic: "https://music.apple.com/song/" + nowPlayingItem.songId } if (attributes.playParams.id === 'no-id-found') { attributes.playParams.id = nowPlayingItem?.id ?? 'no-id-found'; } attributes.albumName = attributes?.albumName ?? ''; attributes.artistName = attributes?.artistName ?? ''; @@ -105,4 +107,4 @@ const MusicKitInterop = { process.once('loaded', () => { console.log("Setting ipcRenderer") global.MusicKitInterop = MusicKitInterop; -}); \ No newline at end of file +});