From 99e9be8217dab245be468e75cda5497522acd71d Mon Sep 17 00:00:00 2001 From: wont-stream <143244075+wont-stream@users.noreply.github.com> Date: Sun, 6 Apr 2025 21:35:43 -0400 Subject: [PATCH] Send heartbeat to lanyard --- public/js/index.js | 51 +++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/public/js/index.js b/public/js/index.js index 8b40b41..573e6a5 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -108,6 +108,15 @@ if (userId && instanceUri) { socket.addEventListener("message", (event) => { const payload = JSON.parse(event.data); + if (payload.op === 1) { + setInterval(() => { + socket.send( + JSON.stringify({ + op: 3 + })) + }, payload.d.heartbeat_interval); + } + if (payload.t === "INIT_STATE" || payload.t === "PRESENCE_UPDATE") { updatePresence(payload.d); requestAnimationFrame(() => updateElapsedAndProgress()); @@ -157,10 +166,10 @@ function buildActivityHTML(activity) { start && progress === null ? `
Since: ${new Date(start).toLocaleTimeString("en-GB", { - hour: "2-digit", - minute: "2-digit", - second: "2-digit", - })} + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + })}
` : ""; @@ -168,23 +177,23 @@ function buildActivityHTML(activity) { activity.buttons && activity.buttons.length > 0 ? `
${activity.buttons - .map((button, index) => { - const label = - typeof button === "string" - ? button - : button.label; - let url = null; - if (typeof button === "object" && button.url) { - url = button.url; - } else if (index === 0 && activity.url) { - url = activity.url; - } - return url - ? `${label}` - : null; - }) - .filter(Boolean) - .join("")} + .map((button, index) => { + const label = + typeof button === "string" + ? button + : button.label; + let url = null; + if (typeof button === "object" && button.url) { + url = button.url; + } else if (index === 0 && activity.url) { + url = activity.url; + } + return url + ? `${label}` + : null; + }) + .filter(Boolean) + .join("")}
` : "";