<!doctype html> <html> <head> <meta charset="utf-8" /> <title>Stream Time</title> <style type="text/css"> #clock { margin-bottom: 3px; } </style> </head> <body> <div id="clock"></div> <div><input type="number" id="delay" value="10" min="0" /> seconds of delay</div> <script type="text/javascript"> let busStartTime = null; function updateClock() { let delay = parseInt(document.getElementById("delay").value); if (isNaN(delay)) { delay = 0; } let time = (new Date() - busStartTime) / 1000 - delay; let sign = ""; if (time < 0) { time = -time; sign = "-"; } let hours = Math.trunc(time / 3600).toString(); let mins = Math.trunc((time % 3600) / 60).toString(); let secs = Math.trunc(time % 60).toString(); if (mins.length < 2) { mins = "0" + mins; } if (secs.length < 2) { secs = "0" + secs; } let formatted = sign + hours + ":" + mins + ":" + secs; document.getElementById("clock").innerText = formatted; } async function initialize() { const dataResponse = await fetch("/thrimshim/defaults"); const data = await dataResponse.json(); busStartTime = new Date(data.bustime_start); setInterval(updateClock, 1000); } initialize(); </script> </body> </html>