您需要先安装一个扩展,例如 篡改猴、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);
- })();