init() /* Supporting Functions */ async function init() { var stn = await getQuery("stn"); log(`init: Looking up: ${stn}`); var sv = await getQuery("sv"); log(`init: Staff Version: ${sv}`); if (sv === 'true') { log("init: Staff Version not supported yet.") log("init: Unable to proceed.") } else { try { var data = await publicLdb(stn) log("init: Fetched LDB Data") } catch (err) { var data = null log("init: Unable to fetch LDB data") } finally { log(data) parseLdb(data) } } } async function getQuery(param) { var params = new URLSearchParams(window.location.search) var query = params.get(param) if (query) { return query } else { return 'false' } } async function publicLdb(stn) { var url = `http://${window.location.host}/api/v1/ldb/${stn}`; var resp = await fetch(url); return await resp.json(); } async function setHeaders(title,time){ var prefix = `OwlBoard - ` document.title = `${prefix}${title}` document.getElementById("station_name").innerHTML = title document.getElementById("fetch_time").innerHTML = time.toLocaleTimeString() } async function parseLdb(data) { var stationName = data.GetStationBoardResult.locationName; log(`parseLdb: Data ready for ${stationName}`); var generateTime = new Date(await data.GetStationBoardResult.generatedAt); log(`parseLdb: Data prepared at ${generateTime.toLocaleString()}`) setHeaders(stationName, generateTime); } // Log Helper function log(msg) { var time = new Date().toISOString(); console.log(`${time} - ${msg}`) }