Escolardeprisa

By jotarp Last update Oct 29, 2009 — Installed 38 times.
// ==UserScript==
// @name            Escolardeprisa
// @namespace       http://jotarp.org/2009/06/proyectos/userscript-para-escolarnet.html
// @description     Script para filtrar comentarios por puntuación en http://escolar.net
// @include         http://escolar.net/MT/archives/*
// @include         http://www.escolar.net/MT/archives/*
// @version         2.0
// @license: GNU/GPL v3 (http://www.gnu.org/copyleft/gpl.html)
// ==/UserScript==

// Como con "require" no me funciona, cargo JQuery manualmente...
// set up jQuery variable
var $;

// Add jQuery
var GM_JQ = document.createElement("script");
GM_JQ.src = "http://www.escolar.net/wp-content/plugins/jquery.js"; // "http://code.jquery.com/jquery-latest.min.js";
GM_JQ.type = "text/javascript";

document.body.appendChild(GM_JQ);

// Check if jQuery's loaded
var checker=setInterval(function(){
    if(typeof ($ = unsafeWindow.jQuery) != "undefined") {
        clearInterval(checker);
        letsJQuery();
    }
},100);

// All your GM code must be inside this function
// Ejecución del script
function letsJQuery() {
    contarkarma();
}

function comfiltrar(media, desviacion, compuntos) {
    var seleccionado=$("#formcolores input:checked").val();
	var comentarios=$(".commentlist li");
    if (seleccionado == "todos") {
        for (i=0;i<comentarios.length;i++) {
			comentarios[i].style.display = 'block';
        }
    }
    if (seleccionado == "verde") {
        for (i=0;i<comentarios.length;i++) {
            if (compuntos[i][0] > (media + (desviacion))) {
                comentarios[i].style.display = 'block';
            } else {
                comentarios[i].style.display = 'none';
            }
        }
    }
    if (seleccionado == "rojo") {
        for (i=0;i<comentarios.length;i++) {
            if (compuntos[i][0] < (media - (desviacion))) {
                comentarios[i].style.display = 'block';
            } else {
                comentarios[i].style.display = 'none';
            }
        }
    }
    if (seleccionado == "verderojo") {
        for (i=0;i<comentarios.length;i++) {
            if (compuntos[i][1] > 0) {
                comentarios[i].style.display = 'block';
            } else {
                comentarios[i].style.display = 'none';
            }
        }
    }
}


function contarkarma() {
    var selvalor = new Array("2000","20","10","5","3","2","1","0","-1","-2","-3","-5","-10","-20","-2000");
    var seltxt = new Array(">20","20","10","5","3","2","1","0","-1","-2","-3","-5","-10","-20","< -20");
    var karmas = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
    // todas las puntuaciones, en orden
    var commentmd=$(".commentmetadata small");
    var compuntos = new Array();
    var total = 0;
    var media = 0;
	for (i=0;i<commentmd.length;i+=2){
        positivos = parseInt(commentmd[i].innerHTML);
        negativos = parseInt(commentmd[i+1].innerHTML);
        difpuntos = positivos-negativos;
        compuntos[i/2] = new Array(difpuntos, (positivos+negativos)/2-Math.abs(difpuntos));
        total += difpuntos;
    }

    media = total/(commentmd.length/2);

    var desviacion = 0;
	for (i=0;i<(commentmd.length/2);i++){
        desviacion += Math.pow(compuntos[i][0]-media,2);
    }
    desviacion = Math.sqrt(desviacion/(commentmd.length/2));

    var formtext='<form name="formcolores" id="formcolores" action="#"><input name="mejores" value="todos" type="radio" checked="checked">Todos  <input name="mejores" value="verde" type="radio"><img style="margin-right:10px; margin-left:0px;" src="http://www.escolar.net/wp-content/plugins/ck-karma/images/up.png"><input name="mejores" value="rojo" type="radio"><img style="margin-right:10px; margin-left:0px;" src="http://www.escolar.net/wp-content/plugins/ck-karma/images/down.png"><input name="mejores" value="verderojo" type="radio"><img style="margin-left:0px;" src="http://www.escolar.net/wp-content/plugins/ck-karma/images/up.png"><img src="http://www.escolar.net/wp-content/plugins/ck-karma/images/down.png"></form>';
    $(".commentlist").before(formtext);
    $("#formcolores input").change(function () {
            comfiltrar(media, desviacion, compuntos);
    });
}