HWM_ClanStoreBlacksmithHelper

Помощник кланового кузнеца

נכון ליום 13-07-2022. ראה הגרסה האחרונה.

// ==UserScript==
// @name         HWM_ClanStoreBlacksmithHelper
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Помощник кланового кузнеца
// @author       Zeleax
// @include      /https?:\/\/(www.heroeswm.ru|178.248.235.15|www.lordswm.com|my.lordswm.com)\/(sklad_info.php.*)/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=lordswm.com
// @grant        none
// @license      MIT
// ==/UserScript==
var el, list, artName, e, reg, pro4ka, parentTr;

el=getE('//b[contains(text(),"Артефакты для ремонта")]');
if(el) parentTr=el.parentNode.parentNode.nextSibling; // tr со сломанными артами
if(parentTr) list=getL('.//td[table and @bgcolor]');

var arr=[];
for (var i=0 ; i<list.snapshotLength; i++)
{
    el=list.snapshotItem(i);
    e=getE('.//a[starts-with(@href, "art_info.php")]', el);
    if(e){
        if(reg=/\?id=(\S+)/.exec(e.href)) {
            artName=reg[1];

            if(reg=/\[0\/(\d+)\]/.exec(el.innerText)) {
                pro4ka=parseInt(reg[1]);
                arr.push([el, artName, pro4ka, 0]);
            }
        }
    }
}
// заполним колонку с количеством артов
for (i=0 ; i<arr.length; i++) {
    if(arr[i][3]==0){
        var cnt=1;
        artName=arr[i][1];
        for(var j=i+1 ; j<arr.length; j++)
            if(arr[j][1]==artName)
                cnt++;

        for(j=i ; j<arr.length; j++)
            if(arr[j][1]==artName)
                arr[j][3]=cnt;
    }
}

arr.sort(function(a, b){
    if (a[3]<b[3]) return 1;
    if (a[3]>b[3]) return -1;
    if (a[1]<b[1]) return -1;
    if (a[1]>b[1]) return 1;
    if (a[2]<b[2]) return 1;
    if (a[2]>b[2]) return -1;

    return 0;
});

arr[0][0].style.backgroundColor = "yellow"; // подсветить арт для ремонта

// var arrayOfNewChildren = arr.map(d => d[0]);
// parentTr.replaceChildren(...arrayOfNewChildren);

function getE(xpath,el,docObj){return (docObj?docObj:document).evaluate(xpath,(el?el:(docObj?docObj.body:document.body)),null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;}
function getL(xpath,el,docObj){return (docObj?docObj:document).evaluate(xpath,(el?el:(docObj?docObj.body:document.body)),null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);}
长期地址
遇到问题?请前往 GitHub 提 Issues。