diff --git a/src/constants/settings.ts b/src/constants/settings.ts index 73539cf..78fce85 100644 --- a/src/constants/settings.ts +++ b/src/constants/settings.ts @@ -30,6 +30,7 @@ export const settings = { buttonText: "discord.buttonText", includeTimestamps: "discord.includeTimestamps", showSong: "discord.showSong", + showIdle: "discord.showIdle", idleText: "discord.idleText", usingText: "discord.usingText", }, diff --git a/src/pages/settings/preload.ts b/src/pages/settings/preload.ts index 81a537e..498988b 100644 --- a/src/pages/settings/preload.ts +++ b/src/pages/settings/preload.ts @@ -58,6 +58,7 @@ let adBlock: HTMLInputElement, discord_include_timestamps: HTMLInputElement, discord_button_text: HTMLInputElement, discord_show_song: HTMLInputElement, + discord_show_idle: HTMLInputElement, discord_idle_text: HTMLInputElement, discord_using_text: HTMLInputElement; @@ -151,6 +152,7 @@ function refreshSettings() { discord_include_timestamps.checked = settingsStore.get(settings.discord.includeTimestamps); discord_button_text.value = settingsStore.get(settings.discord.buttonText); discord_show_song.checked = settingsStore.get(settings.discord.showSong); + discord_show_idle.checked = settingsStore.get(settings.discord.showIdle); discord_idle_text.value = settingsStore.get(settings.discord.idleText); discord_using_text.value = settingsStore.get(settings.discord.usingText); @@ -269,6 +271,7 @@ window.addEventListener("DOMContentLoaded", () => { listenbrainz_delay = get("listenbrainz_delay"); discord_button_text = get("discord_button_text"); discord_show_song = get("discord_show_song"); + discord_show_idle = get("discord_show_idle"); discord_using_text = get("discord_using_text"); discord_idle_text = get("discord_idle_text"); @@ -312,6 +315,7 @@ window.addEventListener("DOMContentLoaded", () => { settings.discord.showSong, switchesWithSettings.discord_show_song ); + addInputListener(discord_show_idle, settings.discord.showIdle); addInputListener(discord_idle_text, settings.discord.idleText); addInputListener(discord_using_text, settings.discord.usingText); }); diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 59592b2..2e502a2 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -227,6 +227,17 @@

Discord RPC

+
+
+

Show Idle Text

+

Should the idle text be shown when idle?

+
+ +
+

Idle Text

diff --git a/src/scripts/discord.ts b/src/scripts/discord.ts index 8e7c943..0408807 100644 --- a/src/scripts/discord.ts +++ b/src/scripts/discord.ts @@ -14,6 +14,10 @@ export let rpc: Client; const observer = () => { if (rpc) { + const showIdle = settingsStore.get(settings.discord.showIdle) ?? true; + if (mediaInfo.status === MediaStatus.paused && !showIdle) { + rpc.clearActivity(); + } else rpc.setActivity(getActivity()); } }; @@ -90,6 +94,10 @@ export const initRPC = () => { rpc.login({ clientId }).then( () => { rpc.on("ready", () => { + const showIdle = settingsStore.get(settings.discord.showIdle) ?? true; + if (mediaInfo.status === MediaStatus.paused && !showIdle) { + rpc.clearActivity(); + } else rpc.setActivity(getActivity()); }); ipcMain.on(globalEvents.updateInfo, observer); diff --git a/src/scripts/settings.ts b/src/scripts/settings.ts index 4ed3167..0d78af9 100644 --- a/src/scripts/settings.ts +++ b/src/scripts/settings.ts @@ -43,6 +43,7 @@ export const settingsStore = new Store({ enableDiscord: false, discord: { showSong: true, + showIdle: true, idleText: "Browsing Tidal", usingText: "Playing media on TIDAL", includeTimestamps: true,