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