From 60a9bf89166a7ee05dc3e483bd742c7c3f3b2027 Mon Sep 17 00:00:00 2001
From: poikilos <7557867+poikilos@users.noreply.github.com>
Date: Tue, 22 May 2018 15:27:04 -0400
Subject: [PATCH] fix shell script rc usage
and separate client js instead of emitting from node
---
install-ENLIVEN.sh | 1 +
webapp/js/main.js | 158 ++++++++++++++++++++++++++++++++++++++
webapp/server.js | 184 +--------------------------------------------
3 files changed, 162 insertions(+), 181 deletions(-)
create mode 100644 webapp/js/main.js
diff --git a/install-ENLIVEN.sh b/install-ENLIVEN.sh
index e2632ee..2e77376 100755
--- a/install-ENLIVEN.sh
+++ b/install-ENLIVEN.sh
@@ -48,6 +48,7 @@ if [ ! -f minetestenv.rc ]; then
sleep 1
exit 1
fi
+source minetestenv.rc
#endregion paste this part into terminal to get some great environment variables
diff --git a/webapp/js/main.js b/webapp/js/main.js
new file mode 100644
index 0000000..9f52fa2
--- /dev/null
+++ b/webapp/js/main.js
@@ -0,0 +1,158 @@
+var tzElement = document.getElementById("tzArea");
+var tz_offset = tzElement.innerHTML;
+var dateElement = document.getElementById("dateArea");
+var date_s = dateElement.innerHTML;
+var start_hour = 0;
+var start_m = start_hour*60;
+var start_s = start_m*60;
+var endbefore_hour = 24;
+var hour_count = endbefore_hour - start_hour;
+var hour_width = 60; // 60 pixels per hour
+var pixels_per_m = hour_width/60.0;
+var pixels_per_s = pixels_per_m/60.0;
+var player_name_width = 100;
+var text_size = 16.0;
+var row_y_offset = text_size * (22.0/16.0); // if 16px font is drawn at (x,16), line at (x,21) is one pixel away from the bottom of the descenders
+var border_y = 0.5; //canvas uses 0.5 as middle of pixel
+var border_start_x = 0.5+player_name_width;
+var border_x = border_start_x;
+var text_y = text_size;
+var text_start_x = 3.5;
+
+var players = [];
+var stats_html = "";
+var time_area_width = hour_width*hour_count;
+var canvas_w = player_name_width + time_area_width;
+stats_html += '
' + hour_count + "hrs * " + hour_width + "px = " + time_area_width + '
'
+stats_html += '' + time_area_width + "px + " + player_name_width + "px player name = " + canvas_w + 'px canvas width
'
+var outputElement = document.getElementById("outputArea");
+var statusElement = document.getElementById("statusArea");
+statusElement.innerHTML="...";
+function draw_players() {
+ var canvas = document.getElementById("myCanvas");
+ canvas.width = canvas_w;
+ var ctx = canvas.getContext("2d");
+ ctx.font = text_size+"px Arial";
+ var arrayLength = players.length;
+ var text_x;
+ var index = -1;
+ for (var i = 0; index < arrayLength; i++) {
+ ctx.font = text_size+"px Arial";
+ text_x = text_start_x;
+ ctx.fillStyle = "#dce5ea";
+ ctx.fillRect(0, border_y+1.0, player_name_width, row_y_offset-1.0);
+ //ctx.stroke();
+ ctx.fillStyle = "#000000";
+ ctx.moveTo(0, border_y);
+ ctx.strokeStyle = "#000000";
+ ctx.lineTo(canvas_w, border_y);
+
+ //ctx.stroke();
+ ctx.fillStyle = "#000000";
+ if (index==-1) {
+ ctx.font = "bold "+text_size+"px Arial";
+ ctx.fillText("Name", text_x, text_y);
+ ctx.font = text_size+"px Arial";
+ text_x = player_name_width+0.5;
+
+ //ctx.fillStyle = "#000000";
+ ctx.strokeStyle = "#008000";
+ for (var hour=0; hour=3) {
+ login_places[0] -= Math.floor(tz_offset/60);
+ }
+ if (!plays[s_i].hasOwnProperty("logout_time")) {
+ plays[s_i].logout_time = "23:59:59";
+ }
+ var logout_places = plays[s_i].logout_time.split(':');
+ if (logout_places.length>=3) {
+ logout_places[0] -= Math.floor(tz_offset/60);
+ }
+ var login_second = (+login_places[0]) * 60 * 60 + (+login_places[1]) * 60 + (+login_places[2]);
+ var login_m = login_second / 60.0;
+ var logout_second = (+logout_places[0]) * 60 * 60 + (+logout_places[1]) * 60 + (+logout_places[2]);
+ var logout_m = logout_second / 60.0;
+ var left_x = border_x + (login_m-start_m)*pixels_per_m;
+ var right_x = border_x + (logout_m-start_m)*pixels_per_m;
+ if (right_x= 200 && this.status < 400) {
+ // Success!
+ statusElement.innerHTML = "loaded player(s)";
+ if (!statusElement.classList.contains('alert') ) {
+ statusElement.classList.add('alert');
+ }
+ try {
+ players = JSON.parse(this.response);
+ statusElement.classList.add('alert-success');
+ statusElement.innerHTML = "loaded " + players.length + ' player(s) from "'+this.responseURL+'"';
+ draw_players();
+ }
+ catch(e) {
+ statusElement.classList.add('alert-warning');
+ statusElement.innerHTML = e + " for URL '"+request_href+"'";
+ //alert(this.response);
+ }
+ } else {
+ // We reached our target server, but it returned an error
+ statusElement.innerHTML = "Error " + this.status + " accessing " + request_href;
+ }
+};
+
+request.onerror = function() {
+ // There was a connection error of some sort
+};
+
+request.send();
diff --git a/webapp/server.js b/webapp/server.js
index b0f3e4f..1a369eb 100644
--- a/webapp/server.js
+++ b/webapp/server.js
@@ -285,8 +285,8 @@ app.get('/', function (req, res) {
var selected_date_s = null;
if (req.query.date) selected_date_s = req.query.date
ret += "assuming minetestserver ran as: " + os.homedir() + "
\n";
- ret += "timezone (tz_offset/60*-1): " + (Math.floor(tz_offset/60)*-1) + "
\n";
- ret += "date: " + selected_date_s + "
\n";
+ ret += "timezone (tz_offset/60*-1): " + (Math.floor(tz_offset/60)*-1) + '
\n';
+ ret += 'date: ' + selected_date_s + '
'+"\n";
//ret += 'var play_dates = [];';
var pdLength = 0;
if (play_dates != null) pdLength = play_dates.length;
@@ -311,185 +311,7 @@ app.get('/', function (req, res) {
Your browser does not support the canvas element.
loading...
-`;
+`;
ret += '