🏠 返回首頁 

Greasy Fork is available in English.

Картинки юнитов ГЛ в конце боя

Отображение картинок юнитов ГЛ, которые получены за бой

// ==UserScript==
// @name                  Картинки юнитов ГЛ в конце боя
// @version               0.1.2
// @description           Отображение картинок юнитов ГЛ, которые получены за бой
// @author                isnt
// @include               /^https:\/\/((www|qrator|my)(\.heroeswm\.ru|\.lordswm\.com))\/war.php/
// @grant                 GM_setValue
// @grant                 GM_getValue
// @grant                 GM.xmlHttpRequest
// @namespace https://greasyfork.org/users/239593
// ==/UserScript==
(function(window, undefined) {
let dailyRequest = false;
const doGet = (url, callback) => {
GM.xmlHttpRequest({
method: "GET",
url: url,
overrideMimeType: "text/xml; charset=windows-1251",
headers: {
'User-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1)',
'Accept': 'text/xml,text/html',
'Content-Type': 'text/plain; charset=windows-1251'
},
synchronous: false,
onload: function(res) {
callback(new DOMParser().parseFromString(res.responseText, "text/html"))
}
});
}
let arr = [];
let arrReserv = [];
const getLeader = () => {
let re1 = /(, |опыта )([^,]*)(?= в резерв)/gm;
let re2 = /((.*) \(|\+(.*) шт.)/gm;
let final = document.querySelector("#finalr###lt_text").innerHTML;
for(let i = 0; i < final.match(re1).length; i++) {
let m = final.match(re1)[i];
let name = re2.exec(m.match(re2)[0])[2];
if(/опыта/i.test(name)) name = name.replace('опыта ', '');
else name = name.replace(', ', '');
let count = re2.exec(m.match(re2)[1])[3];
arrReserv.push({
replace: final.match(re1)[i],
name: name,
fon: arr.find(item => item.name === name).fon,
img: arr.find(item => item.name === name).img,
count: Number(count),
cost: arr.find(item => item.name === name).cost
});
}
}
const divHtml = () => {
let divMon = document.createElement('div');
divMon.setAttribute('style', 'margin-bottom: 20px;');
document.querySelector("#win_BattleR###lt > div.info_separator_horizontal").after(divMon);
let mon = '';
for(let i = 0; i < arrReserv.length; i++) {
// document.querySelector("#finalr###lt_text").innerHTML = document.querySelector("#finalr###lt_text").innerHTML.replace(arrReserv[i].replace,`<span>, </span><div class="creature_slider_portrait creature_level1 new-leader" title="${arrReserv[i].name}" style="background: url(https://dcdn.heroeswm.ru/i/army_html/fon_lvl${arrReserv[i].fon}.png) no-repeat;image-rendering: -webkit-optimize-contrast;">
//                             <img src="https://dcdn.heroeswm.ru/i/army_html/frame_lvl${arrReserv[i].fon}.png" class="mon_image2">
//                             <img src="https://dcdn.heroeswm.ru/i/portraits/${arrReserv[i].img}.png">
//                             <div class="amount reserve_amount" style="font-size: 20px;">${arrReserv[i].count}</div>
//                             <p style="display: none;position: absolute; z-index: 10; top: 4px; left: 5px; font-weight: 600; font-size: 11px; color: #140e06;background-color: #f5c140;padding: 1px 5px;border-radius: 4px;">${arrReserv[i].count*arrReserv[i].cost}</p>
//                         </div>`);
mon += `<div class="creature_slider_portrait creature_level1 new-leader" title="${arrReserv[i].name}" style="background: url(https://dcdn.heroeswm.ru/i/army_html/fon_lvl${arrReserv[i].fon}.png) no-repeat;image-rendering: -webkit-optimize-contrast;">
<img src="https://dcdn.heroeswm.ru/i/army_html/frame_lvl${arrReserv[i].fon}.png" class="mon_image2">
<img src="https://dcdn.heroeswm.ru/i/portraits/${arrReserv[i].img}.png">
<div class="amount reserve_amount" style="font-size: 20px;">${arrReserv[i].count}</div>
<p style="display: none;position: absolute; z-index: 10; top: 4px; left: 5px; font-weight: 600; font-size: 11px; color: #140e06;background-color: #f5c140;padding: 1px 5px;border-radius: 4px;">${arrReserv[i].count*arrReserv[i].cost}</p>
</div>`;
}
divMon.innerHTML = `<b>Полученные юниты</b><div>${mon}</div>`;
document.querySelectorAll(".new-leader").forEach(function(el) {
el.addEventListener('mouseenter', function(e) { //
this.children[3].style.display = 'block';
});
el.addEventListener('mouseleave', function(e) { //
this.children[3].style.display = 'none';
});
});
}
const dailyLeader = () => {
return new Promise(((resolve, reject) => {
let dailyURL = "https://daily." + location.host.substring(location.host.indexOf(".") + 1) + "/leader/leader";
doGet(dailyURL, doc => {
let mon = doc.querySelectorAll("div[class=ccont]");
let re = /(title="(.*)" href="https|fon_lvl(.*)\.png\?|portraits\/(.*)\.png|">(?=[^.]*$)(.*)<\/a>)/g;
for(let i = 0; i < mon.length; i++) {
let x = mon[i].innerHTML;
let name = x.match(re)[0];
name = re.exec(name)[2];
let fon = x.match(re)[1];
fon = re.exec(fon)[3];
let img = x.match(re)[2];
img = re.exec(img)[4];
let cost = x.match(re)[3];
cost = re.exec(cost);
cost = Number(cost[5]);
arr.push({
name: name,
fon: fon,
img: img,
cost: cost
});
}
dailyRequest = true;
setImg();
resolve()
})
}))
}
const setImg = () => {
if(dailyRequest !== false) {
let timerId = setInterval(() => {
if(document.querySelector("#finalr###lt_text").children.length !== 0) {
clearInterval(timerId);
if(document.querySelector("#finalr###lt_text").innerHTML.indexOf('в резерв') !== - 1) {
getLeader();
divHtml();
}
}
}, 1000)
}
}
window.onload = function() {
dailyLeader();
}
})(window);