This repository has been archived on 2023-08-24. You can view files and clone it, but cannot push or open issues or pull requests.
OwlBoard/static/js/ldb.js

61 lines
1.7 KiB
JavaScript
Raw Normal View History

init()
/* Supporting Functions */
async function init() {
var stn = await getQuery("stn");
2023-01-11 15:00:12 +00:00
log(`init: Looking up: ${stn}`);
var sv = await getQuery("sv");
2023-01-11 15:00:12 +00:00
log(`init: Staff Version: ${sv}`);
if (sv === 'true') {
2023-01-11 15:00:12 +00:00
log("init: Staff Version not supported yet.")
log("init: Unable to proceed.")
} else {
try {
var data = await publicLdb(stn)
2023-01-11 15:00:12 +00:00
log("init: Fetched LDB Data")
} catch (err) {
var data = null
2023-01-11 15:00:12 +00:00
log("init: Unable to fetch LDB data")
} finally {
2023-01-11 15:00:12 +00:00
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
2023-01-11 15:00:12 +00:00
document.getElementById("fetch_time").innerHTML = time.toLocaleTimeString()
2022-12-19 23:52:27 +00:00
}
async function parseLdb(data) {
var stationName = data.GetStationBoardResult.locationName;
2023-01-11 15:00:12 +00:00
log(`parseLdb: Data ready for ${stationName}`);
var generateTime = new Date(await data.GetStationBoardResult.generatedAt);
log(`parseLdb: Data prepared at ${generateTime.toLocaleString()}`)
setHeaders(stationName, generateTime);
2023-01-11 15:00:12 +00:00
}
// Log Helper
function log(msg) {
var time = new Date().toISOString();
console.log(`${time} - ${msg}`)
2022-12-19 23:52:27 +00:00
}