Initial commit
This commit is contained in:
86
static/js/main.js
Normal file
86
static/js/main.js
Normal 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();
|
||||
Reference in New Issue
Block a user