Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name OGame Retro Better Timers
- // @include *ogame1304.de/game/index.php?page=b_building*
- // @include *ogame1304.de/game/index.php?page=overview*
- // @version 0.1
- // ==/UserScript==
- (function() {
- 'use strict';
- // Introduced by one call to the t and tt functions.
- const SKEW = 1;
- var disableOriginalTimers = function() {
- unsafeWindow.t = function() {};
- unsafeWindow.tt = function() {};
- };
- var msToPrettyTime = function(ms) {
- var seconds = Math.floor(ms / 1000);
- var days = Math.floor(seconds / (24 * 60 * 60));
- seconds %= 24 * 60 * 60;
- var hours = Math.floor(seconds / (60 * 60));
- seconds %= 60 * 60;
- var minutes = Math.floor(seconds / 60);
- seconds %= 60;
- var s = '';
- if (days > 0) {
- s += days + ' d ';
- }
- s += hours;
- s += ':';
- s += minutes < 10 ? '0' + minutes : minutes;
- s += ':';
- s += seconds < 10 ? '0' + seconds : seconds;
- return s;
- };
- var prettyDate = function(date) {
- var now = new Date();
- var s = '';
- s += date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
- s += ':';
- s += date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
- s += ':';
- s += date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
- if (now.getDate() != date.getDate() ||
- now.getMonth() != date.getMonth() ||
- now.getFullYear() != date.getFullYear()) {
- s += ' ' + date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear();
- }
- return s;
- };
- var overview = function() {
- var now = Date.now();
- // Collect all elements.
- var elements = [];
- for (var i = 1; ; ++i) {
- var bxx = document.getElementById('bxx' + i);
- if (bxx === null) {
- break;
- }
- elements.push(bxx);
- }
- var bxy = document.getElementById('bxy');
- if (bxy !== null) {
- elements.push(bxy);
- }
- // Calculate end dates and inject them into the titles.
- var ends = [];
- for (var i = 0; i < elements.length; ++i) {
- var element = elements[i];
- var remaining = parseInt(element.title);
- var end = new Date(now);
- end.setSeconds(end.getSeconds() + remaining + SKEW);
- ends.push(end);
- element.title = prettyDate(end);
- }
- // Update counters.
- var update = function() {
- var now = new Date();
- for (var i = 0; i < elements.length; ++i) {
- var remaining = ends[i] - now;
- var element = elements[i];
- if (remaining < 0) {
- element.innerHTML = '-';
- } else {
- element.innerHTML = msToPrettyTime(remaining);
- }
- }
- };
- if (elements.length > 0)
- setInterval(update, 1000);
- };
- var buildings = function() {
- if (typeof pp === 'undefined') {
- return;
- }
- var end = new Date();
- end.setSeconds(end.getSeconds() + pp + SKEW);
- var bxx = document.getElementById('bxx');
- var update = function() {
- var remaining = end - new Date();
- var s = '';
- if (remaining < 0) {
- s += 'Finished';
- s += '<br>';
- s += '<a href="index.php?page=b_building&session=' + ps + '&cp=' + pl + '">Continue</a>';
- } else {
- s += '<span title="' + prettyDate(end) + '">' + msToPrettyTime(remaining) + '</span>';
- s += '<br>';
- s += '<a href="index.php?page=b_building&session=' + ps + '&unbau=' + pk + '&cp=' + pl + '">Cancel</a>';
- }
- bxx.innerHTML = s;
- };
- setInterval(update, 1000);
- };
- disableOriginalTimers();
- if (window.location.href.indexOf('overview') > 0) {
- overview();
- } else if (window.location.href.indexOf('b_building') > 0) {
- buildings();
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement