您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows the war end time in local time.
// ==UserScript== // @name Show War Local Time // @namespace https://www.torn.com/profiles.php?XID=1936821 // @version 1.6 // @description Shows the war end time in local time. // @author TheFoxMan // @owner Phillip_J_Fry [2184575] // @license Apache License 2.0 // @match https://www.torn.com/factions.php* // @run-at document-end // ==/UserScript== // Made for Phillip_J_Fry [2184575]. // DO NOT EDIT. if (!Document.prototype.find) Object.defineProperties(Document.prototype, { find: { value(selector) { return document.querySelector(selector); }, enumerable: false }, findAll: { value(selector) { return document.querySelectorAll(selector); }, enumerable: false } }); if (!Element.prototype.find) Object.defineProperties(Element.prototype, { find: { value(selector) { return this.querySelector(selector); }, enumerable: false }, findAll: { value(selector) { return this.querySelectorAll(selector); }, enumerable: false } }); async function waitFor(sel, parent = document) { return new Promise((resolve) => { const intervalID = setInterval(() => { const el = parent.find(sel); if (el) { resolve(el); clearInterval(intervalID); } }, 500); }); } (async () => { showWarTimes(); window.addEventListener("hashchange", showWarTimes); })(); async function showWarTimes() { if (window.location.hash.includes("tab=")) return; const warList = await waitFor("#faction_war_list_id"); if (window.location.hash.includes("tab=")) return; document.findAll(".war-end-time").forEach((x) => x.remove()); warList.findAll("[class*='warListItem__']").forEach((war) => { if (war.find(".timer")) { // Territory War const timer = war.find(".timer"); const timeLeft = parseTime(timer.textContent); let date = Date.now(); // date -= timeLeft; date += timeLeft; // date += 3 * 24 * 60 * 60 * 1000; date = (new Date(date)).toLocaleString() timer.insertAdjacentHTML("afterend", "<div class='war-end-time'>" + date + "</div>"); return; } // RW if (!war.find("[data-warid]")) return; const bottomDiv = war.find("[class*='bottomBox__']"); const timer = bottomDiv.find("[class*='timer__']"); if (bottomDiv.textContent.includes("WINNER")) return; if (!parseTime(bottomDiv.textContent)) return; // console.log(Date.now() - parseTime(timer.textContent)); const date = (new Date(Date.now() - parseTime(timer.textContent) + 123 * 60 * 60 * 1000)).toLocaleString(); bottomDiv.insertAdjacentHTML( "beforeend", "<div class='war-end-time'>" + date + "</div>" ); }); } function parseTime(str) { const splits = str.split(":").map((x) => parseInt(x)); // console.log(splits); let time = 0; time += splits[0] * 1000 * 60 * 60 * 24; time += splits[1] * 1000 * 60 * 60; time += splits[2] * 1000 * 60; time += splits[3] * 1000; return time; }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址