JvHelpMaj

By Megaman Last update Feb 4, 2009 — Installed 32 times. Daily Installs: 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0

There are 2 previous versions of this script.

// ==UserScript==
// @name           JvHelpMaj
// @namespace       
// @description    Liste les personnes ayant pointé.
// @include        http://www.jeuxvideo.com/forums/1-13756-2416-*
// ==/UserScript==

// http://image.jeuxvideo.com/css_img/noel2008/noel2008_bleu.jpg
// http://www.noelshack.com/uploads/wait028281.jpg

function extraire(content) {
   temp = content.toLowerCase();
   var x = temp.indexOf("<div id=\"col1\">");
   if (x == -1) return "";

   //x = temp.indexOf(">", x);
   //if(x == -1) return "";

   var y = temp.lastIndexOf("<div id=\"col2\">");
   if (y == -1) y = temp.lastIndexOf("</html>");
   if (y == -1) y = content.length;

   return content.slice(x, y);   
}

function principal(nick) {
	var lst = new Array();
	
	lst[0] = new Array("megaman_ntw protoman_ntw andromon myotismon itele tracetv yucca acidanthera balignon polichombr mrvictornewman michaelbaldwin danssoncul jerry_golet meganoob69", "Mega");
	lst[1] = new Array("maitre-misha ilot-geek", "Misha");
	lst[2] = new Array("feol feolthanatos99 feolthetanos99", "Feol");
	lst[3] = new Array("yuen yohnis", "Yuyune");
	//lst[4] = new Array("ailit", "Ailit");
	//lst[] = new Array("", "");
	
	for (var i = 0; i < lst.length; i++) {
		if (lst[i][0].match(nick.toLowerCase())) return lst[i][1];
	}
	
	return null;
}

function format(nick) {
	return nick.substr(0, 1).toString().toUpperCase() + nick.substr(1);
}

function points(h) {
	var tab = new Array();
	tab["00"] = 5;
	tab["01"] = 10;
	tab["02"] = 18;
	tab["03"] = 30;
	tab["04"] = 45;
	tab["05"] = 55;
	// CARTON PLEIN : 163
	return tab[h];
}

function ajoute(monTab, monIndice, monJour, monHeure) {
	if (monTab[monIndice][1] != monJour || monTab[monIndice][2] != monHeure) {
		monTab[monIndice][1] = monJour;
		monTab[monIndice][2] = monHeure;
		monTab[monIndice][3] += points(monHeure);
	}
}

function recherche(monTab, monPseudo) {
	var v = 0;
	for (var u = 0; u < monTab.length; u++) {
		if (monTab[u][0] == monPseudo) v = u + 1;
	}
	return v;
}

function affiche(tab, fen) {
	var maj = "<table align='center' cellpadding=0 cellspacing=0 style='width: 250px; border: 1px solid black;'><tr style='color: white; background: rgb(153,153,153); height: 26px;'><th style='border: 1px solid white;'>Pseudo</th><th style='border: 1px solid white; width: 20%;'>Pts</th></tr>";
	for (var i = 0; i < tab.length; i++) {
		var color = i % 2 ? "style='background: rgb(245,245,245);'" : "style='background: rgb(233,239,250);'";
		maj += "<tr " + color + "><td align='left' style='border: 1px solid white; padding-left: 10px;'>" + tab[i][0] + "</td><td align='right' style='border: 1px solid white; padding-right: 10px;'>" + tab[i][3] + "<td></tr>";
	}
	maj += "</table>";
	fen.document.getElementById('contenu').innerHTML = maj;
}

function tri(tab) {
	for (var i = 1; i < tab.length; i++) {
		if (tab[i][0].toLowerCase() < tab[i - 1][0].toLowerCase()) {
			var temp = new Array();
			temp[0] = tab[i - 1];
			tab[i - 1] = tab[i];
			tab[i] = temp[0];
			return 1;
		}
	}
	return null;
}

