NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name BattleLinks // @author Demin // @namespace Battle // @version 3.61 // @description Быстрые ссылки на итоги боя; начало, конец, чат боя. // @homepage https://greasyfork.org/en/scripts/1231 // @icon http://i.imgur.com/LZJFLgt.png // @encoding utf-8 // @include *heroeswm.ru/forum.php* // @include *heroeswm.ru/home.php // @include *heroeswm.ru/pl_transfers.php?id=* // @include *heroeswm.ru/pl_warlog.php?id=* // @include *heroeswm.ru/bselect.php* // @include *heroeswm.ru/pl_info.php?id=* // @include *lordswm.com/* // @include *hwmguide.ru/* // @exclude */rightcol.php* // @exclude */ch_box.php* // @exclude */chat* // @exclude */ticker.html* // @exclude */frames* // @exclude */brd.php* // @exclude */auction.php* // @exclude */object-info.php* // @exclude */home.php* // @grant GM_deleteValue // @grant GM_getValue // @grant GM_listValues // @grant GM_setValue // @grant GM_addStyle // @grant GM_log // @grant GM_openInTab // @grant GM_xmlhttpRequest // @license MIT // ==/UserScript== (function() { setTimeout(function() { var version = '3.61'; var blank = ' target="_blank"'; //var blank = ''; if (typeof GM_deleteValue != '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];}; this.GM_addStyle=function (key) { var style = document.createElement('style'); style.textContent = key; document.querySelector("head").appendChild(style); } this.GM_xmlhttpRequest=function (details) { function setupEvent(xhr, url, eventName, callback) { xhr[eventName] = function() { var isComplete = xhr.readyState == 4; var responseState = { responseText: xhr.responseText, readyState: xhr.readyState, responseHeaders: isComplete ? xhr.getAllResponseHeaders() : "", status: isComplete ? xhr.status : 0, statusText: isComplete ? xhr.statusText : "", finalUrl: isComplete ? url : "" }; callback(responseState); }; } var xhr = new XMLHttpRequest(); var eventNames = ["onload", "onerror", "onreadystatechange"]; for (var i = 0; i < eventNames.length; i++) { var eventName = eventNames[i]; if (eventName in details) { setupEvent(xhr, details.url, eventName, details[eventName]); } } xhr.open(details.method, details.url); if (details.overrideMimeType) { xhr.overrideMimeType(details.overrideMimeType); } if (details.headers) { for (var header in details.headers) { xhr.setRequestHeader(header, details.headers[header]); } } xhr.send(details.data ? details.data : null); } } var script_num = 92536; var script_name = 'hwm_battlelinks: Быстрые ссылки на итоги боя; начало, конец, чат боя (by Demin)'; // see down var url_cur = location.href; var url = 'http://'+location.hostname+'/'; var a = document.querySelectorAll("a[href*='warid=']"); var warid = /warid=(\d+)/; var ai, warid_ai, bt; if ( url=='http://www.heroeswm.ru/' || url=='http://qrator.heroeswm.ru/' || url=='http://178.248.235.15/' || url=='http://www.lordswm.com/' ) { } else { url = 'http://www.heroeswm.ru/'; } for ( var i=a.length; i--; ) { ai = a[i]; if ( warid_ai = warid.exec(ai) ) { warid_ai = warid_ai[1]; bt = document.createElement('span'); bt.innerHTML = ' [<a href="'+url+'war.php?lt=-1&warid='+warid_ai+'"'+blank+'>#</a>'+ ' <a href="'+url+'battlechat.php?warid='+warid_ai+'"'+blank+'>chat</a>'+ ' <a href="'+url+'war.php?warid='+warid_ai+'"'+blank+'>$</a>'+ ' <a href="'+url+'battle.php?lastturn=-3&warid='+warid_ai+'"'+blank+'>E</a>]'; ai.parentNode.insertBefore(bt, ai.nextSibling); addEvent(ai, "click", show_result); } } function show_result(event) { event = event || window.event; event.preventDefault ? event.preventDefault() : (event.returnValue=false); var ai = event.target || event.srcElement; while ( !warid.exec(ai.href) ) { ai = ai.parentNode; } // for home page (once) && pl_info page (in battle) (twice) warid_ai = warid.exec(ai.href)[1]; GM_addStyle('\ #war_result table, #war_result td {background-image: none; text-align: left; border: 0px; margin: 0px; padding: 0px; line-height: 16px; border-collapse: separate;}\ #war_result td, #war_result a, #war_result b {FONT-SIZE: 9pt; COLOR: #592C08; FONT-FAMILY: verdana, geneva, arial cyr;}\ #war_result font {FONT-SIZE: 9pt; FONT-FAMILY: verdana, geneva, arial cyr}\ '); var newdiv = $('war_result'); if ( !newdiv ) { newdiv = document.createElement('div'); newdiv.setAttribute('id', 'war_result'); with ( newdiv.style ) { position = 'absolute'; borderStyle = 'solid'; borderColor = '#000000'; borderWidth = '2px'; padding = '0px'; zIndex = '3'; } } newdiv.style.left = event.pageX + 25; newdiv.style.top = event.pageY + 5; newdiv.innerHTML = '<table cellspacing=4 cellpadding=0 bgcolor="#f5f3ea"><tr>'+ '<td align="left">warid: '+warid_ai+ ' [<a href="'+url+'war.php?lt=-1&warid='+warid_ai+'"'+blank+'>#</a>'+ ' <a href="'+url+'battlechat.php?warid='+warid_ai+'"'+blank+'>chat</a>'+ ' <a href="'+url+'war.php?warid='+warid_ai+'"'+blank+'>$</a>'+ ' <a href="'+url+'battle.php?lastturn=-3&warid='+warid_ai+'"'+blank+'>E</a>]'+ '</td><td width=100></td>'+ '<td align="right" id="close_div_result" title="Close" style="text-align: right;">[x]</td></tr>'+ '<tr><td align="left" id="war_result_cont" colspan="3"><br>'+loaders()+'</td></tr>'+ '</table>'; ai.parentNode.insertBefore(newdiv, ai.nextSibling); addEvent($("close_div_result"), "click", div_close_result); /* if ( url != 'http://'+location.hostname+'/' ) { var div = $('war_result_cont'); div.innerHTML = '<br>Не выполнимо на данном домене'; return; } */ GM_xmlhttpRequest ({ method: "GET", url: url + 'battle.php?lastturn=-2&warid=' + warid_ai, onload: function(obj) { handleHttpResponseWid(obj); } }); /* var objXMLHttpReqWid = new XMLHttpRequest(); objXMLHttpReqWid.open('GET', url + 'battle.php?lastturn=-2&warid=' + warid_ai, true); //objXMLHttpReqWid.overrideMimeType("text/plain; charset=windows-1251"); objXMLHttpReqWid.onreadystatechange = function() { handleHttpResponseWid(objXMLHttpReqWid); } objXMLHttpReqWid.send(null); */ } function div_close_result() { var temp_rez = $('war_result'); temp_rez.parentNode.removeChild(temp_rez); } function handleHttpResponseWid(obj) { if ( obj.readyState != 4 ) return; var div = $('war_result_cont'); if ( obj.status != 200 ) { div.innerHTML = "<br>Http error "+String(obj.status); return; } var arr = obj.responseText.split(";/", 2); var lwm = 0; if ( url.match('lordswm') ) { var regexp_exp = /(\d+) exp/; var regexp_skill = /(\d*\.?\d+) skill/; var err = "Parse error."; lwm = 1; var pos = arr[0].indexOf('#f_en'); if ( pos==-1 ) { lwm = 0; pos = arr[0].indexOf('f<font size="18"><b>'); } // esli staryi boj na lwm.com do ob'edinenija } else { var regexp_exp = /(\d+) опыт/; var regexp_skill = /(\d*\.?\d+) умени/; var err = "Результаты боя не найдены."; var pos = arr[0].indexOf('f<font size="18"><b>'); } if ( pos==-1 ) { div.innerHTML = "<br>" + err; return; } if ( lwm==1 ) { var tmp = arr[0].substr(pos+5); } else { var tmp = arr[0].substr(pos+1); } tmp = tmp.substr(0, tmp.indexOf('|#')).replace(/ size="18"/g, '').replace(/font color="/g, 'font style="color: '); arr = tmp.split("<br"); var exp1, um1; for (var i in arr) { if ( exp1 = regexp_exp.exec( arr[i] ) ) { um1 = regexp_skill.exec( arr[i] )[1]; if ( um1 != 0 ) { arr[i] = arr[i].slice(0, -1) + " (" + Math.ceil( exp1[1] / um1 ) + ")."; if (location.href.indexOf('mercenary_guild') != -1) {arr[i] += "=>("+ Math.ceil(exp1[1] / um1 * 1.7) +")";} } } } div.innerHTML = '<br>' + arr.join("<br"); } function loaders() { return '<img border="0" align="absmiddle" height="11" src="data:image/gif;base64,'+ 'R0lGODlhEAAQAMQAAP///+7u7t3d3bu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREQAR'+ 'AAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05F'+ 'VFNDQVBFMi4wAwEAAAAh+QQFBwAQACwAAAAAEAAQAAAFdyAkQgGJJOWoQgIjBM8jkKsoPEzgyMGs'+ 'CjPDw7ADpkQBxRDmSCRetpRA6Rj4kFBkgLC4IlUGhbNQIwXOYYWCXDufzYPDMaoKGBoKb886OjAK'+ 'dgZAAgQkfCwzAgsDBAUCgl8jAQkHEAVkAoA1AgczlyIDczUDA2UhACH5BAUHABAALAAAAAAPABAA'+ 'AAVjICSO0IGIATkqIiMKDaGKC8Q49jPMYsE0hQdrlABCGgvT45FKiRKQhWA0mPKGPAgBcTjsspBC'+ 'AoH4gl+FmXNEUEBVAYHToJAVZK/XWoQQDAgBZioHaX8igigFKYYQVlkCjiMhACH5BAUHABAALAAA'+ 'AAAQAA8AAAVgICSOUGGQqIiIChMESyo6CdQGdRqUENESI8FAdFgAFwqDISYwPB4CVSMnEhSej+Fo'+ 'gNhtHyfRQFmIol5owmEta/fcKITB6y4choMBmk7yGgSAEAJ8JAVDgQFmKUCCZnwhACH5BAUHABAA'+ 'LAAAAAAQABAAAAViICSOYkGe4hFAiSImAwotB+si6Co2QxvjAYHIgBAqDoWCK2Bq6A40iA4yYMgg'+ 'NZKwGFgVCAQZotFwwJIF4QnxaC9IsZNgLtAJDKbraJCGzPVSIgEDXVNXA0JdgH6ChoCKKCEAIfkE'+ 'BQcAEAAsAAAAABAADgAABUkgJI7QcZComIjPw6bs2kINLB5uW9Bo0gyQx8LkKgVHiccKVdyRlqjF'+ 'SAApOKOtR810StVeU9RAmLqOxi0qRG3LptikAVQEh4UAACH5BAUHABAALAAAAAAQABAAAAVxICSO'+ '0DCQKBQQonGIh5AGB2sYkMHIqYAIN0EDRxoQZIaC6bAoMRSiwMAwCIwCggRkwRMJWKSAomBVCc5l'+ 'UiGRUBjO6FSBwWggwijBooDCdiFfIlBRAlYBZQ0PWRANaSkED1oQYHgjDA8nM3kPfCmejiEAIfkE'+ 'BQcAEAAsAAAAABAAEAAABWAgJI6QIJCoOIhFwabsSbiFAotGMEMKgZoB3cBUQIgURpFgmEI0EqjA'+ 'CYXwiYJBGAGBgGIDWsVicbiNEgSsGbKCIMCwA4IBCRgXt8bDACkvYQF6U1OADg8mDlaACQtwJCEA'+ 'IfkEBQcAEAAsAAABABAADwAABV4gJEKCOAwiMa4Q2qIDwq4wiriBmItCCREHUsIwCgh2q8MiyEKO'+ 'DK7ZbHCoqqSjWGKI1d2kRp+RAWGyHg+DQUEmKliGx4HBKECIMwG61AgssAQPKA19EAxRKz4QCVIh'+ 'ACH5BAUHABAALAAAAAAQABAAAAVjICSOUBCQqHhCgiAOKyqcLVvEZOC2geGiK5NpQBAZCilgAYFM'+ 'ogo/J0lgqEpHgoO2+GIMUL6p4vFojhQNg8rxWLgYBQJCASkwEKLC17hYFJtRIwwBfRAJDk4Obwsi'+ 'dEkrWkkhACH5BAUHABAALAAAAQAQAA8AAAVcICSOUGAGAqmKpjis6vmuqSrUxQyPhDEEtpUOgmgY'+ 'ETCCcrB4OBWwQsGHEhQatVFhB/mNAojFVsQgBhgKpSHRTRxEhGwhoRg0CCXYAkKHHPZCZRAKUERZ'+ 'MAYGMCEAIfkEBQcAEAAsAAABABAADwAABV0gJI4kFJToGAilwKLCST6PUcrB8A70844CXenwILRk'+ 'IoYyBRk4BQlHo3FIOQmvAEGBMpYSop/IgPBCFpCqIuEsIESHgkgoJxwQAjSzwb1DClwwgQhgAVVM'+ 'IgVyKCEAIfkECQcAEAAsAAAAABAAEAAABWQgJI5kSQ6NYK7Dw6xr8hCw+ELC85hCIAq3Am0U6JUK'+ 'jkHJNzIsFAqDqShQHRhY6bKqgvgGCZOSFDhAUiWCYQwJSxGHKqGAE/5EqIHBjOgyRQELCBB7EAQH'+ 'fySDhGYQdDWGQyUhADs=">'; } 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; } }}, 100); })();