Smite Crosssite Links

Adds Cross-Site Links to hirezstudios.com/smitegame, smite.guru and smitestuff.com

目前为 2015-05-09 提交的版本。查看 最新版本

// ==UserScript==
// @name          Smite Crosssite Links
// @namespace     http://greasyfork.org/users/2240-doodles
// @author        Doodles
// @version       1
// @description   Adds Cross-Site Links to hirezstudios.com/smitegame, smite.guru and smitestuff.com
// @include       *://account.hirezstudios.com/smitegame/Teams.aspx?teamId=*
// @include       *://account.hirezstudios.com/smitegame/stats.aspx?player=*
// @include       *://account.hirezstudios.com/smitegame/match-details.aspx*match=*
// @include       *://smite.guru/stats/*
// @include       *://smite.guru/match/*
// @include       *://smitestuff.com/players/*
// @grant         none
// @updateVersion 1
// ==/UserScript==
	
if (UrlContains("account.hirezstudios.com/smitegame/Teams.aspx")){
	document.title = "Clan: " + document.getElementById("lblHeader").innerHTML.replace("Team Profile : ","");
}

if (UrlContains("account.hirezstudios.com/smitegame/stats.aspx")){
	var playerName = document.URL.split("player=")[1].split("&")[0];
	document.title = "Profile: " + playerName;
	var div = document.getElementById("smiteHeaderRight");
	div.setAttribute("style", "font-size:14px;margin-top:86px;");
	div.appendChild(document.createTextNode("View " + playerName + " on: "));
	div.appendChild(MakeLink("http://smite.guru/stats/" + playerName, playerName + " on Smite.guru", "Smite.guru", "58daff"));
	div.appendChild(document.createTextNode(" | "));
	div.appendChild(MakeLink("http://smitestuff.com/players/" + playerName, playerName + " on Smitestuff.com", "Smitestuff.com", "ffa264"));
	var matchButton = document.getElementById("btnGoToMap");
	while(matchButton != null){
		var matchParent = matchButton.parentNode;
		var matchId = matchButton.value.replace("Match Details","").trim();
		matchParent.removeChild(matchButton);
		matchParent.setAttribute("style", "width:160px;float:right;font-size:11px;text-align:right;");
		matchParent.appendChild(MakeLink("http://account.hirezstudios.com/smitegame/match-details.aspx?match=" + matchId, "Match Details " + matchId, "Match Details", "FFFFFF"));
		matchParent.appendChild(document.createElement("br"));
		matchParent.appendChild(MakeLink("http://smite.guru/match/" + matchId, matchId + " on Smite.guru", "Smite.guru", "58daff"));
		matchButton = document.getElementById("btnGoToMap");
	}
	var averageTd = document.getElementsByClassName("averages");
	for	(var i = 0; i < averageTd.length; i++){
		if(averageTd[i].innerHTML.indexOf("Avg Deaths") != -1){
			averageTd[i].innerHTML = "Deaths";
		}
	}
}

if (UrlContains("account.hirezstudios.com/smitegame/match-details.aspx")){
	var matchId = document.URL.split("match=")[1].split("&")[0];
	document.title = "Match: " + matchId;
	var div = document.getElementById("smiteHeaderRight");
	div.setAttribute("style", "font-size:14px;margin-top:86px;");
	div.appendChild(document.createTextNode("View " + matchId + " on: "));
	div.appendChild(MakeLink("http://smite.guru/match/" + matchId, matchId + " on Smite.guru", "Smite.guru", "58daff"));
	var tableDiv = GetElementsById("div", "panDetailsTable");
	for (var i = 0; i < tableDiv.length; i++){
		var td = tableDiv[i].getElementsByTagName("td");
		var offRow = false;
		for (var j = td.length - 16; j < td.length - 5; j++){
			if(offRow){
				td[j].setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
			}else{
				td[j].setAttribute("style", "background:linear-gradient(to bottom, #1a2530 0%, #060a0e 100%);");
			}
			offRow = !offRow;			
		}
		var accLvl = tableDiv[i].getElementsByClassName("playerTt")[0].getElementsByTagName("td");
		var accLvlText = accLvl[accLvl.length - 1].innerHTML.trim();
		
		var table = tableDiv[i].getElementsByTagName("table")[0].getElementsByTagName("tbody")[0];
		var trElement = document.createElement("tr");
		var tdElement = document.createElement("td");
		tdElement.setAttribute("class", "detailCell");
		if(accLvlText < 16){
			tdElement.setAttribute("style", "background:linear-gradient(to bottom, #750101 0%, #1e0101 100%);");
		}else if(accLvlText < 30){
			tdElement.setAttribute("style", "background:linear-gradient(to bottom, #35350f 0%, #0b0b01 100%);");
		}else{
			tdElement.setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
		}
		tdElement.appendChild(document.createTextNode(accLvlText));
		trElement.appendChild(tdElement);
		table.insertBefore(trElement, table.childNodes[27]);
	}
	//alert(tableDiv[0].getElementsByTagName("table")[0].getElementsByTagName("tbody")[0].childNodes.length);
	var th = document.getElementById("tableDetailsHeader").getElementsByTagName("th");
	var offRow = false;
	for (var i = 1; i < th.length; i++){
		if(offRow){
			th[i].setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
		}else{
			th[i].setAttribute("style", "background:linear-gradient(to bottom, #1a2530 0%, #060a0e 100%);");
		}
		offRow = !offRow;		
	}
	var titleTable = document.getElementById("tableDetailsHeader").getElementsByTagName("tbody")[0];
	var trElement = document.createElement("tr");
	trElement.setAttribute("class", "detailGradient averages");
	var tdElement = document.createElement("th");
	tdElement.setAttribute("class", "detailCell");
	tdElement.setAttribute("style", "background:linear-gradient(to bottom, #162c16 0%, #060b06 100%);");
	tdElement.appendChild(document.createTextNode("Account Level"));
	trElement.appendChild(tdElement);
	titleTable.appendChild(trElement);
}

