OGStats 0.52

Publicado por Alejandro Escario en

Hoy os traigo una nueva versión de OGStats, versión en la que por fin se hace público el famoso script de «automatización» entre otras cosas.

  1. Agregado código de identificación de cuenta: en esta versión se han creado unos strings de identificación única para cada una de las cuentas que se vayan creando; este va a ser un elemento crucial a la hora de configurar el script de actualización automática.
  2. Creado el script de identificación: al final de este artículo se explicará como configurar el script para un correcto funcionamiento.
  3. Mejorado el formulario de búsqueda: ya que en esta actualización permite el uso de más de un idioma, se ha hecho una selección por ajax de los universos según el dominio seleccionado.
  4. Mejorado el formulario de creación de cuenta: por las mismas razones que el apartado anterior.
  5. Borradas columnas innecesarias de la base de datos.
  6. Añadido un gestor de idiomas: en esta versión ya se permite el uso de OGStats en inglés además de español.
  7. Corregido un error leve en las búsquedas.

Antes de nada, para ejecutar correctamente el javascript necesitarás tener instalado el plugin de greasemonkey, una vez instalado, tendrás que copiar el código javascript que encontrarás a continuación en un archivo que ha de llamarse ogstats.user.js

// ==UserScript==
// @name           OGStats
// @author         Alejandro Escario
// @date           20-11-2008
// @version        1.0
// @namespace      OGStats
// @description    OGStats
// @include        *{{universe}}.ogame.org*page=overview*
// ==/UserScript==

_code = '{{code}}';

_url = 'http://ogstats.bitnbyte.org/';
_version = 'xvfcuj';
_timeOffset = +0;

begin();

function begin(){
	if(readCookie() == "OGStats") return;
	var obj = document.getElementById('playerName');
	obj.innerHTML += '  ';
	document.getElementById('btnOGStats').addEventListener('click', process, false); //necesario para ejecutar el onclick desde greasemonkey
}

function process(){
	var content = document.getElementById('scoreContentField').innerHTML;
	if(content == ''){
		alert('Hasta que no aparezca la posición no se podrán enviar los datos...');
		reurn;
	}
	content = content.replace(/]+)>|/gi,"");
	btn2img(content);
}

function btn2img(content){
	makeCookie();
	var obj = document.getElementById('OGStats');
	var img = _url + "send.php";
	img += "?code=" + _code + "&text=" + content + "&version=" + _version;
	obj.innerHTML = "";
}

function getTTE(){
	var hoy = new Date();

	_timeOffset *= -60;
	var gmtServerTime = (hoy.getHours() * 60 * 60 + hoy.getMinutes() * 60 + hoy.getSeconds()) + (hoy.getTimezoneOffset()*60) - (_timeOffset * 60);
	
	var TTE = (24*60*60) - gmtServerTime;
	TTE *= 1000;
	
	hoy.setTime(hoy.getTime() + TTE);
	
	return hoy.toGMTString();
}

function makeCookie () {  
	var expiresIn = getTTE(); 
	var _value = "OGStats";
	var _name = "OGStats";
	
	document.cookie = _name + "=" + escape(_value) + "; expires=" + expiresIn + "; path=/"; 
}  

function readCookieValue(_index) {  
	var _cookie = document.cookie   
	var endString = _cookie.indexOf(";", _index)  
	if (endString == -1)  
	    endString = _cookie.length  
	
	return unescape(_cookie.substring(_index, endString))  
}  
  
function readCookie() {  
  var _name = "OGStats";
    
	var _cookie = document.cookie  
	  
	var arg = _name + "="  
	var alen = arg.length           
	var glen = _cookie.length       
	
	var i = 0  
	while (i < glen) {  
		var j = i + alen                   
		if (_cookie.substring(i, j) == arg)
		    return readCookieValue(j)      
		
		i = _cookie.indexOf(" ", i) + 1    
		if (i == 0)  
			break                           
	}  
	return null                          
}

ahora vamos a configurarlo:

  1. Sustituir {{universe}} por el servidor en el que juegas.
  2. Sustituir {{code}} por el código de cuenta (por el momento para adquirirlo, deberás de pedírmelo).

Una vez hecho todo esto hemos de guardar el archivo en el ordenador e introducirlo en el greasemonkey (Archivo>Abrir archivo...).

Una vez instalado el script cuando entres a OGame verás un botón (sólo aparece una vez al día) en la parte superior de la página, tras apretarlo este desaparecerá y en su lugar veremos una imagen:

  1. Roja: se produjo un error al actualizar la cuenta.
  2. Verde: todo fue bien.
  3. Amarillo: ya se ha introducido un registro hoy.
  4. Azul: la versión del script no es correcta.

NOTA*: El script está programado para la nueva versión de OGame.
NOTA**: Por el momento cuando se envian datos con el plugin la firma no se actualiza (aun no lo he conseguido), por lo que he puesto un boton para actualizarla en cada cuenta.

Categorías: OGStats

6 comentarios

Niserbmon · marzo 11, 2009 a las 11:57 pm

Si! Al fin 😀
El preciado script…

Bueno… Ahora voy a empezar a «actualizarlo». Qué hay que hacer para obtener la cadena _code? 😛
Soy peresozo…

Conoces el script para Greasemonkey «InfoCompte International»?
También da estadísticas gráficas y permite hacer una suerte de firmas usando (Creo) Google Apps…

Otra vez: Genial tu trabajo!
Saludos y suerte!

Alejandro · marzo 12, 2009 a las 12:10 am

Simplemente tienes que decirme el id de tu cuenta del uni 42.org o del alemán con la nueva versión y yo te lo doy 😉

no, la verdad es que no conocia ese script :P, lo miraré.

Niserbmon · marzo 12, 2009 a las 9:36 am

Apa… Acabo de caer en la cuenta que la primera «NOTA*» se refiere a la BETA! Ups… (Creí que era la v0.83)

Casi no uso la Beta. La cuenta que tengo ahí es sólo para ver qué mejoras le hacen o proponer algunas. Subo puntos muy de a poco…

Bueno, no importa, voy a revisar el «InfoCompte International» para ver si puedo hacer andar el tuyo en la 0.83… Me permites? 😛

Saludos, y muchas gracias!

Alejandro · marzo 12, 2009 a las 2:17 pm

si claro, si lo consigues damelo antes de hacerlo publico para hacer que sólo se envien los datos una vez al día ;), que si no saturamos rápido el server jajajaj.

Niserbmon · marzo 12, 2009 a las 4:01 pm

Bueno, voy a ver lo que sale este fin de semana.
Antes que nada, sabé que soy bien noob en programación, pero en el 85% de los casos hago funcionar las cosas sin tener idea del lenguaje o funcionamiento del programa. 😛

Te estaba por preguntar si para que se actualice una vez al día no se podían usar las cookies; pero acabo de darme cuenta que te referías a que vos te encargás de eso (Yo soy el tonto acá, jaja!).

Bueno, saludos y suerte!

    Alejandro · marzo 12, 2009 a las 8:54 pm

    Jejeje, nada, tranquilo, todos estamos igual, yo tampoco llevo mucho tiempo programando 😉

Los comentarios están cerrados.