// ==UserScript==
// @name hwmAdvancedProtocol
// @namespace Tamozhnya1
// @version 1.3
// @description Цветные протоколы боёв, передач, клана и склада. Загрузка следующих страниц. Фильтрация.
// @author Tags, Tamozhnya1 2024
// @include /^https{0,1}:\/\/((www|my)\.(heroeswm|lordswm)\.(ru|com))\/(sklad_log|pl_transfers|pl_warlog|clan_log)\.(php.*)/
// @grant GM.xmlHttpRequest
// @license MIT
// @downloadURL none
// ==/UserScript==
// Tags https://greasyfork.org/ru/users/924307-foxxelias, Tamozhnya1 2024
const isEn = document.documentElement.lang == "en";
GM_addStyle(`
.battle_row {
width: 100%;
border-right: 1px solid black;
border-bottom: 1px solid black;
border-left: 1px solid black;
}
.battle_row img {
width: 14px;
height: 14px;
vertical-align: bottom;
}
`);
const types = [{
pattern: "бриллиантов обменяно ",
icon: ``,
color: "#00F120"
}, {
pattern: "вернул c ремонта ",
icon: ``,
color: "#FFF000"
}, {
pattern: "возвращено автоматически c ремонта",
icon: ``,
color: "#0008DC"
}, {
pattern: "Золото о",
icon: ``,
color: "#FFF8DC"
}, {
pattern: "взял в ремонт",
icon: ``,
color: "#FFF8DC"
}, {
pattern: "Куплен",
icon: ``,
color: "#DEB887"
}, {
pattern: "Вернул ",
icon: ``,
color: "#FFDEAD"
}, {
pattern: "арендова",
icon: ``,
color: "#FFEBCD"
}, {
pattern: "Передан",
icon: ``,
color: "#E0FFFF"
}, {
pattern: ", доп. комиссия ",
icon: ``,
color: "#B0C4DE"
}, {
pattern: "Продан ",
icon: ``,
color: "#ADFF2F"
}, {
pattern: "вернул",
icon: ``,
color: "#00FA9A"
}, {
pattern: "возвращ",
icon: ``,
color: "#7FFF00"
}, {
pattern: "Возвращено автоматически ",
icon: ``,
color: "#3CB371"
}, {
pattern: "Взят в ремонт ",
icon: ``,
color: "#7CFC00"
}, {
pattern: "Вернул c ремонта ",
icon: ``,
color: "#FA8072"
}, {
pattern: "Получен элемент ",
icon: ``,
color: "#00FF00"
}, {
pattern: "Получен ",
icon: ``,
color: "#F08080"
}, {
pattern: "",
icon: `
`,
color: "#cceecc"
}, {
pattern: "",
icon: `
`,
color: "#eeeecc"
}, {
pattern: "",
icon: `
`,
color: "#eeeecc"
}, {
pattern: "",
icon: `
`,
color: "#eeeecc"
}, {
pattern: "",
icon: `
`,
color: "#17d3bf"
}, {
pattern: "",
icon: `
`,
color: "#eeeecc"
}, {
pattern: "",
icon: `
`,
color: "#eeeecc"
}, {
pattern: "",
icon: `
`,
color: "#eeeecc"
}, {
pattern: "",
icon: `
`,
color: "#eeeecc"
}, {
pattern: "",
icon: `
`,
color: "#ccccee"
}, {
pattern: "",
icon: `
`,
color: ""
}, {
pattern: "",
icon: `
`,
color: "#cccccc"
}, {
pattern: "",
icon: `
`,
color: "#cccccc"
}, {
pattern: "",
icon: `
`,
color: "#cccccc"
}, {
pattern: "",
icon: `
`,
color: "#cccccc"
}, {
pattern: "",
icon: `
`,
color: "#b5b5b5"
}, {
pattern: "",
icon: `
`,
color: "#9b5755"
}, {
pattern: "",
icon: `
`,
color: "#8FBC8F"
}, {
pattern: "",
icon: `
`,
color: "#20B2A0"
}, {
pattern: "",
icon: `
`,
color: "#20B2AA"
}, {
pattern: "",
icon: `
`,
color: "#808000"
}, {
pattern: "",
icon: `
`,
color: "#9ACD32"
}, {
pattern: "",
icon: `
`,
color: "#008000"
}, {
pattern: "",
icon: `
`,
color: "#2E8B55"
}, {
pattern: "",
icon: `
`,
color: "#2E8B57"
}, {
pattern: "",
icon: `
`,
color: "#FFFF00"
}, {
pattern: "",
icon: `
`,
color: "#AFEEEE"
}, {
pattern: "",
icon: `
`,
color: "#00FA9A"
}, {
pattern: "",
icon: `
`,
color: "#7FFFD4"
}, {
pattern: "",
icon: `
`,
color: "#40E0D0"
}, {
pattern: "",
icon: `
`,
color: "#00CED1"
}, {
pattern: "",
icon: `
`,
color: "#5F9EA0"
}, {
pattern: "",
icon: `
`,
color: "#D2B48C"
}, {
pattern: "",
icon: `
`,
color: "#A52A2A"
},
];
const logContainerSelector = doc => doc.querySelectorAll('div.global_a_hover')[1];
const logContainer = logContainerSelector(document);
main();
function main() {
if(!logContainer) {
return;
}
logContainer.style.fontSize = "9pt";
logContainer.style.borderTop = "1px solid black";
const header = document.querySelector("div.hwm_pagination").parentNode;
const protocolSearchInput = addElement("input", { id: "protocolSearchInput", type: "text", style: "width: 150px; vertical-align: top;", title: isEn ? "Protocol filter" : "Фильтр по протоколу" }, header);
protocolSearchInput.addEventListener("input", search);
const currentPageIndex = getUrlParamValue(location.href, "page") || 0;
if(currentPageIndex != "last") {
// Кнопки загрузки
const pageCount = 5;
logContainer.insertAdjacentHTML("afterend", `