Send heartbeat to lanyard #6
1 changed files with 30 additions and 21 deletions
|
@ -108,6 +108,15 @@ if (userId && instanceUri) {
|
||||||
socket.addEventListener("message", (event) => {
|
socket.addEventListener("message", (event) => {
|
||||||
const payload = JSON.parse(event.data);
|
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") {
|
if (payload.t === "INIT_STATE" || payload.t === "PRESENCE_UPDATE") {
|
||||||
updatePresence(payload.d);
|
updatePresence(payload.d);
|
||||||
requestAnimationFrame(() => updateElapsedAndProgress());
|
requestAnimationFrame(() => updateElapsedAndProgress());
|
||||||
|
@ -157,10 +166,10 @@ function buildActivityHTML(activity) {
|
||||||
start && progress === null
|
start && progress === null
|
||||||
? `<div class="activity-timestamp" data-start="${start}">
|
? `<div class="activity-timestamp" data-start="${start}">
|
||||||
<span>Since: ${new Date(start).toLocaleTimeString("en-GB", {
|
<span>Since: ${new Date(start).toLocaleTimeString("en-GB", {
|
||||||
hour: "2-digit",
|
hour: "2-digit",
|
||||||
minute: "2-digit",
|
minute: "2-digit",
|
||||||
second: "2-digit",
|
second: "2-digit",
|
||||||
})} <span class="elapsed"></span></span>
|
})} <span class="elapsed"></span></span>
|
||||||
</div>`
|
</div>`
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
|
@ -168,23 +177,23 @@ function buildActivityHTML(activity) {
|
||||||
activity.buttons && activity.buttons.length > 0
|
activity.buttons && activity.buttons.length > 0
|
||||||
? `<div class="activity-buttons">
|
? `<div class="activity-buttons">
|
||||||
${activity.buttons
|
${activity.buttons
|
||||||
.map((button, index) => {
|
.map((button, index) => {
|
||||||
const label =
|
const label =
|
||||||
typeof button === "string"
|
typeof button === "string"
|
||||||
? button
|
? button
|
||||||
: button.label;
|
: button.label;
|
||||||
let url = null;
|
let url = null;
|
||||||
if (typeof button === "object" && button.url) {
|
if (typeof button === "object" && button.url) {
|
||||||
url = button.url;
|
url = button.url;
|
||||||
} else if (index === 0 && activity.url) {
|
} else if (index === 0 && activity.url) {
|
||||||
url = activity.url;
|
url = activity.url;
|
||||||
}
|
}
|
||||||
return url
|
return url
|
||||||
? `<a href="${url}" class="activity-button" target="_blank" rel="noopener noreferrer">${label}</a>`
|
? `<a href="${url}" class="activity-button" target="_blank" rel="noopener noreferrer">${label}</a>`
|
||||||
: null;
|
: null;
|
||||||
})
|
})
|
||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
.join("")}
|
.join("")}
|
||||||
</div>`
|
</div>`
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue