Displays crafting timers in Summary menu. Settings available in console via window.et_summaryTimer
当前为
// ==UserScript==
// @name ET Summary Timer
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Displays crafting timers in Summary menu. Settings available in console via window.et_summaryTimer
// @author Aes Sedai
// @match http*://*.eternitytower.net/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Default settings, use window.et_summaryTimer in console to change settings
// showCrafting: BOOLEAN, default: true; if true, shows a timer for crafting in summary list
// showInscription: BOOLEAN, default: true; if true, shows a timer for inscription in summary list
window.et_summaryTimer = {
showCrafting: true,
showInscription: true
};
if(localStorage.getItem('et_summaryTimer')) window.et_summaryTimer = Object.assign({}, window.et_summaryTimer, JSON.parse(localStorage.getItem('et_summaryTimer')));
$(window).on("beforeunload", function() {
localStorage.setItem('et_summaryTimer', JSON.stringify(window.et_summaryTimer));
});
function getTimeRemaining(endtime) {
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor( (t/1000) % 60 );
var minutes = Math.floor( (t/1000/60) % 60 );
var hours = Math.floor( (t/(1000*60*60)) % 24 );
var days = Math.floor( t/(1000*60*60*24) );
return {
'total': t,
'days': days,
'hours': hours.toString().padStart(2, '0'),
'minutes': minutes.toString().padStart(2, '0'),
'seconds': seconds.toString().padStart(2, '0')
};
}
function formatTimeRemaining(time) {
if(time.days > 0) return time.days + ":" + time.hours + ":" + time.minutes + ":" + time.seconds;
if(time.hours > 0) return time.hours + ":" + time.minutes + ":" + time.seconds;
if(time.minutes > 0) return time.minutes + ":" + time.seconds;
if(time.secodns > 0) return time.seconds;
}
var summaries = [
{classSelector: ".crafting-timer", redis: Meteor.connection._mongo_livedata_collections.crafting.find(), rowSelector: "#content > div.d-sm-flex.flex-grow > div.hidden-lg-down > div > div:nth-of-type(1)", active: window.et_summaryTimer.showCrafting},
{classSelector: ".inscription-timer", redis: Meteor.connection._mongo_livedata_collections.inscription.find(), rowSelector: "#content > div.d-sm-flex.flex-grow > div.hidden-lg-down > div > div:nth-of-type(2)", active: window.et_summaryTimer.showInscription}
];
var interval = setInterval(function() {
summaries.forEach(function(summary) {
if(!summary.active) return;
if($(summary.classSelector).length > 0) {
$(summary.classSelector).html(formatTimeRemaining(getTimeRemaining(summary.redis.fetch()[0].currentlyCrafting[0].endDate)));
} else if($(summary.rowSelector).length > 0) {
var row = $(summary.rowSelector);
var timeContainer = document.createElement("span");
timeContainer.className = summary.classSelector.replace('.', '');
timeContainer.style.cssText = 'padding-left: 6px;';
timeContainer.innerHTML = formatTimeRemaining(getTimeRemaining(summary.redis.fetch()[0].currentlyCrafting[0].endDate));
row.after(timeContainer);
}
});
}, 1000);
})();