Initial commit

This commit is contained in:
2023-09-07 08:20:35 +00:00
commit 48aae40737
15 changed files with 675 additions and 0 deletions

86
static/js/main.js Normal file
View File

@@ -0,0 +1,86 @@
var client_id = Date.now();
var protocol = window.location.protocol == "https:" ? "wss" : "ws";
var ws;
async function getServerStatus() {
let elem = document.querySelector("#serverStatus");
elem.innerHTML = "Pending";
// https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
let url = "/alive";
let response = await fetch(url, {
method: "GET",
headers: {
"Content-Type": "application/json",
}
});
if (response.status != 200) {
elem.innerHTML = "Offline";
return;
}
elem.innerHTML = "Online";
let data = await response.json();
return data;
}
async function postAdvice() {
let topic = document.querySelector("#adviceTopic").value;
let elem = document.querySelector("#advice");
let url = "/advice";
let response = await fetch(url, {
method: "POST",
headers: {
"Content-type": "application/json"
},
body: JSON.stringify({"topic": topic})
});
if (response.status == 404) {
elem.innerHTML = await response.text();
return;
}
let data = await response.json();
elem.innerHTML = data.slips[0].advice
}
function connectSocket() {
ws = new WebSocket(`${protocol}://${window.location.host}/ws/${client_id}`);
ws.onopen = (event) => {
console.log(`Websocket opened -> ${client_id}`);
}
ws.onclose = (event) => {
console.log("Websocket closed.");
setTimeout(connectSocket, 10000);
}
ws.onerror = (event) => {
console.log("Websocket error.");
}
ws.onmessage = (event) => {
console.log("New Message:");
json_data = JSON.parse(event.data);
console.log(json_data);
let elem = document.querySelector("#socketMessages");
let br = document.createElement("br");
elem.appendChild(br);
elem.innerHTML += event.data;
}
}
function sendMessage(message) {
ws.send(message);
}
function sendSocketMessage() {
sendMessage(document.querySelector("#sendSocketMessage").value);
}
async function onLoad() {
await getServerStatus();
connectSocket();
setInterval(async () => {
let alive = await getServerStatus();
}, 30000);
}
onLoad();