From 0c0cb0501c83a1a817f9814776fbf6f4ced26bea Mon Sep 17 00:00:00 2001 From: slyde99 Date: Tue, 23 Aug 2022 21:00:52 +0800 Subject: [PATCH] Add an option to hide duration before the song ends --- config/defaults.js | 1 + plugins/discord/back.js | 4 ++-- plugins/discord/menu.js | 9 +++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/config/defaults.js b/config/defaults.js index 008e4283..84269b8b 100644 --- a/config/defaults.js +++ b/config/defaults.js @@ -49,6 +49,7 @@ const defaultConfig = { activityTimoutEnabled: true, // if enabled, the discord rich presence gets cleared when music paused after the time specified below activityTimoutTime: 10 * 60 * 1000, // 10 minutes listenAlong: true, // add a "listen along" button to rich presence + displayDurationLeft: true, // add the start and end time of the song to rich presence }, notifications: { enabled: false, diff --git a/plugins/discord/back.js b/plugins/discord/back.js index da25b1ef..30ff95e1 100644 --- a/plugins/discord/back.js +++ b/plugins/discord/back.js @@ -70,7 +70,7 @@ let clearActivity; */ let updateActivity; -module.exports = (win, { activityTimoutEnabled, activityTimoutTime, listenAlong }) => { +module.exports = (win, { activityTimoutEnabled, activityTimoutTime, listenAlong, hideDurationLeft }) => { window = win; // We get multiple events // Next song: PAUSE(n), PAUSE(n+1), PLAY(n+1) @@ -117,7 +117,7 @@ module.exports = (win, { activityTimoutEnabled, activityTimoutTime, listenAlong // Set start the timer so the activity gets cleared after a while if enabled if (activityTimoutEnabled) clearActivity = setTimeout(() => info.rpc.clearActivity().catch(console.error), activityTimoutTime ?? 10000); - } else { + } else if (!hideDurationLeft) { // Add the start and end time of the song const songStartTime = Date.now() - songInfo.elapsedSeconds * 1000; activityInfo.startTimestamp = songStartTime; diff --git a/plugins/discord/menu.js b/plugins/discord/menu.js index 8dba9ffa..5ce72704 100644 --- a/plugins/discord/menu.js +++ b/plugins/discord/menu.js @@ -40,6 +40,15 @@ module.exports = (win, options, refreshMenu) => { setMenuOptions('discord', options); }, }, + { + label: "Hide duration left", + type: "checkbox", + checked: options.hideDurationLeft, + click: (item) => { + options.hideDurationLeft = item.checked; + setMenuOptions('discord', options); + } + }, { label: "Set inactivity timeout", click: () => setInactivityTimeout(win, options),