From b1865d99e347f8b3e870cd9bfd9225436e9e6339 Mon Sep 17 00:00:00 2001
From: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Date: Tue, 13 Oct 2020 21:38:40 +0200
Subject: only check playercount on mouseover
---
webAO/master.js | 38 ++++++++++++++++++++------------------
1 file changed, 20 insertions(+), 18 deletions(-)
diff --git a/webAO/master.js b/webAO/master.js
index be3478e..4a3321f 100644
--- a/webAO/master.js
+++ b/webAO/master.js
@@ -11,9 +11,9 @@ const options = { fonts: { extendedJsFonts: true, userDefinedFonts: ["Ace Attorn
let lowMemory = false;
-const server_description = [];
-server_description[-1] = "This is your computer on port 50001";
-const online_counter = [];
+let servers = [];
+servers[-2] = { name: "Singleplayer", description: "Build cases, try out new things", ip: "127.0.0.1", port: 50001, assets: "", online: "" };
+servers[-1] = { name: "Localhost", description: "This is your computer on port 50001", ip: "127.0.0.1", port: 50001, assets: "", online: "Online: ?/?" };
if (window.requestIdleCallback) {
requestIdleCallback(function () {
@@ -64,9 +64,11 @@ export function check_https() {
}
export function setServ(ID) {
- console.log(server_description[ID]);
- if (server_description[ID] !== undefined) {
- document.getElementById("serverdescription_content").innerHTML = "" + online_counter[ID] + "
" + server_description[ID];
+ if (!lowMemory)
+ checkOnline(ID, servers[ID].ip + ":" + servers[ID].port);
+
+ if (servers[ID].description !== undefined) {
+ document.getElementById("serverdescription_content").innerHTML = "" + servers[ID].online + "
" + servers[ID].description;
}
else {
document.getElementById("serverdescription_content").innerHTML = "";
@@ -106,12 +108,12 @@ function checkOnline(serverID, coIP) {
const coheader = comsg.split("#", 2)[0];
const coarguments = comsg.split("#").slice(1);
if (coheader === "PN") {
- online_counter[serverID] = `Online: ${coarguments[0]}/${coarguments[1]}`;
+ servers[serverID].online = `Online: ${coarguments[0]}/${coarguments[1]}`;
oserv.close();
}
else if (coheader === "BD") {
- online_counter[serverID] = "Banned";
- server_description[serverID] = coarguments[0];
+ servers[serverID].online = "Banned";
+ servers[serverID].description = coarguments[0];
oserv.close();
}
}
@@ -137,21 +139,21 @@ function onMessage(e) {
console.debug(msg);
if (header === "ALL") {
- const servers = msg.split("#").slice(1);
- for (let i = 0; i < servers.length - 1; i++) {
- const serverEntry = servers[i];
+ const allservers = msg.split("#").slice(1);
+ for (let i = 0; i < allservers.length - 1; i++) {
+ const serverEntry = allservers[i];
const args = serverEntry.split("&");
+
+ let thisserver = { name: args[0], description: args[1], ip: args[2], port: args[3], assets: args[4], online: "Online: ?/?" };
+ servers[i] = thisserver;
+
const ipport = args[2] + ":" + args[3];
const asset = args[4] ? `&asset=${args[4]}` : "";
- const liclass = lowMemory ? "" : "unavailable"; // don't hide the entries if we're not checking them
document.getElementById("masterlist").innerHTML +=
- `
${args[0]}
`
+ `${servers[i].name}
`
+ `Watch`
- + `Join`;
- server_description[i] = args[1];
- if (!lowMemory)
- setTimeout(() => checkOnline(i, ipport), 0);
+ + `Join`;
}
masterserver.close();
}
--
cgit
From 63c636aac58cdb494c170ac847be8ecf4dd87a4d Mon Sep 17 00:00:00 2001
From: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Date: Mon, 16 Nov 2020 21:14:42 +0100
Subject: only check real entries once and hide nonworking ones
---
webAO/master.js | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/webAO/master.js b/webAO/master.js
index 4a3321f..b961701 100644
--- a/webAO/master.js
+++ b/webAO/master.js
@@ -64,7 +64,7 @@ export function check_https() {
}
export function setServ(ID) {
- if (!lowMemory)
+ if (!lowMemory && document.getElementById(`server${ID}`).className === "")
checkOnline(ID, servers[ID].ip + ":" + servers[ID].port);
if (servers[ID].description !== undefined) {
@@ -94,7 +94,15 @@ function onError(evt) {
}
function checkOnline(serverID, coIP) {
- let oserv = new WebSocket("ws://" + coIP);
+ let oserv;
+ if (serverID !== -2) {
+ try {
+ oserv = new WebSocket("ws://" + coIP);
+ } catch (SecurityError) {
+ document.getElementById(`server${serverID}`).className = "unavailable";
+ }
+
+ }
// define what the callbacks do
function onCOOpen(_e) {
@@ -129,6 +137,7 @@ function checkOnline(serverID, coIP) {
oserv.onerror = function (_evt) {
console.warn(coIP + " threw an error.");
+ document.getElementById(`server${serverID}`).className = "unavailable";
};
}
--
cgit
From 9f172285d9ea59242f35b20f6ead7739d86c0236 Mon Sep 17 00:00:00 2001
From: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Date: Mon, 16 Nov 2020 21:19:19 +0100
Subject: update the playercount immediatly if it's selected
---
webAO/master.js | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/webAO/master.js b/webAO/master.js
index b961701..8cb4311 100644
--- a/webAO/master.js
+++ b/webAO/master.js
@@ -11,6 +11,8 @@ const options = { fonts: { extendedJsFonts: true, userDefinedFonts: ["Ace Attorn
let lowMemory = false;
+let selectedServer = -1;
+
let servers = [];
servers[-2] = { name: "Singleplayer", description: "Build cases, try out new things", ip: "127.0.0.1", port: 50001, assets: "", online: "" };
servers[-1] = { name: "Localhost", description: "This is your computer on port 50001", ip: "127.0.0.1", port: 50001, assets: "", online: "Online: ?/?" };
@@ -64,6 +66,8 @@ export function check_https() {
}
export function setServ(ID) {
+ selectedServer = ID;
+
if (!lowMemory && document.getElementById(`server${ID}`).className === "")
checkOnline(ID, servers[ID].ip + ":" + servers[ID].port);
@@ -124,6 +128,8 @@ function checkOnline(serverID, coIP) {
servers[serverID].description = coarguments[0];
oserv.close();
}
+ if (serverID === selectedServer)
+ document.getElementById("serverdescription_content").innerHTML = "" + servers[serverID].online + "
" + servers[serverID].description;
}
// assign the callbacks
--
cgit
From 4858b67ea68cce8f485a0fd12e00e176b4ca33c7 Mon Sep 17 00:00:00 2001
From: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Date: Tue, 17 Nov 2020 22:53:44 +0100
Subject: escape args that can make it into the html
---
webAO/master.js | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/webAO/master.js b/webAO/master.js
index 8cb4311..1501398 100644
--- a/webAO/master.js
+++ b/webAO/master.js
@@ -3,6 +3,7 @@ import { version } from '../package.json';
import Fingerprint2 from 'fingerprintjs2';
import { unescapeChat } from './encoding.js';
+import { safe_tags } from './encoding.js';
let masterserver;
@@ -120,12 +121,12 @@ function checkOnline(serverID, coIP) {
const coheader = comsg.split("#", 2)[0];
const coarguments = comsg.split("#").slice(1);
if (coheader === "PN") {
- servers[serverID].online = `Online: ${coarguments[0]}/${coarguments[1]}`;
+ servers[serverID].online = `Online: ${Number(coarguments[0])}/${Number(coarguments[1])}`;
oserv.close();
}
else if (coheader === "BD") {
servers[serverID].online = "Banned";
- servers[serverID].description = coarguments[0];
+ servers[serverID].description = safe_tags(coarguments[0]);
oserv.close();
}
if (serverID === selectedServer)
@@ -159,7 +160,7 @@ function onMessage(e) {
const serverEntry = allservers[i];
const args = serverEntry.split("&");
- let thisserver = { name: args[0], description: args[1], ip: args[2], port: args[3], assets: args[4], online: "Online: ?/?" };
+ let thisserver = { name: safe_tags(args[0]), description: safe_tags(args[1]), ip: args[2], port: Number(args[3]), assets: args[4], online: "Online: ?/?" };
servers[i] = thisserver;
const ipport = args[2] + ":" + args[3];
--
cgit
From 03e1bd2b7b87cea01e2aab9ea54dfdbeff5874b9 Mon Sep 17 00:00:00 2001
From: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Date: Tue, 17 Nov 2020 23:28:38 +0100
Subject: fix escaping
---
webAO/encoding.js | 4 ++--
webAO/master.js | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/webAO/encoding.js b/webAO/encoding.js
index 71ebe53..04a44e7 100644
--- a/webAO/encoding.js
+++ b/webAO/encoding.js
@@ -31,8 +31,8 @@ export function unescapeChat(estring) {
export function safe_tags(unsafe) {
if (unsafe) {
return unsafe
- .replace(/>/g, "&rt;")
- .replace(//g, '>')
+ .replace(/" + servers[ID].online + "
" + servers[ID].description;
+ document.getElementById("serverdescription_content").innerHTML = "" + servers[ID].online + "
" + safe_tags(servers[ID].description);
}
else {
document.getElementById("serverdescription_content").innerHTML = "";
@@ -126,11 +126,11 @@ function checkOnline(serverID, coIP) {
}
else if (coheader === "BD") {
servers[serverID].online = "Banned";
- servers[serverID].description = safe_tags(coarguments[0]);
+ servers[serverID].description = coarguments[0];
oserv.close();
}
if (serverID === selectedServer)
- document.getElementById("serverdescription_content").innerHTML = "" + servers[serverID].online + "
" + servers[serverID].description;
+ document.getElementById("serverdescription_content").innerHTML = "" + servers[serverID].online + "
" + safe_tags(servers[serverID].description);
}
// assign the callbacks
@@ -160,14 +160,14 @@ function onMessage(e) {
const serverEntry = allservers[i];
const args = serverEntry.split("&");
- let thisserver = { name: safe_tags(args[0]), description: safe_tags(args[1]), ip: args[2], port: Number(args[3]), assets: args[4], online: "Online: ?/?" };
+ let thisserver = { name: args[0], description: args[1], ip: args[2], port: Number(args[3]), assets: args[4], online: "Online: ?/?" };
servers[i] = thisserver;
const ipport = args[2] + ":" + args[3];
const asset = args[4] ? `&asset=${args[4]}` : "";
document.getElementById("masterlist").innerHTML +=
- `${servers[i].name}
`
+ `${safe_tags(servers[i].name)}
`
+ `Watch`
+ `Join`;
}
--
cgit
From 29905ce6f2271b0b790301c164b35809550410fc Mon Sep 17 00:00:00 2001
From: stonedDiscord
Date: Wed, 18 Nov 2020 00:04:49 +0100
Subject: officially return from the exception handler
Co-authored-by: oldmud0
---
webAO/master.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/webAO/master.js b/webAO/master.js
index aec279c..947889b 100644
--- a/webAO/master.js
+++ b/webAO/master.js
@@ -105,6 +105,7 @@ function checkOnline(serverID, coIP) {
oserv = new WebSocket("ws://" + coIP);
} catch (SecurityError) {
document.getElementById(`server${serverID}`).className = "unavailable";
+ return;
}
}
--
cgit
From 2f6a09f901ec981744960665110f25dc990697b5 Mon Sep 17 00:00:00 2001
From: stonedDiscord <10584181+stonedDiscord@users.noreply.github.com>
Date: Wed, 18 Nov 2020 00:08:50 +0100
Subject: returns are free
---
webAO/index.html | 6 +++---
webAO/master.js | 5 +++++
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/webAO/index.html b/webAO/index.html
index dda9e0a..d3fc05f 100644
--- a/webAO/index.html
+++ b/webAO/index.html
@@ -19,11 +19,11 @@
+ content="default-src 'self' 'unsafe-inline' 'unsafe-eval' *.aceattorneyonline.com data:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' ws:;">
+ content="default-src 'self' 'unsafe-inline' 'unsafe-eval' *.aceattorneyonline.com data:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' ws:;">
+ content="default-src 'self' 'unsafe-inline' 'unsafe-eval' *.aceattorneyonline.com data:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' ws:;">
diff --git a/webAO/master.js b/webAO/master.js
index 947889b..c1543f3 100644
--- a/webAO/master.js
+++ b/webAO/master.js
@@ -96,6 +96,7 @@ function onOpen(_e) {
function onError(evt) {
document.getElementById("ms_error").style.display = "block";
document.getElementById("ms_error_code").innerText = `A network error occurred: ${evt.reason} (${evt.code})`;
+ return;
}
function checkOnline(serverID, coIP) {
@@ -124,11 +125,13 @@ function checkOnline(serverID, coIP) {
if (coheader === "PN") {
servers[serverID].online = `Online: ${Number(coarguments[0])}/${Number(coarguments[1])}`;
oserv.close();
+ return;
}
else if (coheader === "BD") {
servers[serverID].online = "Banned";
servers[serverID].description = coarguments[0];
oserv.close();
+ return;
}
if (serverID === selectedServer)
document.getElementById("serverdescription_content").innerHTML = "" + servers[serverID].online + "
" + safe_tags(servers[serverID].description);
@@ -146,6 +149,7 @@ function checkOnline(serverID, coIP) {
oserv.onerror = function (_evt) {
console.warn(coIP + " threw an error.");
document.getElementById(`server${serverID}`).className = "unavailable";
+ return;
};
}
@@ -173,6 +177,7 @@ function onMessage(e) {
+ `Join`;
}
masterserver.close();
+ return;
}
else if (header === "servercheok") {
const args = msg.split("#").slice(1);
--
cgit