HWM Parts spoiler

Прячем части имперок

目前為 2022-06-25 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

//
// ==UserScript==
// @name           HWM Parts spoiler
// @author         Tags https://www.heroeswm.ru/pl_info.php?id=7773958
// @namespace      http://tampermonkey.net/
// @description    Прячем части имперок
// @icon           https://www.google.com/s2/favicons?sz=64&domain=heroeswm.ru
// @version        0.2
// @include        /^https{0,1}:\/\/(www\.heroeswm\.ru|178\.248\.235\.15|my\.lordswm\.com)\/(pl_info.php*|inventory.php.*|auction_new_lot.php.*|object-info.php*|house_info.php*|transfer.php*)/

// ==/UserScript==

//Что считается элементом и не подпадает под скрытие
const ignore = ["абразив","змеиный яд","клык тигра","ледяной кристалл","лунный камень","огненный кристалл","осколок метеорита","цветок ведьм","цветок ветров","цветок папоротника","ядовитый гриб"]

function main(){


    let elementsTable = document.getElementsByClassName('wb')[10];
if(elementsTable.innerText===`Ресурсы`){
elementsTable = document.getElementsByClassName('wb')[13];
}
    //Вытаскиваем все доступные элементы и превращаем в объекты.
    const items = elementsTable.innerHTML.split(/&nbsp;/).filter(e => e !== "").map(s => s.replaceAll("<b>", "").replaceAll("<br>", "").replaceAll("</b>", "")).map(e => ({
        name: e.split(':')[0],
        value: e.split(':')[1],
        isIgnored: ignore.includes(e.split(':')[0]),
    }));

    //Чистим табличку
    elementsTable.innerHTML = "";

    if(items.filter(e => !e.isIgnored).length > 0){
        const nonElements = items.filter(e => !e.isIgnored);
        let spoiler = document.createElement('details');
        let summary = Object.assign(
            document.createElement('summary'), {
                innerText: `Части`,
            });
        spoiler.appendChild(summary);
        elementsTable.appendChild(spoiler);

        for (let item of nonElements) {
            const div = Object.assign(
                document.createElement('div'), {
                    innerHTML: `<div>&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,
                });;
            spoiler.appendChild(div);
        }
    }

    if(items.filter(e => e.isIgnored).length > 0 && items.filter(e => !e.isIgnored).length > 0){
        elementsTable.appendChild(document.createElement('br'))}

    if(items.filter(e => e.isIgnored).length > 0){

        const elements = items.filter(e => e.isIgnored);
        for (let item of elements) {
            const div = Object.assign(
                document.createElement('div'), {
                    innerHTML: `<div>&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,
                });;
            elementsTable.appendChild(div);
        }
    }

}

(function() {
    'use strict';
    main();
})();