NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @namespace https://openuserjs.org/users/Wolfar // @name Battle Monitor For Premium Players // @version 0.0.0 // @description Show Online Spectators, Attackers, Defenders On Battles Page Each 5 Sec's // @include https://*.e-sim.org/battles.html* // @license MIT // @grant none // ==/UserScript== // ==OpenUserJS== // @author Wlfar // ==/OpenUserJs== var spec = []; var attack = []; var defend = []; var hrefArr = []; let server = window.location.host.split('.')[1] ? window.location.host.split('.')[0] : false; let tabletr = document.querySelector('tbody').querySelectorAll('tr'); let battleDiv = document.querySelectorAll('.battleDiv'); for(let i=0; i+1 < tabletr.length;i++) { let href = battleDiv[i].childNodes[3].childNodes[3].childNodes[3].href.split('https://' + server + '.e-sim.org/')[1]; hrefArr.push(href); let newDiv = document.createElement('div'); let newDiv2 = document.createElement('div'); newDiv2.style = 'width: 100%'; let newA = document.createElement('p'); newA.innerHTML = 'Attackers'; newA.style = 'width: 50%; float:right;'; attack.push(newA); let newD = document.createElement('p'); newD.innerHTML = 'Defenders'; newD.style = 'width: 50%; float:left;'; defend.push(newD); let newS = document.createElement('p'); newS.style = 'text-align:center'; newS.innerHTML = 'Spectators'; spec.push(newS); let position = tabletr[i+1].childNodes[1].childNodes[1].childNodes[7]; newDiv.appendChild(newA); newDiv.appendChild(newD); newDiv2.appendChild(newS); newDiv.appendChild(newDiv2); position.appendChild(newDiv); } function Spectators() { spec.forEach((x, index) => { let y = attack[index]; let z = defend[index]; let w = hrefArr[index]; fetch(w) .then(function(response) { return response.text() }) .then(function(html) { let parser = new DOMParser(); let doc = parser.parseFromString(html, "text/html"); let def = doc.querySelector('#totaldefenders').innerHTML; let att = doc.querySelector('#totalattackers').innerHTML; let All = doc.querySelector('#totalspectators').innerHTML; y.innerHTML = '<strong>Attackers: ' + att + '</strong>'; z.innerHTML = '<strong>Defenders: ' + def + '</strong>'; x.innerHTML = '<strong>Spectators: ' + All + '</strong>'; }) .catch(function(err) { console.log('Failed to fetch page: ', err); }) }); } var interval = setInterval(function(){Spectators()},5000);