TravianRankDisplay

By zsom Last update Oct 27, 2009 — Installed 8,517 times.

There are 1 previous version of this script.

// ==UserScript==
// @name           TravianRankDisplay
// @namespace      zsom
// @include        http://*.travian.*/spieler.php?uid=*
// ==/UserScript==

var profileTable = document.getElementById("profile");
var ths = profileTable.getElementsByTagName("th");
var profileText = ths[0].childNodes[0].nodeValue;
var name = profileText.substring(profileText.indexOf(" ") + 1);

getRank(name,'31','off');

var randInterval = Math.round(Math.random() * 2000 + 1000);
setTimeout(function(){getRank(name,'32','def');}, randInterval);

var hostParts = document.location.hostname.split(".");

var wsParam;
if(hostParts.length == 3){
	wsParam = hostParts[2];
	if(hostParts[0].substring(0,1) == 's'){
		wsParam += hostParts[0].substring(1);
	}

} else {
	wsParam = hostParts[1];
}

//alert(wsParam);

var uidStart = document.location.href.indexOf("uid=");
var uid = document.location.href.substring(uidStart + 4);


var wsLink = document.createElement("a");
var linkText =  document.createTextNode("analyzer");
wsLink.setAttribute("href","http://travian.ws/analyser.pl?s=" + wsParam + "&uid=" + uid);
wsLink.setAttribute("target","_blank");
wsLink.appendChild(linkText);
var nlNode = document.createElement("br");
var plRankNode = profileTable.getElementsByTagName("tbody")[0].getElementsByTagName("tr")[2].childNodes[3];
plRankNode.appendChild(nlNode);
plRankNode.appendChild(wsLink);

function getRank(player, urlId, type){
	var randX = Math.round(Math.random() * 40 + 5);
	var randY = Math.round(Math.random() * 10 + 7);
	var postData = "name=" + player + "&rank=1&submit=submit&submit.x=" + randX + "&submit.y=" + randY;
	var url = "http://" + document.location.hostname + "/statistiken.php?id=" + urlId;
	post(url, postData, type);
}

function post(url, data, type) {
	GM_xmlhttpRequest({
		method: "POST",
		url: url,
		headers:{'Content-type':'application/x-www-form-urlencoded'},
		data:encodeURI(data),
		onload: function(responseDetails) {       
					var text = responseDetails.responseText;     
					var start = text.indexOf('<td class="ra  fc" >') + 20;
					var end = text.indexOf("</td>",start);

					var cur_rank = text.substring(start, end -1);     
					addRankToPage(type,cur_rank);
				}
	});
}

function addRankToPage(type,rank){       
	var styleText = "background-position: 0 top; height: 30px; width: 30px; background-image: url(gpack/travian_default/img/s/" + type + ".gif); ";
	var imgNode = document.createElement("img");
	imgNode.setAttribute("src","img/x.gif");
	imgNode.setAttribute("style",styleText);

	var nlNode = document.createElement("br");
	var textNode = document.createTextNode(": " + rank + ". ");

	var plRankNode = profileTable.getElementsByTagName("tbody")[0].getElementsByTagName("tr")[2].childNodes[3];

	plRankNode.appendChild(nlNode);
	plRankNode.appendChild(imgNode);
	plRankNode.appendChild(textNode);
}