From 2ced493257f2c16f2b7162627392719d29175dfe Mon Sep 17 00:00:00 2001 From: yazninja Date: Fri, 28 Jan 2022 10:30:01 +0800 Subject: [PATCH 1/3] Add Open in Apple Music - discordRPC --- src/main/plugins/discordrpc.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index cf6f9b31..400f39e0 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -1,4 +1,5 @@ import * as RPC from 'discord-rpc' +import { app } from 'electron'; export default class DiscordRichPresence { @@ -14,7 +15,7 @@ export default class DiscordRichPresence { public name: string = 'Discord Rich Presence'; public description: string = 'Discord RPC plugin for Cider'; public version: string = '1.0.0'; - public author: string = 'vapormusic/Core (Cider Collective)'; + public author: string = 'yazninja/Core (Cider Collective)'; /** * Plugin Initialization @@ -101,9 +102,12 @@ export default class DiscordRichPresence { this._client.clearActivity().catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`)); return; } + let data = app.mk.api.v3.music(`/v1/me/library/songs/${app.mk.nowPlayingItem.id}`); + data = data.data.data[0]; + console.log("DISCORDRPC", data.attributes); const listenURL = `https://cider.sh/p?s&id=${attributes.playParams.id}` // cider://play/s/[id] (for song) - + this._activity = { details: attributes.name, state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`, @@ -112,11 +116,14 @@ export default class DiscordRichPresence { largeImageKey: (attributes.artwork.url.replace('{w}', '1024').replace('{h}', '1024')) ?? 'cider', largeImageText: attributes.albumName, instance: false, // Whether the activity is in a game session + buttons: [ {label: "Listen on Cider", url: listenURL}, + {label: "Open In Apple Music", url: data.attributes.url}, ] }; + // Checks if the name is greater than 128 because some songs can be that long if (this._activity.details && this._activity.details.length > 128) { this._activity.details = this._activity.details.substring(0, 125) + '...' From 499dc6af15766986dc1cdd8bd289925d5c1dbc25 Mon Sep 17 00:00:00 2001 From: yazninja Date: Fri, 28 Jan 2022 10:33:17 +0800 Subject: [PATCH 2/3] DiscordRPC - Add Open in Aplle Music Button --- src/main/plugins/discordrpc.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index 400f39e0..2a66fbe3 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -1,5 +1,4 @@ import * as RPC from 'discord-rpc' -import { app } from 'electron'; export default class DiscordRichPresence { @@ -15,7 +14,7 @@ export default class DiscordRichPresence { public name: string = 'Discord Rich Presence'; public description: string = 'Discord RPC plugin for Cider'; public version: string = '1.0.0'; - public author: string = 'yazninja/Core (Cider Collective)'; + public author: string = 'vapormusic/Core (Cider Collective)'; /** * Plugin Initialization @@ -102,10 +101,6 @@ export default class DiscordRichPresence { this._client.clearActivity().catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`)); return; } - let data = app.mk.api.v3.music(`/v1/me/library/songs/${app.mk.nowPlayingItem.id}`); - data = data.data.data[0]; - console.log("DISCORDRPC", data.attributes); - const listenURL = `https://cider.sh/p?s&id=${attributes.playParams.id}` // cider://play/s/[id] (for song) this._activity = { From f767fc72a947b40fcc815039411d0786f2e5d058 Mon Sep 17 00:00:00 2001 From: yazninja Date: Fri, 28 Jan 2022 11:03:54 +0800 Subject: [PATCH 3/3] Update discordrpc.ts (Core's solution) --- src/main/plugins/discordrpc.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index 2a66fbe3..fd250617 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -102,7 +102,6 @@ export default class DiscordRichPresence { return; } const listenURL = `https://cider.sh/p?s&id=${attributes.playParams.id}` // cider://play/s/[id] (for song) - this._activity = { details: attributes.name, state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`, @@ -114,7 +113,7 @@ export default class DiscordRichPresence { buttons: [ {label: "Listen on Cider", url: listenURL}, - {label: "Open In Apple Music", url: data.attributes.url}, + {label: "Open In Apple Music", url: attributes.songURL}, ] };