blabla
目前為
// ==UserScript==
// @name Show total and stats of kills
// @version 0.1
// @description blabla
// @author A Meaty Alt
// @include /index\.php\?page=54&ID=/
// @grant none
// @namespace https://greasyfork.org/users/150647
// ==/UserScript==
(function() {
'use strict';
var killsTable = document.getElementsByClassName("sample")[0];
var killsTbody = killsTable.firstElementChild;
var killsData = killsTbody.children;
var totalKills = 0;
for(var i=1; i<killsData.length; i++){
totalKills += parseInt(killsData[i].children[1].textContent);
}
var totalKillsRow = document.createElement("tr");
totalKillsRow.classList.add("dont-count");
var title = document.createElement("td");
title.innerHTML = "<b>Total kills:</b> ";
var value = document.createElement("td");
value.innerHTML = "<b>"+totalKills+"</b>";
totalKillsRow.appendChild(title);
totalKillsRow.appendChild(value);
killsTbody.appendChild(totalKillsRow);
createStatsButton();
function createStatsButton(){
var button = document.createElement("input");
button.type = "button";
button.value = "Show kills from each clan";
button.addEventListener("click", showStats);
killsTable.parentElement.appendChild(button);
function showStats(){
button.disabled = true;
loadClanKills()
.then((clanKills) => {
for(var clan in clanKills){
var clanKillsRow = document.createElement("tr");
clanKillsRow.classList.add("dont-count");
var title = document.createElement("td");
var clanName = clan? clan : "Clanless";
title.innerHTML = "<b>"+clanName+"</b> kills: ";
var value = document.createElement("td");
value.innerHTML = "<b>"+clanKills[clan]+"/"+totalKills+"</b>";
clanKillsRow.appendChild(title);
clanKillsRow.appendChild(value);
killsTbody.appendChild(clanKillsRow);
}
});
function loadClanKills(){
return new Promise((resolve) => {
var killsData = document.getElementsByClassName("sample")[0].firstElementChild.children;
var clanKills = {};
var auxI = 1;
for(var i=1; i<killsData.length; i++){
if(killsData[i].classList.contains("dont-count")) continue;
var userId = killsData[i].children[0].firstElementChild.href.match(/u=(.*)/)[1]; //yes, it's ugly. Deal with it
getClan(userId)
.then((clan) => {
var kills = parseInt(killsData[auxI++].children[1].textContent);
if(clanKills[clan]){
clanKills[clan] += kills;
}
else
clanKills[clan] = kills;
});
}
setTimeout(() => {
resolve(clanKills);
}, 10000);
});
}
}
function getClan(userId){
return new Promise((resolve) => {
$.post("https://fairview.deadfrontier.com/onlinezombiemmo/get_values.php",
"userID="+userId,
(response) => {
resolve(response.match(/df_clan_name=(.*?)&/)[1].trim());
});
});
}
}
})();