From d6e7243c33962a01bedd19a009fc3ce19e4acd03 Mon Sep 17 00:00:00 2001 From: NotForMyCV <155258061+NotForMyCV@users.noreply.github.com> Date: Sat, 20 Jul 2024 00:06:10 +0100 Subject: [PATCH] [discordPresence] Throttle presence updates (#365) --- plugins/discordPresence/discordPresence.js | 12 +++++++++++- plugins/discordPresence/discordPresence.yml | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/discordPresence/discordPresence.js b/plugins/discordPresence/discordPresence.js index 3e4e5f0..2dcf70c 100644 --- a/plugins/discordPresence/discordPresence.js +++ b/plugins/discordPresence/discordPresence.js @@ -85,6 +85,7 @@ const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); const player = () => document.querySelector("#VideoJsPlayer video"); + let WAITING_FOR_REFRESH = true; let SCENE_ID = null; /** @type {FlattenedSceneData?} */ let cachedSceneData; @@ -201,7 +202,16 @@ ); } - async function setDiscordActivity() { + async function setDiscordActivity(event) { + if (event?.type === "timeupdate") { + if (!WAITING_FOR_REFRESH) { + return; + } + + WAITING_FOR_REFRESH = false; + setTimeout(() => (WAITING_FOR_REFRESH = true), 5000); + } + const sceneData = await getSceneData(SCENE_ID); if (!sceneData) return; diff --git a/plugins/discordPresence/discordPresence.yml b/plugins/discordPresence/discordPresence.yml index 1c2ffb8..6a27da1 100644 --- a/plugins/discordPresence/discordPresence.yml +++ b/plugins/discordPresence/discordPresence.yml @@ -2,7 +2,7 @@ name: Discord Presence description: Sets currently playing scene data as your Discord status. See README for prerequisites and config options (blue hyperlink next to enable/disable button) url: https://github.com/stashapp/CommunityScripts/tree/main/plugins/discordPresence # requires: CommunityScriptsUILibrary -version: 1.1 +version: 1.2 settings: discordClientId: displayName: Custom Discord application ID