window.LogsModule = { ws: null, init: () => { const box = document.getElementById("log-box"); const base = window.location.pathname.split("/").slice(0,2).join("/"); const connect = () => { window.LogsModule.ws = new WebSocket("ws://"+location.host+base+"/api/logs/ws"); window.LogsModule.ws.onopen = () => box.innerHTML += "
Connected
"; window.LogsModule.ws.onmessage = e => { try { const d = JSON.parse(e.data); if(d.type === "log") { const cls = d.level === "ERROR" ? "log-ERROR" : d.level === "WARNING" ? "log-WARNING" : "log-INFO"; const t = d.timestamp ? new Date(d.timestamp*1000).toLocaleTimeString() : "--"; box.innerHTML += "
"+t+"["+d.level+"] "+d.message+"
"; box.scrollTop = box.scrollHeight; } }catch(e){} }; window.LogsModule.ws.onclose = setTimeout(connect, 3000); }; connect(); }, destroy: () => window.LogsModule.ws?.close() };