if (UrlContains("smite.guru/stats")){
	var playerName = document.URL.split("/stats/")[1].split("/")[0].split("?")[0];
	document.title = "Profile: " + playerName;
	var rightBox = document.getElementsByClassName("col-sm-8 text-right")[0];
	var link1 = MakeLink("http://smitestuff.com/players/" + playerName, playerName + " on Smitestuff.com", "Smitestuff.com", "000000");
	link1.setAttribute("style", "color: #442200;text-decoration:underline;");
	rightBox.insertBefore(link1, rightBox.childNodes[0]);
	rightBox.insertBefore(document.createTextNode(" | "), rightBox.childNodes[0]);
	var link2 = MakeLink("http://account.hirezstudios.com/smitegame/stats.aspx?player=" + playerName, playerName + " on Hirezstudios.com", "Hirezstudios.com", "000000");
	link2.setAttribute("style", "color: #442200;text-decoration:underline;");
	rightBox.insertBefore(link2, rightBox.childNodes[0]);
	rightBox.insertBefore(document.createTextNode("View Profile on: "), rightBox.childNodes[0]);
}

if (UrlContains("smite.guru/match")){
	var matchId = document.URL.split("/match/")[1].split("/")[0].split("?")[0];
	document.title = "Match: " + matchId;
	var rightBox = document.getElementsByClassName("col-sm-5 text-right")[0];
	var link = MakeLink("http://account.hirezstudios.com/smitegame/match-details.aspx?match=" + matchId, matchId + " on Hirezstudios.com", "Hirezstudios.com", "000000");
	link.setAttribute("style", "color: #442200;text-decoration:underline;");
	rightBox.insertBefore(link, rightBox.childNodes[0]);
	rightBox.insertBefore(document.createTextNode("View Match on: "), rightBox.childNodes[0]);
}

if (UrlContains("smitestuff.com/players")){
	var playerName = document.URL.split("/players/")[1].split("/")[0].split("?")[0].split("#")[0];
	document.title = "Profile: " + playerName;
	var leftBox = document.getElementsByClassName("submenu")[0];
	var liElement1 = document.createElement("li");
	liElement1.appendChild(MakeLink("http://smite.guru/stats/" + playerName, playerName + " on Smite.guru", "Smite.guru", "58daff"));
	leftBox.appendChild(liElement1);
	var liElement2 = document.createElement("li");
	liElement2.appendChild(MakeLink("http://account.hirezstudios.com/smitegame/stats.aspx?player=" + playerName, playerName + " on Hirezstudios.com", "Hirezstudios.com", "f0ff00"));
	leftBox.appendChild(liElement2);
}

// =============================================================

function UrlContains(urlfragment){
	return document.URL.indexOf(urlfragment) != -1;
}

function MakeLink(url, title, displayText, color){
	var linkElement = document.createElement("a");
	linkElement.setAttribute("title", title);
	linkElement.setAttribute("href", url);
	linkElement.setAttribute("style", "color: #" + color + ";");
	linkElement.appendChild(document.createTextNode(displayText));
	return linkElement;
}

function GetElementsById(tagNAME, elementID){ // http://stackoverflow.com/a/7936086
    var elementCollection = new Array();
    var allElements = document.getElementsByTagName(tagNAME);
    for(i = 0; i < allElements.length; i++){
        if(allElements[i].id == elementID){
            elementCollection.push(allElements[i]);
		}
    }
    return elementCollection;
}