diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index af55e1d2..16db849d 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -198,7 +198,7 @@ export default class DiscordRPC { * @param attributes Music Attributes */ private setActivity(attributes: any) { - if (!this._client) { + if (!this._client || !attributes) { return; } @@ -219,6 +219,10 @@ export default class DiscordRPC { return; } + if (!activity) { + return; + } + if (!attributes.status && this._utils.getStoreValue("connectivity.discord_rpc.clear_on_pause")) { this._client.clearActivity(); } else if (activity && this._activityCache !== activity) { @@ -240,25 +244,16 @@ export default class DiscordRPC { viewOnOtherMusicServices: "songLink", }; - const firstActivity = { - label: this._utils.getLocale(this._utils.getStoreValue("general.language"), `settings.option.connectivity.discordRPC.buttons.${this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.first")}`), - url: activityUrls[this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.first")], - }; - const secondActivity = { - label: this._utils.getLocale(this._utils.getStoreValue("general.language"), `settings.option.connectivity.discordRPC.buttons.${this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.second")}`), - url: activityUrls[this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.second")], - }; + const firstActivity = this._utils.getLocale(this._utils.getStoreValue("general.language"), `settings.option.connectivity.discordRPC.buttons.${this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.first")}`); + const secondActivity = this._utils.getLocale(this._utils.getStoreValue("general.language"), `settings.option.connectivity.discordRPC.buttons.${this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.second")}`); if (this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.second") != "disabled") { activity.buttons = [ - { label: firstActivity.label, url: attributes.url[firstActivity.url] }, - { label: secondActivity.label, url: attributes.url[secondActivity.url] }, + { label: firstActivity, url: attributes.url[activityUrls[this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.first")]] }, + { label: secondActivity, url: attributes.url[activityUrls[this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.second")]] }, ]; - console.log(secondActivity); - console.log("Its not disabled"); } else { - activity.buttons = [{ label: firstActivity.label, url: attributes.url[firstActivity.url] }]; - console.log("Its disabled"); + activity.buttons = [{ label: firstActivity, url: attributes.url[activityUrls[this._utils.getStoreValue("connectivity.discord_rpc.activity.buttons.first")]] }]; } } @@ -328,6 +323,10 @@ export default class DiscordRPC { if (!activity.largeImageText || activity.largeImageText.length < 2) { delete activity.largeImageText; } + + if (activity.status === "" || activity.details === "") { + return false; + } return activity; } } diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 55a3a213..099791d7 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -9,6 +9,7 @@ const MusicKitInterop = { /* MusicKit.Events.playbackStateDidChange */ MusicKit.getInstance().addEventListener(MusicKit.Events.playbackStateDidChange, () => { const attributes = MusicKitInterop.getAttributes(); + if (!attributes) return; if (MusicKitInterop.filterTrack(attributes, true, false)) { global.ipcRenderer.send("playbackStateDidChange", attributes); global.ipcRenderer.send("wsapi-updatePlaybackState", attributes); @@ -18,6 +19,7 @@ const MusicKitInterop = { /* MusicKit.Events.playbackProgressDidChange */ MusicKit.getInstance().addEventListener(MusicKit.Events.playbackProgressDidChange, async () => { const attributes = MusicKitInterop.getAttributes(); + if (!attributes) return; // wsapi call ipcRenderer.send("wsapi-updatePlaybackState", attributes); // lastfm call @@ -34,8 +36,8 @@ const MusicKitInterop = { /* MusicKit.Events.nowPlayingItemDidChange */ MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => { - console.debug("[cider:preload] nowPlayingItemDidChange"); const attributes = MusicKitInterop.getAttributes(); + if (!attributes) return; attributes.primaryArtist = app.cfg.connectivity.lastfm.remove_featured ? await this.fetchSongRelationships() : attributes.artistName; global.ipcRenderer.send("nowPlayingItemDidChange", attributes); @@ -54,6 +56,7 @@ const MusicKitInterop = { await this.sleep(750); MusicKit.getInstance().playbackRate = app.cfg.audio.playbackRate; } + console.debug("[cider:preload] nowPlayingItemDidChange"); }); /* MusicKit.Events.authorizationStatusDidChange */ @@ -159,6 +162,10 @@ const MusicKitInterop = { attributes.currentPlaybackProgress = currentPlaybackProgress ?? 0; attributes.startTime = Date.now(); attributes.endTime = Math.round(attributes?.playParams?.id === cache.playParams.id ? Date.now() + attributes?.remainingTime : attributes?.startTime + attributes?.durationInMillis); + + if (attributes.name === "no-title-found") { + return; + } return attributes; },