您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows your local time and a table to convert Torn time to your local time
// ==UserScript== // @name My Torn Time Table // @namespace https://bypxbyp.com // @version 0.4.0 // @description Shows your local time and a table to convert Torn time to your local time // @license MIT // @author BypXByp [3243346] // @match https://www.torn.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=torn.com // @run-at document-start // @grant none // ==/UserScript== window.addEventListener('load', function() { 'use strict'; var bShowOnLoad = 1; //Should the table automatically be expanded? 0=No, 1=Yes var theTimeTable; var timeSpan = document.querySelector('.server-date-time'); if (timeSpan) { var timeString = timeSpan.textContent.trim(); var timeRegex = /(\d{1,2}):(\d{2}):(\d{2})/; var match = timeString.match(timeRegex); if (match) { var hours = parseInt(match[1], 10); var minutes = parseInt(match[2], 10); var seconds = parseInt(match[3], 10); var currentDate = new Date(); var timeZoneOffsetMinutes = currentDate.getTimezoneOffset(); var timeZoneOffsetHours = -1 * (timeZoneOffsetMinutes / 60); var timeZoneOffsetHoursInteger = Math.round(timeZoneOffsetHours); var tl0 = hours + timeZoneOffsetHours; var tl1 = hours + timeZoneOffsetHours + 1; var tl2 = hours + timeZoneOffsetHours + 2; var tl3 = hours + timeZoneOffsetHours + 3; var tl4 = hours + timeZoneOffsetHours + 4; var tl5 = hours + timeZoneOffsetHours + 5; var tl6 = hours + timeZoneOffsetHours + 6; var tl7 = hours + timeZoneOffsetHours + 7; var tl8 = hours + timeZoneOffsetHours + 8; var tl9 = hours + timeZoneOffsetHours + 9; var tl10 = hours + timeZoneOffsetHours + 10; var tl11 = hours + timeZoneOffsetHours + 11; var tl12 = hours + timeZoneOffsetHours + 12; var tl13 = hours + timeZoneOffsetHours + 13; var tl14 = hours + timeZoneOffsetHours + 14; var tl15 = hours + timeZoneOffsetHours + 15; var tl16 = hours + timeZoneOffsetHours + 16; var tl17 = hours + timeZoneOffsetHours + 17; var tl18 = hours + timeZoneOffsetHours + 18; var tl19 = hours + timeZoneOffsetHours + 19; var tl20 = hours + timeZoneOffsetHours + 20; var tl21 = hours + timeZoneOffsetHours + 21; var tl22 = hours + timeZoneOffsetHours + 22; var tl23 = hours + timeZoneOffsetHours + 23; if (tl0 < 0) tl0 += 24; if (tl1 < 0) tl1 += 24; if (tl2 < 0) tl2 += 24; if (tl3 < 0) tl3 += 24; if (tl4 < 0) tl4 += 24; if (tl5 < 0) tl5 += 24; if (tl6 < 0) tl6 += 24; if (tl7 < 0) tl7 += 24; if (tl8 < 0) tl8 += 24; if (tl9 < 0) tl9 += 24; if (tl10 < 0) tl10 += 24; if (tl11 < 0) tl11 += 24; if (tl12 < 0) tl12 += 24; if (tl13 < 0) tl13 += 24; if (tl14 < 0) tl14 += 24; if (tl15 < 0) tl15 += 24; if (tl16 < 0) tl16 += 24; if (tl17 < 0) tl17 += 24; if (tl18 < 0) tl18 += 24; if (tl19 < 0) tl19 += 24; if (tl20 < 0) tl20 += 24; if (tl21 < 0) tl21 += 24; if (tl22 < 0) tl22 += 24; if (tl23 < 0) tl23 += 24; if (tl0 > 23) tl0 -= 24; if (tl1 > 23) tl1 -= 24; if (tl2 > 23) tl2 -= 24; if (tl3 > 23) tl3 -= 24; if (tl4 > 23) tl4 -= 24; if (tl5 > 23) tl5 -= 24; if (tl6 > 23) tl6 -= 24; if (tl7 > 23) tl7 -= 24; if (tl8 > 23) tl8 -= 24; if (tl9 > 23) tl9 -= 24; if (tl10 > 23) tl10 -= 24; if (tl11 > 23) tl11 -= 24; if (tl12 > 23) tl12 -= 24; if (tl13 > 23) tl13 -= 24; if (tl14 > 23) tl14 -= 24; if (tl15 > 23) tl15 -= 24; if (tl16 > 23) tl16 -= 24; if (tl17 > 23) tl17 -= 24; if (tl18 > 23) tl18 -= 24; if (tl19 > 23) tl19 -= 24; if (tl20 > 23) tl20 -= 24; if (tl21 > 23) tl21 -= 24; if (tl22 > 23) tl22 -= 24; if (tl23 > 23) tl23 -= 24; var tc0 = hours; var tc1 = hours + 1; var tc2 = hours + 2; var tc3 = hours + 3; var tc4 = hours + 4; var tc5 = hours + 5; var tc6 = hours + 6; var tc7 = hours + 7; var tc8 = hours + 8; var tc9 = hours + 9; var tc10 = hours + 10; var tc11 = hours + 11; var tc12 = hours + 12; var tc13 = hours + 13; var tc14 = hours + 14; var tc15 = hours + 15; var tc16 = hours + 16; var tc17 = hours + 17; var tc18 = hours + 18; var tc19 = hours + 19; var tc20 = hours + 20; var tc21 = hours + 21; var tc22 = hours + 22; var tc23 = hours + 23; if (tc0 > 23) tc0 -= 24; if (tc1 > 23) tc1 -= 24; if (tc2 > 23) tc2 -= 24; if (tc3 > 23) tc3 -= 24; if (tc4 > 23) tc4 -= 24; if (tc5 > 23) tc5 -= 24; if (tc6 > 23) tc6 -= 24; if (tc7 > 23) tc7 -= 24; if (tc8 > 23) tc8 -= 24; if (tc9 > 23) tc9 -= 24; if (tc10 > 23) tc10 -= 24; if (tc11 > 23) tc11 -= 24; if (tc12 > 23) tc12 -= 24; if (tc13 > 23) tc13 -= 24; if (tc14 > 23) tc14 -= 24; if (tc15 > 23) tc15 -= 24; if (tc16 > 23) tc16 -= 24; if (tc17 > 23) tc17 -= 24; if (tc18 > 23) tc18 -= 24; if (tc19 > 23) tc19 -= 24; if (tc20 > 23) tc20 -= 24; if (tc21 > 23) tc21 -= 24; if (tc22 > 23) tc22 -= 24; if (tc23 > 23) tc23 -= 24; var newHours = hours + timeZoneOffsetHours; var sMinutesLead = ""; if (minutes < 10) sMinutesLead = "0"; theTimeTable = '<div><div><a class="toggleCollapseTimeTable" style="cursor: pointer;">Toggle Time Table</a></div><table id="myTornTimeTable" style="color:#e3e3e3;text-align:center;width:100%;"><tr><td colspan=3 style="border-bottom: 1pt solid black;border-top: 1pt solid black;color:#e3e3e3;">Local: ' + tl0 + ':' + sMinutesLead + minutes + '</td></tr><tr><td style="color:#e3e3e3;" width=33%>Add</td><td style="color:#e3e3e3;" width=34%>TCT</td><td style="color:#e3e3e3;" width=33%>Local</td></tr><tr><td style="color:#e3e3e3;">1</td><td style="color:#e3e3e3;">' + tc1 + '</td><td style="color:#e3e3e3;">' + tl1 + '</td></tr><tr><td style="color:#e3e3e3;">2</td><td style="color:#e3e3e3;">' + tc2 + '</td><td style="color:#e3e3e3;">' + tl2 + '</td></tr><tr><td style="color:#e3e3e3;">3</td><td style="color:#e3e3e3;">' + tc3 + '</td><td style="color:#e3e3e3;">' + tl3 + '</td></tr><tr><td style="color:#e3e3e3;">4</td><td style="color:#e3e3e3;">' + tc4 + '</td><td style="color:#e3e3e3;">' + tl4 + '</td></tr><tr><td style="color:#e3e3e3;">5</td><td style="color:#e3e3e3;">' + tc5 + '</td><td style="color:#e3e3e3;">' + tl5 + '</td></tr><tr><td style="color:#e3e3e3;">6</td><td style="color:#e3e3e3;">' + tc6 + '</td><td style="color:#e3e3e3;">' + tl6 + '</td></tr><tr><td style="color:#e3e3e3;">7</td><td style="color:#e3e3e3;">' + tc7 + '</td><td style="color:#e3e3e3;">' + tl7 + '</td></tr><tr><td style="color:#e3e3e3;">8</td><td style="color:#e3e3e3;">' + tc8 + '</td><td style="color:#e3e3e3;">' + tl8 + '</td></tr><tr><td style="color:#e3e3e3;">9</td><td style="color:#e3e3e3;">' + tc9 + '</td><td style="color:#e3e3e3;">' + tl9 + '</td></tr><tr><td style="color:#e3e3e3;">10</td><td style="color:#e3e3e3;">' + tc10 + '</td><td style="color:#e3e3e3;">' + tl10 + '</td></tr><tr><td style="color:#e3e3e3;">11</td><td style="color:#e3e3e3;">' + tc11 + '</td><td style="color:#e3e3e3;">' + tl11 + '</td></tr><tr><td style="color:#e3e3e3;">12</td><td style="color:#e3e3e3;">' + tc12 + '</td><td style="color:#e3e3e3;">' + tl12 + '</td></tr><tr><td style="color:#e3e3e3;">13</td><td style="color:#e3e3e3;">' + tc13 + '</td><td style="color:#e3e3e3;">' + tl13 + '</td></tr><tr><td style="color:#e3e3e3;">14</td><td style="color:#e3e3e3;">' + tc14 + '</td><td style="color:#e3e3e3;">' + tl14 + '</td></tr><tr><td style="color:#e3e3e3;">15</td><td style="color:#e3e3e3;">' + tc15 + '</td><td style="color:#e3e3e3;">' + tl15 + '</td></tr><tr><td style="color:#e3e3e3;">16</td><td style="color:#e3e3e3;">' + tc16 + '</td><td style="color:#e3e3e3;">' + tl16 + '</td></tr><tr><td style="color:#e3e3e3;">17</td><td style="color:#e3e3e3;">' + tc17 + '</td><td style="color:#e3e3e3;">' + tl17 + '</td></tr><tr><td style="color:#e3e3e3;">18</td><td style="color:#e3e3e3;">' + tc18 + '</td><td style="color:#e3e3e3;">' + tl18 + '</td></tr><tr><td style="color:#e3e3e3;">19</td><td style="color:#e3e3e3;">' + tc19 + '</td><td style="color:#e3e3e3;">' + tl19 + '</td></tr><tr><td style="color:#e3e3e3;">20</td><td style="color:#e3e3e3;">' + tc20 + '</td><td style="color:#e3e3e3;">' + tl20 + '</td></tr><tr><td style="color:#e3e3e3;">21</td><td style="color:#e3e3e3;">' + tc21 + '</td><td style="color:#e3e3e3;">' + tl21 + '</td></tr><tr><td style="color:#e3e3e3;">22</td><td style="color:#e3e3e3;">' + tc22 + '</td><td style="color:#e3e3e3;">' + tl22 + '</td></tr><tr><td style="color:#e3e3e3;">23</td><td style="color:#e3e3e3;">' + tc23 + '</td><td style="color:#e3e3e3;">' + tl23 + '</td></tr></table></div>'; } else { theTimeTable = 'Error (i2)'; } } else { theTimeTable = 'Error (i1)'; } var tempDiv = document.createElement('div'); tempDiv.innerHTML = theTimeTable; while (tempDiv.firstChild) { timeSpan.parentNode.insertBefore(tempDiv.firstChild, timeSpan.nextSibling); } if (bShowOnLoad) { $('#myTornTimeTable').css('display', ''); } else { $('#myTornTimeTable').css('display', 'none'); } waitForElementToExist('.toggleCollapseTimeTable').then(()=>{ $('.toggleCollapseTimeTable').on('click', function() { if ($('#myTornTimeTable').css('display') == 'none') { $('#myTornTimeTable').css('display', ''); } else { $('#myTornTimeTable').css('display', 'none'); } }) }) function waitForElementToExist(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(() => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { subtree: true, childList: true, }); }); } }, false);