2020-09-04 02:49:20 +00:00
|
|
|
<div class="row">
|
|
|
|
<div class="col-sm-12 grid-margin">
|
|
|
|
<div class="card">
|
|
|
|
<div class="card-body pt-3 pb-3">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-sm-3 mr-2">
|
2021-03-22 04:02:18 +00:00
|
|
|
{% if data['server_stats']['running'] %}
|
2020-12-14 15:59:59 +00:00
|
|
|
<b>Server Status:</b> <span class="text-success">Online</span><br />
|
2021-03-22 04:02:18 +00:00
|
|
|
<b>Server Started:</b> <span id="started">{{ data['server_stats']['started'] }} (Server Time)</span><br />
|
2020-12-31 17:41:02 +00:00
|
|
|
<b>Server Uptime:</b> <span id="uptime">Error Calculating</span>
|
2020-09-04 02:49:20 +00:00
|
|
|
{% else %}
|
2020-12-14 15:59:59 +00:00
|
|
|
<b>Server Status:</b> <span class="text-danger">Offline</span><br />
|
|
|
|
<b>Server Started:</b> <span class="text-danger">Offline</span><br />
|
|
|
|
<b>Server Uptime:</b> <span class="text-danger">Offline</span>
|
2020-09-04 02:49:20 +00:00
|
|
|
{% end %}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-sm-3 mr-2">
|
2021-03-22 04:02:18 +00:00
|
|
|
<b>CPU:</b> {{ data['server_stats']['cpu'] }}% <br />
|
|
|
|
<b>Mem:</b> {{ data['server_stats']['mem'] }} <br />
|
|
|
|
{% if data['server_stats']['int_ping_results'] %}
|
|
|
|
<b>Players:</b> {{ data['server_stats']['online'] }} / {{ data['server_stats']['max'] }}<br />
|
2020-09-04 02:49:20 +00:00
|
|
|
{% else %}
|
|
|
|
<b>Players:</b> 0/0<br />
|
|
|
|
{% end %}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-sm-3 mr-2">
|
2021-03-22 04:02:18 +00:00
|
|
|
{% if data['server_stats']['version'] != 'False' %}
|
|
|
|
<b>Server:</b> {{ data['server_stats']['version'] }} <br />
|
|
|
|
<b>Desc:</b> {{ data['server_stats']['desc'] }} <br />
|
2020-09-04 02:49:20 +00:00
|
|
|
{% else %}
|
|
|
|
<b>Server:</b> Unable To Connect <br />
|
|
|
|
<b>Desc:</b> Unable To Connect <br />
|
|
|
|
{% end %}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2020-12-14 15:59:59 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<script src="/static/assets/vendors/moment/moment.min.js" type="text/javascript" charset="utf-8"></script>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
2020-12-14 21:52:46 +00:00
|
|
|
function durationToHumanizedString (duration) {
|
|
|
|
duration._data.months += duration._data.years * 12;
|
|
|
|
// 30.45833333333 = average month length, calculate with (31+28.5+31+30+31+30+31+31+30+31+30+31) / 12
|
|
|
|
duration._data.days += duration._data.months * 30.45833333333;
|
|
|
|
duration._data.hours += duration._data.days * 24;
|
|
|
|
|
|
|
|
let obj = {
|
|
|
|
hours: Math.round(duration._data.hours),
|
|
|
|
minutes: duration._data.minutes,
|
|
|
|
seconds: duration._data.seconds
|
|
|
|
}
|
|
|
|
|
|
|
|
output = Object.entries(obj)
|
|
|
|
.map(([type, num]) => {
|
|
|
|
// make them strings
|
|
|
|
returnData = num + ' ' + type;
|
|
|
|
// remove the s in the end if the data is -1 or 1
|
2020-12-31 17:41:02 +00:00
|
|
|
if (num == -1 || num == 1)
|
2020-12-14 21:52:46 +00:00
|
|
|
returnData = returnData.slice(0, -1)
|
|
|
|
return returnData;
|
|
|
|
})
|
2020-12-14 15:59:59 +00:00
|
|
|
.map((v, i, a) => // example input: [1,2,3], output: "1, 2 and 3"
|
|
|
|
v + (i !== a.length - 1
|
|
|
|
? i !== a.length - 2
|
|
|
|
? ', '
|
|
|
|
: ' and '
|
|
|
|
: '')).join('');
|
2020-12-14 21:52:46 +00:00
|
|
|
return output;
|
|
|
|
}
|
2020-12-14 15:59:59 +00:00
|
|
|
|
2020-12-15 23:17:41 +00:00
|
|
|
document.body.onload = (() => {
|
2020-12-14 15:59:59 +00:00
|
|
|
|
2020-12-14 21:52:46 +00:00
|
|
|
console.log('calculateTime');
|
|
|
|
let uptime = document.querySelector('#uptime');
|
|
|
|
let started = document.querySelector('#started');
|
2020-12-31 17:41:02 +00:00
|
|
|
let startedUTC;
|
|
|
|
let startedLocal;
|
2020-12-14 21:52:46 +00:00
|
|
|
|
2020-12-15 23:17:41 +00:00
|
|
|
if (started != null) {
|
2021-03-22 04:02:18 +00:00
|
|
|
console.log('88', '{{ data['server_stats']['started'] }}');
|
|
|
|
{% if data['server_stats']['started'] != 'False' %}
|
|
|
|
startedUTC = '{{ (datetime.datetime.strptime(data['server_stats']['started'], '%Y-%m-%d %H:%M:%S') - datetime.timedelta(seconds=-time.timezone)).strftime('%Y-%m-%d %H:%M:%S') }}';
|
2020-12-31 17:41:02 +00:00
|
|
|
{% end %}
|
2020-12-15 23:17:41 +00:00
|
|
|
console.log('utc', startedUTC);
|
|
|
|
startedUTC = moment.utc(startedUTC, 'YYYY-MM-DD HH:mm:ss');
|
|
|
|
|
|
|
|
let browserUTCOffset = moment().utcOffset(); // This is in minutes
|
|
|
|
|
2020-12-31 17:41:02 +00:00
|
|
|
startedLocal = startedUTC.utcOffset(browserUTCOffset);
|
|
|
|
startedLocalFormatted = startedLocal.format('YYYY-MM-DD HH:mm:ss');
|
2020-12-15 23:17:41 +00:00
|
|
|
|
2020-12-31 17:41:02 +00:00
|
|
|
console.log('startedLocal', startedLocal);
|
|
|
|
console.log('startedLocalFormatted', startedLocalFormatted);
|
2020-12-15 23:17:41 +00:00
|
|
|
|
2020-12-31 17:41:02 +00:00
|
|
|
started.textContent = startedLocalFormatted
|
2020-12-15 23:17:41 +00:00
|
|
|
}
|
|
|
|
|
2020-12-14 21:52:46 +00:00
|
|
|
let nowServerTime = '{{ data['time'] }}';
|
2021-03-22 04:02:18 +00:00
|
|
|
let startedServerTime = '{{ data['server_stats']['started'] }}';
|
2020-12-14 21:52:46 +00:00
|
|
|
|
|
|
|
if (uptime != null && started != null) {
|
|
|
|
|
|
|
|
var msdiff = moment(nowServerTime,"YYYY-MM-DD hh:mm:ss")
|
|
|
|
.diff(moment(startedServerTime,"YYYY-MM-DD hh:mm:ss"));
|
|
|
|
var diff = moment.duration(msdiff);
|
|
|
|
|
|
|
|
uptime.textContent = durationToHumanizedString(diff);
|
2020-12-31 17:41:02 +00:00
|
|
|
|
|
|
|
console.log('startedLocal', startedLocal)
|
|
|
|
if (startedLocal) {
|
|
|
|
var uptimeLoop = setInterval(() => {
|
|
|
|
var msdiff = moment()
|
|
|
|
.diff(startedLocal);
|
|
|
|
var diff = moment.duration(msdiff);
|
|
|
|
|
|
|
|
uptime.textContent = durationToHumanizedString(diff);
|
|
|
|
}, 1000)
|
|
|
|
}
|
2020-12-14 21:52:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
});
|
2020-12-14 15:59:59 +00:00
|
|
|
</script>
|