NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Time_Seconds* // @author Ilovemycomp 2017, Рианти 29.9.2015, demin 2011-2014. // @version 3.3.1 // @description Время сервера с секундами. Синхронизация с сервером - раз в 10 мин. // @homepage https://greasyfork.org/ru/scripts/1240-hwm-time-seconds // @icon http://i.imgur.com/LZJFLgt.png // @encoding utf-8 // @include https://*heroeswm.*/* // @include https://*lordswm.com/* // @exclude */rightcol.php* // @exclude */ch_box.php* // @exclude */chat* // @exclude */ticker.html* // @exclude */frames* // @exclude */brd.php* // @grant GM_deleteValue // @grant GM_getValue // @grant GM_listValues // @grant GM_setValue // @grant GM_addStyle // @grant GM_log // @grant GM_openInTab // @license GPL-3.0-or-later; https://www.gnu.org/licenses/gpl-3.0.txt // ==/UserScript== try{ (function() { //var b = document.querySelector("body"); //var online = time_serv.exec(b.innerHTML); //console.log("123"); var version = '3.3.1' if (typeof GM_getValue != 'function') { this.GM_getValue=function (key,def) {return localStorage[key] || def;}; this.GM_setValue=function (key,value) {return localStorage[key]=value;}; this.GM_deleteValue=function (key) {return delete localStorage[key];}; } var url_cur = location.href; var url = 'http://'+location.hostname+'/'; if ( document.querySelector("body") ) { if( !GM_getValue("95725_hwm_time_sec_add") ) GM_setValue("95725_hwm_time_sec_add" , '0'); if( !GM_getValue("95725_time_error_gm") ) GM_setValue("95725_time_error_gm", '0'); if( !GM_getValue("95725_time_error2_gm") ) GM_setValue("95725_time_error2_gm", '0'); if( !GM_getValue("95725_last_synch_gm") ) GM_setValue("95725_last_synch_gm", '1318000000000'); var time_serv = /([^,]*)(, \d+ online.*)/; var time_top = /(\d+):(\d+), \d+ online/; var all_td = document.getElementsByTagName('td'); var td_len = all_td.length; var td_i; var td_ih; var time_sec; var online; var hm; for (var i=0; i<td_len; i++) { td_i = all_td[i]; td_ih = td_i.innerHTML; if (td_ih.indexOf("<td")!=-1) {continue;} if (td_ih.search(time_top)!=-1) { online = (time_serv.exec(td_ih))[2]; hm = time_top.exec(td_ih); td_add = document.createElement( 'td' ); td_add.setAttribute('align', 'right'); td_add.setAttribute('id', 'jsset_ts'); td_add.setAttribute('valign', 'bottom'); td_add.setAttribute('width', '60'); td_add.innerHTML=""; td_i.parentNode.insertBefore(td_add, td_i); addEvent($("jsset_ts"), "click", settings); if (Number(GM_getValue("95725_last_synch_gm", '0')) + 60 * 60 * 1000 < (new Date().getTime())) { get_time(); } else if ( GM_getValue("95725_time_sec_gm") ) { show_time(); } else { get_time(); } break; } } } function show_time() { time_sec = Number(GM_getValue("95725_time_sec_gm")); // true time ct = Math.round( ((new Date().getTime())-time_sec)/1000 ); dd = Math.floor( ct / 86400 ); dh = Math.floor( ( ct - dd * 86400 ) / 3600 ); dm = Math.floor( ( ct - dd * 86400 - dh * 3600 ) / 60 ); ds = ct % 60; if ( (dh!=hm[1]) || (dm-hm[2])>1 || hm[2]>dm ) { if ( (dh-hm[1]==1 || hm[1]-dh==23) && (hm[2]-dm==59) ) { showtop(td_i); } else { GM_setValue("95725_time_sec_gm", ''); var err4 = Number(GM_getValue("95725_time_error2_gm"))+1; GM_setValue("95725_time_error2_gm", ''+err4); //alert(hm[1]+':'+hm[2]+' - '+dh+':'+dm+':'+ds); get_time(); } } else { GM_setValue("95725_time_error2_gm", '0'); showtop(td_i); } } function get_time() { if ( Number(GM_getValue("95725_time_error_gm"))<4 && Number(GM_getValue("95725_time_error2_gm"))<4 ) { if ( Number(GM_getValue("95725_last_synch_gm", '0')) + 60000 < (new Date().getTime()) ) { GM_setValue("95725_last_synch_gm", ''+(new Date().getTime())); var objXMLHttpReqTime = new XMLHttpRequest(); objXMLHttpReqTime.open('GET', 'time.php' + '?rand=' + (Math.random()* 1000000), true); objXMLHttpReqTime.onreadystatechange = function() { handleHttpResponseTime(objXMLHttpReqTime); } objXMLHttpReqTime.send(null); } else { setTimeout(function() { get_time(); }, 60000); } } } function handleHttpResponseTime(obj) { if (obj.readyState == 4 && obj.status == 200) { if ( sec_serv = /now (\d+)/.exec(obj.responseText) ) { // 1318550400000 75600000 sec_serv = Number( sec_serv[1] ) * 1000 + Number( GM_getValue("95725_hwm_time_sec_add") ) * 1000 - 1318626000000; sec_serv = new Date().getTime() - sec_serv; GM_setValue("95725_time_sec_gm", '' + sec_serv); GM_setValue("95725_time_error_gm", '0'); show_time(); } else { var err3 = Number(GM_getValue("95725_time_error_gm"))+1; GM_setValue("95725_time_error_gm", ''+err3); setTimeout(function() { get_time(); }, 30000); // таймер периода обновления, в мс. сейчас = 1 мин. } } } function showtop(td_i) { ct = Math.round( ((new Date().getTime())-time_sec)/1000 ); dd = Math.floor( ct / 86400 ); dh = Math.floor( ( ct - dd * 86400 ) / 3600 ); dm = Math.floor( ( ct - dd * 86400 - dh * 3600 ) / 60 ); ds = ct % 60; td_i.innerHTML = dh + ':' + ( (dm < 10) ? '0' : '' ) + dm + ':' + ( (ds < 10) ? '0' : '') + ds + online; setTimeout(function() {showtop(td_i)}, 1000); } function settings_close() { var bg = $('bgOverlay'); var bgc = $('bgCenter'); bg.parentNode.removeChild(bg); bgc.parentNode.removeChild(bgc); } function settings() { var bg = $('bgOverlay'); var bgc = $('bgCenter'); var bg_height = ScrollHeight(); if ( !bg ) { bg = document.createElement('div'); document.body.appendChild( bg ); bgc = document.createElement('div'); document.body.appendChild( bgc ); } bg.id = 'bgOverlay'; bg.style.position = 'absolute'; bg.style.left = '0px'; bg.style.width = '100%'; bg.style.background = "#000000"; bg.style.opacity = "0.5"; bg.style.zIndex = "7"; bgc.id = 'bgCenter'; bgc.style.position = 'absolute'; bgc.style.left = ( ( ClientWidth() - 650 ) / 2 ) + 'px'; bgc.style.width = '650px'; bgc.style.background = "#F6F3EA"; bgc.style.zIndex = "8"; addEvent(bg, "click", settings_close); if ( url.match('lordswm') ) { var st_1 = 'Adding'; var st_2 = 'second(s) to the sync (page load time from the server)'; var st_4 = 'Restart the script'; } else { var st_1 = 'Добавим'; var st_2 = 'сеКунд'; var st_3 = ' (ставим ЗАДЕРЖКУ в загрузке страниц - с сервера)'; var st_4 = 'Синхронизация!'; } bgc.innerHTML = '<div style="border:6px solid #abc; padding:5px; margin:2px; text-align:center;">'+ '<div style="float:right; border:1px solid #abc; width:11px; height:15px; text-align:center; cursor:pointer;" id="bt_close_tr">x</div>'+ '<b style="text-decoration: none; color: #1199FF;">ОТОБРАЖЕНИЕ СЕКУНД. СИНХРОНИЗАЦИЯ С СЕРВЕРОМ.</b>'+ '<b style="color:red"> v. '+version+'</b>'+ '<table>'+ '<tr><td>'+st_1+' <b><input id="hwm_time_add" value="'+ GM_getValue("95725_hwm_time_sec_add")+ '" size="1" maxlength="2" style="width: 20px;"></b> '+st_2+' <input type="submit" id="hwm_time_add_ok" value="ok">'+st_3+'</td></tr>'+ '<tr><td align="center"><input type="submit" id="ref48" value="'+st_4+'"><span id="stat_masage"></span></td></tr>'+ '</table></div>'; addEvent($("bt_close_tr"), "click", settings_close); addEvent($("hwm_time_add_ok"), "click", hwm_time_add_f); addEvent($("ref48"), "click", ref48_f); bg.style.top = '0px'; bg.style.height = bg_height + 'px'; bgc.style.top = ( window.pageYOffset + 150 ) + 'px'; bg.style.display = ''; bgc.style.display = ''; } function hwm_time_add_f() { if ( Number( $("hwm_time_add").value ) >= 0 ) { GM_setValue( "95725_hwm_time_sec_add" , '' + $("hwm_time_add").value ); } } function ref48_f() { GM_setValue("95725_time_error_gm", '0'); GM_setValue("95725_time_error2_gm", '0'); GM_setValue("95725_time_sec_gm", ''); GM_setValue("95725_last_synch_gm", ''); setTimeout(function(){$("stat_masage").innerHTML = " 1.";},100); setTimeout(function(){$("stat_masage").innerHTML += "2..";},400); setTimeout(function(){$("stat_masage").innerHTML += "3...";},900); setTimeout(function(){$("stat_masage").innerHTML += '<b style="color:red">Okay!</b>';},1300); setTimeout(function(){$("stat_masage").innerHTML = "";},8000); //setTimeout(function(){settings_close()},5000); setTimeout(settings_close,2000); } function ClientHeight() { return document.compatMode=='CSS1Compat' && document.documentElement?document.documentElement.clientHeight:document.body.clientHeight; } function ClientWidth() { return document.compatMode=='CSS1Compat' && document.documentElement?document.documentElement.clientWidth:document.body.clientWidth; } function ScrollHeight() { return Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); } function $(id) { return document.querySelector("#"+id); } function addEvent(elem, evType, fn) { if (elem.addEventListener) { elem.addEventListener(evType, fn, false); } else if (elem.attachEvent) { elem.attachEvent("on" + evType, fn); } else { elem["on" + evType] = fn; } } })(); } catch (E) { console.log(E) }