Infos WarRiders

Affiche des informations complémentaires dans WarRiders

目前为 2016-05-27 提交的版本。查看 最新版本

// ==UserScript==
// @name        Infos WarRiders
// @include     http://www.war-riders.de/*/*/details/player/*
// @include     http://www.war-riders.de/*/*/details/ally/*
// @include     http://www.war-riders.de/?lang=*&uni=*&type=player&name=*
// @include    	http://www.war-riders.de/?lang=*&uni=*&page=compare*&*
// @description	Affiche des informations complémentaires dans WarRiders
// @namespace   ogame
// @version     2
// @grant       none
// @author     Nitneuc -- Libre d'être modifié ou reproduit, tant que cette ligne @author reste complète

// ==/UserScript==

/*
// ****** Informations ******
Installation:
-------------
https://greasyfork.org/fr/scripts/19944-nombre-planetes-warriders
compatible firefox

ChangeLog:
----------
v1 : 25 mai 2016
*Première version stable

v1.1 : 25 mai 2016
*Ajout d'une page dans @include

v2 : 28 mai 2016
*Réorganisation du script en fonctions et prototypes
*Nouvelles informations : Pourcentage des points spécifiques (Économie, Recherche et Militaire) par rapport au total des points pour les joueurs et les alliances
*
*/

var strFunc = (function(){
	function $(id) {
			// Abrégé de document.getElementById(id);
			return document.getElementById(id);
	}
	
	String.prototype.supprNonNum = function() { // Supprime le ou les espaces se trouvant en fin de chaîne
		return this.replace(/[^0-9-]/g,'');
	};
	
	function get_points(rubr){ // Renvoie le nombre de points affichées dans la rubrique rubr ("Points", "Économie", "Recherche", "Militaire")
		var tabl_stat = get_WRtable("Statistiques");
		if ( tabl_stat != undefined ) {
			var liste_lign = tabl_stat.getElementsByTagName('tr');
			for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
				var case1 = liste_lign[j].getElementsByTagName('td')[0];
				if ( case1 != undefined && case1.innerHTML.match(new RegExp(rubr)) ) return parseInt(liste_lign[j+2].getElementsByTagName('td')[6].innerHTML.supprNonNum());
			}
		}
	}
	
	function write_points(rubr, info) { // Dans la table dénombrant les points, écrit info dans la rubrique rubr ("Points", "Économie", "Recherche", "Militaire")
		var tabl_stat = get_WRtable("Statistiques");
		if ( tabl_stat != undefined ) {
			var liste_lign = tabl_stat.getElementsByTagName('tr');
			for (var j=0; j<liste_lign.length; j++) { // Parcours de toutes les lignes de la table
				var case1 = liste_lign[j].getElementsByTagName('td')[0];
				if ( case1 != undefined && case1.innerHTML.match(new RegExp(rubr)) ) case1.innerHTML += info;
			}
		}
	
	
	}
	
	function get_WRtable(titr) { // Renvoie l'élément HTML table de WarRiders qui porte pour titre titr. Re,voie false si inexistant
		var liste_tabl = document.getElementsByTagName('table');
		for (var i=0; i<liste_tabl.length; i++) { // Parcours de tous les éléments 'table' de la page
			if ( liste_tabl[i].getElementsByTagName('tr')[0].innerHTML.match(new RegExp(titr))) return liste_tabl[i];
		}
		return false;
	}



	// **************************************
	// *** *** Tableau "Statistiques" *** ***
	// **************************************
		
	if ( get_WRtable("Statistiques") ) { // S'éxécute que si la table titrée "Statistiques" existe
		var p_tot = get_points('Points');
		var p_eco = get_points('Économie');
		var p_rec = get_points('Recherche');
		var p_mil = get_points('Militaire');
			
		write_points('Économie', ' <font color="black">('+(100*p_eco/p_tot).toFixed(2)+'%)</font>');
		write_points('Recherche', ' <font color="black">('+(100*p_rec/p_tot).toFixed(2)+'%)</font');
		write_points('Militaire', ' <font color="black">('+(100*p_mil/p_tot).toFixed(2)+'%)</font');
	}	
		
	// **********************************
	// *** *** Tableau "Planètes" *** ***
	// **********************************
		
	var tabl_coord = get_WRtable("Planète trouvé|coordonnées");
	if ( tabl_coord ) { // S'éxécute que si la table titrée "Planète trouvé" ou "coordonnées" existe
		var liste_lign = tabl_coord.getElementsByTagName('tr');
		var nbpl=0;
		for (var j=0; j<liste_lign.length; j++) { // Parcors de toutes les lignes de la table
			var case1 = liste_lign[j].getElementsByTagName('td')[0];
			if ( case1 != undefined ) {
				var case1_a = case1.getElementsByTagName('a')[0];
				if ( case1_a != undefined ) if ( case1_a.innerHTML.match(/[0-9]+:[0-9]+:[0-9]+/) ) nbpl++; // Compte des planètes
				}	
		}
		tabl_coord.innerHTML += '<div align="center"><b>'+nbpl+' planètes</b></div>';
	}
}).toString();


var script = document.createElement("script");
script.setAttribute("type","text/javascript");
script.text = "(" + strFunc + ")();";
document.body.appendChild(script);