From bc85efb3db41ae9bc43435212ea9d8c450e3a665 Mon Sep 17 00:00:00 2001 From: "Alexander \"Arav\" Andreev" Date: Mon, 9 Oct 2023 01:44:46 +0400 Subject: [PATCH] In main.js just call updateStatus() without waiting if there is a current song. --- web/assets/js/main.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/web/assets/js/main.js b/web/assets/js/main.js index cbd5db4..c57975f 100644 --- a/web/assets/js/main.js +++ b/web/assets/js/main.js @@ -55,15 +55,15 @@ async function updateStatus() { async function update() { if (null === cursong_startat) - return false; + return -1; const estimate = (new Date()) - (new Date(cursong_startat)); if (estimate >= cursong_duration_msec) { - return false; + return 1; } $("radio-duration-estimate").textContent = `${formatDuration(new Date(estimate))} / `; - return true; + return 0; } $("radio-update").addEventListener("click", async () => @@ -72,11 +72,15 @@ $("radio-update").addEventListener("click", async () => let update_interval_id = null; async function interval() { - if (!await update()) { - clearInterval(update_interval_id); - await new Promise(resolve => setTimeout(resolve, 5000)); - [cursong_duration_msec, cursong_startat] = await updateStatus(); - update_interval_id = setInterval(interval, 1000); + switch (await update()) { + case 1: + [cursong_duration_msec, cursong_startat] = await updateStatus(); + break; + case -1: + clearInterval(update_interval_id); + await new Promise(resolve => setTimeout(resolve, 5000)); + [cursong_duration_msec, cursong_startat] = await updateStatus(); + update_interval_id = setInterval(interval, 1000); } }