您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
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.2 // @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 // interval: INTEGER, default: 1000; time in millisecons to wait before refreshing timer window.et_summaryTimer = { showCrafting: true, showInscription: true, interval: 1000 }; 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); } }); }, window.et_summaryTimer.interval); })();