NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Phalanx time stamp
// @author Fedaykin
// @description Phalanx time stamp
// @include *ogame.gameforge.com/game/index.php?page=ingame&component=galaxy*
// @include *ogame.gameforge.com/game/index.php?component=galaxy*
// @version 1.4.1
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @license MIT
// @updateURL https://openuserjs.org/meta/Fedaykin/Phalanx_time_stamp.meta.js
// @downloadURL https://openuserjs.org/install/Fedaykin/Phalanx_time_stamp.user.js
// ==/UserScript==
"use strict";
(function () {
let g = 0;
let s = 0;
let p = 0;
let past = 0;
let difference;
let localPast;
function formatTime(time) {
time = parseInt(time);
let date = new Date(time * 1000);
//"[d].[m].[Y] [H]:[i]:[s]";
return date.getDate() + "." + (date.getMonth() + 1) + "." + date.getFullYear() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
}
//Server time is calculated by taking local time and adding the timezone offset(its a negative number in + timezones)
function formatServer(time) {
time = parseInt(time);
let date = new Date(time * 1000);
return formatTime(time + date.getTimezoneOffset() * 60)
}
function clock() {
let present = new Date();
let time = Math.round(((present.getTime() / 1000 - localPast) + Number.EPSILON) * 10) / 10;
let phalanxer_clock = $("#phalanx_clock");
if (!phalanxer_clock.length) return;
phalanxer_clock.html(" (+" + time + ")");
let t = setTimeout(clock, 100);
}
unsafeWindow.$(document).ajaxSuccess(function (event, xhr, settings) {
if (~settings.url.indexOf("phalanx") || ~settings.url.indexOf("phalanxsystemlayer")) {
let lanx, con, regexp, sclock, lclock, diff, serverTime, coords;
if (~settings.url.indexOf("phalanxsystemlayer")) {
lanx = $("#phalanxsystemlayer");
regexp = /.+&galaxy=(\d)&system=(\d+)/g; //regexp for coords
coords = regexp.exec(settings.url);
coords[3] = 0
} else {
regexp = /.+&galaxy=(\d)&system=(\d+)&position=(\d+)/g; //regexp for coords
coords = regexp.exec(settings.url);
lanx = $("#phalanx");
}
difference = 0;
con = lanx.find('script').text(); //find the script tag
regexp = /var mytime = (\d+)/g; //find the time inside the script tag
serverTime = regexp.exec(con)[1];
//New scan from new coordinates
if (g === coords[1] && s === coords[2] && p === coords[3] && past !== 0) {
difference = serverTime - past;
g = coords[1];
s = coords[2];
p = coords[3];
}
past = serverTime;
localPast = (new Date()).getTime() / 1000;
g = coords[1];
s = coords[2];
p = coords[3];
lclock = $('#phalanx_local'); //local clock
if (lclock.length) lclock.remove();
lclock = $('<div />', {
"class": 'ct_foot_row textCenter',
id: 'phalanx_local',
style: "color: #99cc00;",
text: formatTime(serverTime)
}
);
sclock = $('#phalanx_server'); //server clock
if (sclock.length) sclock.remove();
sclock = $('<div />', {
"class": 'ct_foot_row textCenter',
id: 'phalanx_server',
style: "color: #fd8a1c;",
text: formatServer(serverTime)
}
);
diff = $('#phalanx_difference'); //time since last scan
if (diff.length) diff.remove();
diff = $('<div />', {
"class": 'ct_foot_row textCenter',
id: 'phalanx_difference',
html: difference + "<span id='phalanx_clock' style='color: red;'></span>" //clock that increases as time goes by
}
);
lanx.parent().prev().after(lclock);
lanx.parent().prev().after(sclock);
lanx.parent().prev().after(diff);
clock();
}
});
$(document).keydown(function (e) {
if ((e.originalEvent && e.originalEvent.repeat) || e.repeat) return;
if (e.keyCode === 82) {
$(".refreshPhalanxLink").children().click();
}
});
})();