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> ";
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();
