Add Open in Apple Music - discordRPC

This commit is contained in:
yazninja 2022-01-28 10:30:01 +08:00
parent 0920858aa5
commit 2ced493257

View file

@ -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) + '...'