function liste_pointages(tabMaj, depart, fen) {
	if (fen.document.getElementById('col1')) {
		var heure = "";
		var jour = "";
		var pseudo = "";
		var date = "";
		var lis = fen.document.getElementById('col1').getElementsByTagName("li");
		var c = lis.length;
		var i = tabMaj.length;
		
		for (var u = depart; u < c; u++) {
			if (lis[u]) {
				if (lis[u].className == 'pseudo') {
					pseudo = lis[u].getElementsByTagName("strong")[0].innerHTML;
					date = lis[u + 1].innerHTML.split("\n")[1].replace("Posté le", "");
					heure = date.substr(date.length - 8, 2);
					jour = date.slice(0, date.length - 11);
					
					pseudo = principal(pseudo) ? principal(pseudo) : format(pseudo);
					
					if (heure == "00" || heure == "01" || heure == "02" || heure == "03" || heure == "04" || heure == "05") {
						if (i == 0) {
							tabMaj[i] = new Array(pseudo, jour, heure, points(heure));
							i++;
						} else {
							var indice = recherche(tabMaj, pseudo);
							if (indice) ajoute(tabMaj, indice - 1, jour, heure);
							else {
								tabMaj[i] = new Array(pseudo, jour, heure, points(heure));
								i++;
							}
						}
					}
				}
			}
		}
	affiche(tabMaj, fen);
	}
}

function add_things() {
	if (document.getElementById('col1')) {
	
		var preUrl = window.location.href.split("?")[0];
		var lis = document.getElementById('col1').getElementsByTagName("li");
		var c = lis.length;
		var pseudo = 0;
		
		for (var u = 0; u < c; u++) {
			if (lis[u]) {
				if (lis[u].className == 'pseudo') {
					pseudo = u;
					var urlMaj = preUrl + "?" + pseudo;
					lis[pseudo].innerHTML += "<a class='lien_maj' href='"+ urlMaj + "'></a>&nbsp;";
						tagA = lis[pseudo].getElementsByTagName("a");
						var d = tagA.length;
						for (var v = 0; v < d; v++) {
							if (tagA[v].className == 'lien_maj') tagA[v].innerHTML = '<img src="http://www.noelshack.com/uploads/maj089092.gif">';
						}
				}
			}
		}
	}
}

function main() {
	var debut = window.location.href.split("?")[1] ? parseInt(window.location.href.split("?")[1]) : -1;
	var url = window.location.href.split("?")[0];
	var Maj = new Array();
	var sml = Math.floor(Math.random() * 71) + 1;
	
	if (debut >= 0) {
		maFenetre = window.open("", "x");
		maFenetre.document.write("<html>");
		maFenetre.document.write("<head><title>Statistiques de pointage</title></head>");
		maFenetre.document.write("<body style='background: rgb(162,170,183) no-repeat; margin-top: 10px; text-align: center;'>");
		maFenetre.document.write("<div style='margin-bottom: 20px;'><img src='http://www.noelshack.com/uploads/ban093706.jpg'></div>");
		maFenetre.document.write("<h1>- Statistiques de pointage -</h1>");
		maFenetre.document.write("<div id='contenu'><img src='http://www.noelshack.com/uploads/wait028281.jpg'></div>");
		maFenetre.document.write("<h5>Script conçu par Megaman_ntw</h5><img src='http://www.jeuxvideo.com/smileys/" + sml + ".gif'>");
		maFenetre.document.write("<div id='displayed' style='display: none;'></div>");
		maFenetre.document.write("</body>");
		maFenetre.document.write("</html>");
		maFenetre.document.close();
	
		req = new XMLHttpRequest();
		req.open("GET", url, false);
		req.send(null);
	
		while (req.status == 200) {
			maFenetre.document.getElementById('displayed').innerHTML = extraire(req.responseText);
			liste_pointages(Maj, debut, maFenetre);
			var nb = parseInt(url.split("-")[3]) + 1;
			url = "http://www.jeuxvideo.com/forums/1-13756-2416-" + nb + "-0-1-0-0.htm";
			req.abort();
			req.open("GET", url, false);
			req.send(null);
			debut = 0;
		}
		
		
		while (tri(Maj)) affiche(Maj, maFenetre);
	} else add_things();
}

main();