您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Поиск по протоколу передач (2015.12.11)
当前为
// ==UserScript== // @name HWM_TransferSearch // @namespace Рианти // @include https://*.heroeswm.ru/pl_transfers.php* // @include https://178.248.235.15/pl_transfers.php* // @version 1.31.2.r // @author Alex_2oo8, Рианти // @description Поиск по протоколу передач (2015.12.11) // ==/UserScript== // CheckT: подгонка под K-Meleon: обернул в (function(){...}){}; , заменил GM_xmlhttpRequest() на iframe // https (function(){ try{ GM_addStyle( '#HWM_transfer_search_checkbox_label {background-image:url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJIAAAAsCAYAAACOu+GLAAABrElEQVR42u3bsWrCQByA8RhdXBzEJY8gcXZz9Ek6BkIhSxBck1foG3QogpPg5uguklG6iIPU4qCT+ZcLGDiibY03ZPiGD4yaLPcTyV3O+nh/E6JnStNULPXi1X8xlunrUbX7/vrUIakDE5m+HlU7IBGQCEgEJCARkAhIBCQCEpAISAQkAhKQgAQkAhIBiYAEJAISAYmqC0kdmMr09aj6ZZD4VZGJLHZBELtIiF0kxF0bkMg8pOVyKd1uF0hAem7gfd8Xy7KABKTyA+95XoYISEAqDSkIghwRkIBUgLRarf48OQxDDVGz2QQSkPSB7/f7st1u7544Go00RI1GQxaLBZCApA98rVYTx3HkeDxqJ1wuFxmPxxoi9d0kSbj9B9JtSApJu92W/X6fvx9FUf7Ztc1mwzwSkG5DqtfrOZRer5f9zcVxrAFSzedzJiTpPqThcKiB6XQ6BUSTyYSZbfod0m63E9d1C3iuzWYzlkjof/NI5/NZWq1WAdF6vWatjR6bkDydTtkamgJk23a2psaiLZWa2T4cDjIYDGQ6nbL6TzxGQkAidpEQu0iIHuwH8Zq0OtRsnH4AAAAASUVORK5CYII%3D\');background-position:top;display:block;width:120px;height:18px;padding:2px;padding-left:24px;line-height:18px;-moz-user-select:none;cursor:default;}' + '#HWM_transfer_search_checkbox_label.checked {background-position:bottom;}' + '.HWM_transfer_search_checkbox_checkbox {display:none;}' ); var id = getId(); var td_arr = document.getElementsByTagName('td'); for (var i = 0; i < td_arr.length; i++) { // if ( / [0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}/.test( td_arr[i].innerHTML ) ) if ( td_arr[i].getElementsByTagName('center').length > 0 && /\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0438\u0433\u0440\u043e\u043a\u0430 <a.* href="pl_info\.php\?id=[0-9]*"><b>.*<\/b><\/a>/.test( td_arr[i].getElementsByTagName('center')[0].innerHTML ) ) { var elem = td_arr[i]; break; } } var text = document.createElement( 'text' ); text.innerHTML = ' ('; text.id = 'TSearch'; var a = document.createElement( 'a' ); a.href = 'javascript: void(0);'; a.innerHTML = '\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443'; text.appendChild( a ); text.innerHTML += ')'; elem.getElementsByTagName('center')[0].appendChild( text ); elem.getElementsByTagName('center')[0].lastChild.getElementsByTagName('a')[0].addEventListener( 'click', function() { document.getElementById('transferSearchDiv').style.display = ( document.getElementById('transferSearchDiv').style.display == 'none' ? 'block' : 'none' ); }, false ); var div = document.createElement( 'div' ); div.id = 'transferSearchDiv'; div.style.display = 'none'; var tb = document.createElement( 'table' ); var tr = document.createElement( 'tr' ); var td = document.createElement( 'td' ); td.innerHTML = '\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u043d\u0438\u043a\u0443:'; tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'text'; inp.id = 'TSearchNick'; td.appendChild( inp ); tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'button'; inp.value = '\u041f\u043e\u0438\u0441\u043a'; inp.id = 'TSearchByNick'; td.appendChild( inp ); tr.appendChild( td ); tb.appendChild( tr ); var tr = document.createElement( 'tr' ); var td = document.createElement( 'td' ); td.innerHTML = '\u041f\u043e\u0438\u0441\u043a \u0448\u0442\u0440\u0430\u0444\u043e\u0432:'; tr.appendChild( td ); var td = document.createElement( 'td' ); var label = document.createElement( 'div' ); label.id = 'HWM_transfer_search_checkbox_label'; label.innerHTML += '\u0411\u043b\u043e\u043a\u0438 / \u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438'; td.appendChild( label ); tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'button'; inp.value = '\u041f\u043e\u0438\u0441\u043a'; inp.id = 'TSearchByFine'; td.appendChild( inp ); tr.appendChild( td ); tb.appendChild( tr ); var tr = document.createElement( 'tr' ); var td = document.createElement( 'td' ); td.innerHTML = '\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e:'; tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'text'; inp.id = 'TSearchDesc'; td.appendChild( inp ); tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'button'; inp.value = '\u041f\u043e\u0438\u0441\u043a'; inp.id = 'TSearchByDesc'; td.appendChild( inp ); tr.appendChild( td ); tb.appendChild( tr ); var tr = document.createElement( 'tr' ); var td = document.createElement( 'td' ); td.innerHTML = '\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0443:'; tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'text'; inp.id = 'TSearchArt'; td.appendChild( inp ); tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'button'; inp.value = '\u041f\u043e\u0438\u0441\u043a'; inp.id = 'TSearchByArt'; td.appendChild( inp ); tr.appendChild( td ); tb.appendChild( tr ); var tr = document.createElement( 'tr' ); var td = document.createElement( 'td' ); td.innerHTML = 'Общий поиск:'; tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'text'; inp.id = 'TSearchAll'; td.appendChild( inp ); tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'button'; inp.value = '\u041f\u043e\u0438\u0441\u043a'; inp.id = 'TSearchAny'; td.appendChild( inp ); tr.appendChild( td ); tb.appendChild( tr ); var tr = document.createElement( 'tr' ); var td = document.createElement( 'td' ); td.innerHTML = 'По рег. выражению:'; tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'text'; inp.id = 'TSearch_inp_regexp'; td.appendChild( inp ); tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'button'; inp.value = '\u041f\u043e\u0438\u0441\u043a'; inp.id = 'TSearch_but_regexp'; td.appendChild( inp ); tr.appendChild( td ); tb.appendChild( tr ); var tr = document.createElement( 'tr' ); var td = document.createElement( 'td' ); td.innerHTML = 'По айди:'; tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'text'; inp.id = 'TSearch_inp_id'; td.appendChild( inp ); tr.appendChild( td ); var td = document.createElement( 'td' ); var inp = document.createElement( 'input' ); inp.type = 'button'; inp.value = '\u041f\u043e\u0438\u0441\u043a'; inp.id = 'TSearch_but_id'; td.appendChild( inp ); tr.appendChild( td ); tb.appendChild( tr ); div.appendChild( tb ); elem.getElementsByTagName('center')[0].appendChild( div ); document.getElementById('HWM_transfer_search_checkbox_label').addEventListener( 'click', function() { if ( this.className.indexOf('checked') != -1 ) this.className = ''; else this.className = 'checked'; }, false ); document.getElementById('TSearchByNick').addEventListener( 'click', function() { search( id, elem, 'Nick' ); }, false ); document.getElementById('TSearchByFine').addEventListener( 'click', function() { search( id, elem, 'Fine' ); }, false ); document.getElementById('TSearchByDesc').addEventListener( 'click', function() { search( id, elem, 'Desc' ); }, false ); document.getElementById('TSearchByArt').addEventListener( 'click', function() { search( id, elem, 'Art' ); }, false ); document.getElementById('TSearchAny').addEventListener( 'click', function() { search( id, elem, 'Any' ); }, false ); document.getElementById('TSearch_but_regexp').addEventListener( 'click', function() { search( id, elem, 'Regexp' ); }, false ); document.getElementById('TSearch_but_id').addEventListener( 'click', function() { search( id, elem, 'ID' ); }, false ); var iFrame= document.createElement('iframe'); iFrame.width=1; iFrame.height=1; iFrame.src='https://'+location.hostname+"/ticker.html"; document.body.appendChild(iFrame); } catch (e) { try{ console.log(e); } catch (ee) { alert(e+"\n"+ee); } } function GM_addStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } function search( id, elem, type ) { var stop = document.createElement( 'input' ); stop.type = 'hidden'; stop.value = '0'; stop.id = 'stop'; document.getElementsByTagName('body')[0].appendChild( stop ); document.getElementById('transferSearchDiv').style.display = 'none'; document.getElementById('TSearch').style.display = 'none'; iFrame.onload=function(){ var respDoc = iFrame.contentWindow.document.getElementsByTagName('body')[0]; var td_arr = respDoc.getElementsByTagName('td'); var element; for (var i = 0; i < td_arr.length; i++) { // if ( td_arr[i].innerHTML.match(/ \d{2}-\d{2}-\d{2} \d{2}:\d{2}/) ) //Протокол игрока if ( td_arr[i].getElementsByTagName('center').length > 0 && /\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0438\u0433\u0440\u043e\u043a\u0430 <a.* href="pl_info\.php\?id=[0-9]*"><b>.*<\/b><\/a>/.test( td_arr[i].getElementsByTagName('center')[0].innerHTML ) ) { element = td_arr[i]; break; } } if(!element){ return; } if ( element.getElementsByTagName('center').length > 1 ) { var lastPg = element.getElementsByTagName('center')[1].getElementsByTagName('b')[0].getElementsByTagName('font')[0].innerHTML; } else { var lastPg = 1; } search2( id, type, elem, lastPg ); }; iFrame.src='https://'+location.hostname+'/pl_transfers.php?page=9999&id=' + id; } function rep( str ) { str = str.replace( /\\/g, '\\\\' ).replace( /\[/g, '\\[' ).replace( /\]/g, '\\]' ).replace( /\(/g, '\\(' ).replace( /\)/g, '\\)' ).replace( /\./g, '\\.' ).replace( /\+/g, '\\+' ).replace( /\*/g, '\\*' ).replace( /\?/g, '\\?' ).replace( /\$/g, '\\$' ).replace( /\|/g, '\\|' ); return str; } function search2( id, type, elem, pgCount ) { switch(type) { case 'Nick': var search_str = document.getElementById('TSearchNick').value; var reg = new RegExp( '[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}: .*<b>' + rep( search_str ) + '<\/b><\/a>' ); break; case 'Fine': var search_str = document.getElementById('HWM_transfer_search_checkbox_label').className.indexOf('checked') != -1 ? '+' : ''; var reg = new RegExp( '[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}: <b>\u0418\u0433\u0440\u043e\u043a' + ( search_str.indexOf('+') == -1 ? ' \u043e\u0448\u0442\u0440\u0430\u0444\u043e\u0432\u0430\u043d' : '' ) ); break; case 'Desc': var search_str = document.getElementById('TSearchDesc').value; var reg = new RegExp( '[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}: .*: .*' + rep( search_str ) ); break; case 'Art': var search_str = document.getElementById('TSearchArt').value; /*!*/ var reg = new RegExp( '[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}: .* ["\'].*' + rep( search_str ) + '.*["\']' ); break; case 'Any': var search_str = document.getElementById('TSearchAll').value; var reg = new RegExp( '[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}: .*' + rep( search_str ) + '.*' ); break; case 'Regexp': var search_str = document.getElementById('TSearch_inp_regexp').value; var reg = new RegExp( '[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:' + search_str.replace(/\\/g, '\\')); break; case 'ID': var search_str = document.getElementById('TSearch_inp_id').value; var reg = new RegExp( '!--' + search_str + '--> [0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}: .*'); break; } var nick = elem.getElementsByTagName('center')[0].getElementsByTagName('a')[0].innerHTML; while( elem.lastChild ) { elem.removeChild( elem.lastChild ); } elem.appendChild( document.createElement( 'br' ) ); var center = document.createElement( 'center' ); center.innerHTML = '\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0447 \u0438\u0433\u0440\u043e\u043a\u0430 '; var a = document.createElement( 'a' ); a.href = 'pl_info.php?id=' + id; a.style.textDecoration = 'none'; a.innerHTML = nick; center.appendChild( a ); elem.appendChild( center ); elem.appendChild( document.createElement( 'br' ) ); var center = document.createElement( 'center' ); center.id = 'TSearch'; center.innerHTML = '\u0418\u0434\u0435\u0442 \u043f\u043e\u0438\u0441\u043a ' + type.replace( 'Nick', '\u043f\u043e \u043d\u0438\u043a\u0443 <a href="pl_info.php?nick=' + search_str + '" style="text-decoration: none;"><b>' + search_str + '</b></a>' ).replace( 'Fine', '\u0448\u0442\u0440\u0430\u0444\u043e\u0432' + ( search_str.indexOf('+') != -1 ? ' \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a/\u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a' : '' ) ).replace( 'Desc', '\u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e "' + search_str + '"' ).replace( 'Art', '\u043f\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0443"' + search_str + '"' ) + '... (<a href="javascript: void(0);" id="cancel" onclick="document.getElementById(\'stop\').value = \'1\';">\u0441\u0442\u043e\u043f</a>)'; center.appendChild( document.createElement( 'br' ) ); center.innerHTML += '\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e <text id="viewed">0</text> \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u0435\u043a \u0438\u0437 ' + pgCount + ' (<text id="percent">0</text>%)'; center.appendChild( document.createElement( 'br' ) ); center.innerHTML += '\u041d\u0430\u0439\u0434\u0435\u043d\u043e <text id="matches">0</text> \u0437\u0430\u043f\u0438\u0441\u0435\u0439:'; elem.appendChild( center ); elem.appendChild( document.createElement( 'br' ) ); startSearch( 1, id, reg, pgCount, elem, type, search_str ); } function startSearch( pg, id, reg, lastPg, elem, type, search_str ) { if ( document.getElementById('stop').value != '1' && pg <= lastPg ) { var pg = pg - 1; iFrame.onload=function(){ var respDoc = iFrame.contentWindow.document.getElementsByTagName('body')[0]; var td_arr = respDoc.getElementsByTagName('td'); for (var i = 0; i < td_arr.length; i++) { // if ( td_arr[i].innerHTML.match(/ \d{2}-\d{2}-\d{2} \d{2}:\d{2}/) ) if ( td_arr[i].getElementsByTagName('center').length > 0 && /\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0438\u0433\u0440\u043e\u043a\u0430 <a.* href="pl_info\.php\?id=[0-9]*"><b>.*<\/b><\/a>/.test( td_arr[i].getElementsByTagName('center')[0].innerHTML ) ) { var element = td_arr[i]; break; } } var text = element.innerHTML //.substring( element.innerHTML.indexOf(' ') ); var transfers = text.split('<br>'); for ( var i = 0; i < transfers.length; i++ ) { if ( reg.test( transfers[i] ) ) { parent.document.getElementById('matches').innerHTML = ( Number( document.getElementById('matches').innerHTML ) + 1 ); elem.innerHTML += transfers[i]; elem.appendChild( document.createElement('br') ); } } parent.document.getElementById('viewed').innerHTML = ( Number( document.getElementById('viewed').innerHTML ) + 1 ); parent.document.getElementById('percent').innerHTML = ( Math.round( document.getElementById('viewed').innerHTML * 100 / lastPg ) ); pg = ( Number(pg) + 2 ); startSearch( pg, id, reg, lastPg, elem, type, search_str ); }; iFrame.src='https://'+location.hostname+'/pl_transfers.php?id=' + id + '&page=' + pg; } else { var matches = document.getElementById('matches').innerHTML; document.getElementById('TSearch').innerHTML = '\u041f\u043e\u0438\u0441\u043a ' + type.replace( 'Nick', '\u043f\u043e \u043d\u0438\u043a\u0443 <a href="pl_info.php?nick=' + search_str + '" style="text-decoration: none;"><b>' + search_str + '</b></a>' ).replace( 'Fine', '\u0448\u0442\u0440\u0430\u0444\u043e\u0432' + ( search_str.indexOf('+') != -1 ? ' \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a/\u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a' : '' ) ).replace( 'Desc', '\u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e "' + search_str + '"' ).replace( 'Art', '\u043f\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0443"' + search_str + '"' ) + ' \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d!<br>\u041d\u0430\u0439\u0434\u0435\u043d\u043e ' + matches + ' \u0437\u0430\u043f\u0438\u0441\u0435\u0439:'; } } function getId() { var id = location.href.match( /\?(?:.*=.*&)*id=([0-9]*)(?:&.*=.*)*/ ); return id[1]; } }());