🏠 返回首頁 

Greasy Fork is available in English.

sklad search vol. 2

search uid artefacts

// ==UserScript==
// @name         sklad search vol. 2
// @namespace    sklad
// @version      0.2.2
// @description  search uid artefacts
// @author       Sweag
// @match        https://www.heroeswm.ru/sklad_info.php*
// @grant        none
// ==/UserScript==
var Num_page_start = 0, start_index = 0, Count_page;
var table_res, mytable, countres = 1, Name_art, UID, url1;
let UID_ARR = new Map();
var COLORS_UID = ["null", "IndianRed", "GreenYellow", "Pink",
"Aqua", "LightSalmon", "LightGrey",
"Gold", "Lavender", "BurlyWood",
"Black", "LightCoral", "Chartreuse",
"Lightpink", "Coral", "PaleTurquoise",
"Yellow", "Gray", "Thistle",
"RosyBrown", "Fuchsia", "Crimson",
"LimeGreen", "MediumVioletRed", "MediumTurquoise",
"OrangeRed", "LightSlateGrey", "DarkKhaki",
"BlueViolet", "DarkGoldenRod", "Purple",
"Red", "MediumSpringGreen", "Orange",
"SteelBlue", "DarkViolet", "DarkGoldenRod",
"Maroon", "Green", "DeepSkyBlue",
"SaddleBrown", "Darkgoldenrod", "DarkSlateBlue",
"Olive", "MidnightBlue", "Brown",
"Teal", "Darkolivegreen", "Navy",
"DarkSeaGreen", "Tomato", "Silver"];
var items = COLORS_UID.entries();
(function() {
'use strict';
var str;
var temp = document.querySelectorAll("body > center");
var table_sklad;
if(temp[0].children[1].children[0].children[0].children[0].childNodes.length>1)table_sklad = temp[0].children[1].children[0].children[0].children[0].children[1]; else table_sklad = temp[0].children[1].children[0].children[0].children[0].children[0];
url1 = (document.location.href.split('&')[0]).replace('sklad_info', 'sklad_log');
COLORS_UID[0] = "red";
table_res = table_sklad.parentNode;
var myform = document.createElement('div');
mytable = document.createElement('div');
myform.id = 'sform';
str = "<table><tr><td bgcolor='#6b6c6a' align='center' colspan='4'><font color='#ffd875'><b>Поиск кинжала с N-страницы k страниц</b></td>";
str += "<td bgcolor='#6b6c6a' align='center'><font color='#ffd875'><b>Название артефакта</b></td><td bgcolor='#6b6c6a' align='center'><font color='#ffd875'><b>UID артефакта</b></td><td bgcolor='#6b6c6a'></td></tr>";
str += "<tr><td>N:</td><td><input type=text size='17' id=searchfrom value='0'></td><td>k:</td><td><input type=text size='17' id=searchto value='1000'></td>";
str += "<td><input type=text size='35' id=searchdata value='Эльфийский кинжал'></td><td><input type=text size='17' id=searchuid value='0'>0-поиск всех</td><td><center><input type=button value='Загрузить' id=startscan></center></td></tr></table>";
myform.innerHTML = str;
temp[0].children[1].children[0].children[0].children[0].insertBefore(myform, temp[0].children[1].children[0].children[0].children[0].children[1]);
str = "<table class='wb' border='0' style='border-top: none;' cellspacing='0' cellpadding='4'><tr><td align='center' class=wblight colspan='4'>Результат поиска артефакта 'Эльфийский кинжал' среди протокола склада</td></tr>";
str += "<tr align='center'><td class=wblight width='4%' align='center'>№</td><td class=wblight width='6%'>Страница</td><td class=wblight width='80%'>Строка протокола</td><td class=wblight width='10%'>UID артефакта</td></tr></table>";
mytable.innerHTML = str;
mytable=table_res.insertBefore(mytable, null);
document.getElementById('startscan').onclick = function(){prescaning();};
})();
function prescaning()
{
Num_page_start = Number(document.getElementById('searchfrom').value);
Count_page = Number(document.getElementById('searchto').value);
UID = Number(document.getElementById('searchuid').value);
Name_art = document.getElementById('searchdata').value;
var str = "<table class='wb' border='0' style='border-top: none;' cellspacing='0' cellpadding='4'><tr><td align='center' class=wblight colspan='4'>Результат поиска артефакта '" + Name_art + "' среди протокола склада</td></tr>";
str += "<tr align='center'><td class=wblight width='4%' align='center'>№</td><td class=wblight width='6%'>Страница</td><td class=wblight width='80%'>Строка протокола</td><td class=wblight width='10%'>UID артефакта</td></tr></table>";
mytable.innerHTML = str;
start_index = 0;
countres = 1;
scaning();
}
function updateres(text1, uid1, p1)
{
var tmp_tr;
tmp_tr = document.createElement('tr');
if(UID){
// сравнение uid
if(UID==uid1)tmp_tr.innerHTML = "<tr align='center'><td class=wbwhite width='4%' align='center'>" + countres + "</td><td class=wbwhite width='6%' align='center'>"+ p1 + "</td><td class=wbwhite width='80%'>"+ text1.split('<!--')[0] + "</td><td class=wbwhite width='10%' align='center'>"+ uid1 + "</td></tr>";
} else{
// изменение цвета разных uid
var col;
if(!UID_ARR.has(uid1)){
col = items.next();
UID_ARR.set(uid1, col);
} else {
col = UID_ARR.get(uid1);
}
tmp_tr.innerHTML = "<tr align='center'><td class=wbwhite width='4%' align='center'>" + countres + "</td><td class=wbwhite width='6%' align='center'>"+ p1 + "</td><td class=wbwhite width='80%'>"+ text1.split('<!--')[0] + "</td><td class=wbwhite width='10%' align='center'><font color='" + col.value[1] + "'>"+ uid1 + "</td></tr>";
}
mytable.childNodes[0].appendChild(tmp_tr);
countres++;
}
function scaning()
{
var xhr = new XMLHttpRequest();
var uri = url1 + '&page=' + (Num_page_start + start_index);
start_index++;
document.getElementById('startscan').value = "Загружено: " + start_index;
xhr.open("GET", uri, true);
xhr.overrideMimeType('text/html; charset=windows-1251');
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.status == 200) {
var text = xhr.responseText;
if(text.indexOf('Клан участвует в боевых действиях') > -1){
document.getElementById('startscan').value = "Загрузить";
alert('Клан участвует в боевых действиях, попробуйте запросить информацию позже.');
} else {
var arr = text.split('&gt;</a></center>')[1].split('-->');
var _uid, _text_uid, _p;
for(var i=0; i<arr.length; i++){
if(arr[i].indexOf(Name_art) > -1){
_text_uid = arr[i].slice(17, arr[i].length-14);
_uid = arr[i].split('<!--')[1];
_p = Num_page_start + start_index;
updateres(_text_uid, _uid, _p);
}
}
if(Num_page_start+start_index<Count_page){
scaning();
}else{
if(mytable.children[0].children.length>1){
document.getElementById('startscan').value = "Загрузить";
alert("Готово!");
}else alert("Ничего не найдено, попробуйте изменить условия поиска.");
}
}
}
};
}