Script de Tampermonkey para ver mensajes/día y ratio de Zanks en la info. de usuario


No te lo voy a hacer pero te voy a dar una pista: El botón eliminar de cada mensaje tiene un enlace...
 

Creo que no me has entendido, ese enlace de cada mensaje tiene un identificador numérico. Sin una API supongo que se podría tirar por ahí para hacer algo, tampoco sé si sería posible.
 
@Delco, el script definitivo sería que el foro tuviera moderadores.

De todos modos se agradece, a pesar de que al haber tanto "chupapollismo" en el foro, tener muchos Zanx tampoco significa que crees contenido de calidad.
 
Tampoco significa que crees contenido de calidad.

Pero teniendo los números puedes hacer lo que quieras. Así por ejemplo: Podrías coger el karma de lo que para ti fueran los mejores del foro y crear una fórmula de manera que todo usuario que se aleje del valor de la formula el algoritmo considera que es de menos calidad (en función de lo que tú creas, repito). Creo que tener esos números puede dar bastante juego, para alguien que sepa javascript le podría cambiar completamente la interacción con Burbuja.
 
Arreglados algunos fallos gracias al forero Lma0Zedong

Código:
(function ratio()
{
//script del forero Delco, retocado por Lma0Zedong
var cuenta = document.getElementsByClassName('message-userExtras').length;
for(var i=0, len= cuenta; i < len; i++)
{
var htmlString = document.getElementsByClassName('message-userExtras').innerHTML;
var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
var array = strip.split(" ");
var array2 = array.slice (0, 20);
var nmensajes = parseInt(array2[12].replace(".", ""));
var nzanks = parseInt(array2[19].replace(".", ""));
var getdia = array2[4];
var getmes = array2[5];
var months = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
getmes = months.indexOf(getmes)+1;
var getyear = array2[6];
var fecha = getmes + "/" + getdia + "/" + getyear;
var dtorigen = new Date(fecha);
var dthoy = new Date();
var difference_in_time = dthoy.getTime() - dtorigen.getTime();
if (difference_in_time < (1000 * 3600 * 24))
var difference_in_days = 1;
else
var difference_in_days = difference_in_time / (1000 * 3600 * 24);
var autoestimita_majadera = (nzanks / nmensajes).toFixed(2);
var mdia = (nmensajes / difference_in_days).toFixed(2);
var c = document.getElementsByClassName('message-userExtras');
c.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Ratio' + '</dt>' + '<dd>' + autoestimita_majadera + '</dl>');
c.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'M/d' + '</dt>' + '<dd>' + mdia + '</dl>');

})();
No funciona, invalid token.
 
No funciona, invalid token.

Es verdad no funca. Lo he estado mirando y NPI de por qué aunque a los condicionales le faltan { y tal no he hecho que funcione. Pero este sí que funciona:

Código:
// ==UserScript==
// @name         Registro de contabilidad V2
// @Description  Script by Delco con arreglos de: Lma0Zeong /correción de fechas y mdia/
// @version      0.tubiega
// @author       Misco Jones
// @include     *://www.burbuja.info/inmobiliaria/threads/*
// @run-at      document-end
// ==/UserScript==

function ratio()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;

        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var nzanks = parseInt(array2[19].replace(".", ""));
        var autoestimita_majadera = (nzanks / nmensajes).toFixed(2);
        var c = document.getElementsByClassName('message-userExtras')[i];
        c.insertAdjacentHTML('beforeend', '<br>');

        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Karma' + '</dt>' + '<dd>' + autoestimita_majadera + '</dl>');
    }
}

ratio()

function mdia()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;
        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var getdia = array2[4];
        var getmes = array2[5];
        var months = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
        getmes = months.indexOf(getmes)+1;
        var getyear = array2[6]
        var fecha = getmes + "/" + getdia + "/" + getyear;
        var dtorigen = new Date(fecha);
        var dthoy = new Date();
        var difference_in_time = dthoy.getTime() - dtorigen.getTime();

        if (difference_in_time < (1000 * 3600 * 24)){
            var difference_in_days = 1;
        } else {
            difference_in_days = difference_in_time / (1000 * 3600 * 24);
        }
        var mdia = (nmensajes / difference_in_days).toFixed(2);
        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'M/d' + '</dt>' + '<dd>' + mdia + '</dl>');
    }
}
mdia()
 
Última edición:
Actualizando. Cambios:

Cambia la palabra "Registrado" por "Desde" en la info. de usuario.
Cambia "Puntuación de reacción" por "Zanks" en la infor de usuario.

Cambios menores para el cálculo del "Karma".

Código:
// ==UserScript==
// @name         Registro de contabilidad V2
// @Description  Script by Delco con arreglos de: Lma0Zeong /correción de fechas y mdia/
// @version      0.tubiega
// @author       Misco Jones
// @include     *://www.burbuja.info/inmobiliaria/threads/*
// @require     https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @run-at      document-end
// ==/UserScript==

$("dl dt:contains('Registrado')").html("Desde");
$("dl dt:contains('Puntuación de reacción')").html("Zanks");

function ratio()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;

        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var nzanks = parseInt(array2[18].replace(".", ""));
        var autoestimita_majadera = (nzanks / nmensajes).toFixed(2);

        var c = document.getElementsByClassName('message-userExtras')[i];
        c.insertAdjacentHTML('beforeend', '<br>');

        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Karma' + '</dt>' + '<dd>' + autoestimita_majadera + '</dl>');
    }
}

ratio()

function mdia()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;
        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var getdia = array2[4];
        var getmes = array2[5];
        var months = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
        getmes = months.indexOf(getmes)+1;
        var getyear = array2[6]
        var fecha = getmes + "/" + getdia + "/" + getyear;
        var dtorigen = new Date(fecha);
        var dthoy = new Date();
        var difference_in_time = dthoy.getTime() - dtorigen.getTime();

        if (difference_in_time < (1000 * 3600 * 24)){
            var difference_in_days = 1;
        } else {
            difference_in_days = difference_in_time / (1000 * 3600 * 24);
        }

        var mdia = (nmensajes / difference_in_days).toFixed(2);

        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'M/d' + '</dt>' + '<dd>' + mdia + '</dl>');
    }
}
mdia()
 
Última edición:
Actualizando. Cambios:

Cambia la palabra "Registrado" por "Desde" en la info. de usuario.
Cambia "Puntuación de reacción" por "Zanks" en la infor de usuario.

Cambios menores para el cálculo del "Karma".

Código:
// ==UserScript==
// @name         Registro de contabilidad V2
// @Description  Script by Delco con arreglos de: Lma0Zeong /correción de fechas y mdia/
// @version      0.tubiega
// @author       Misco Jones
// @include     *://www.burbuja.info/inmobiliaria/threads/*
// @require     https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @run-at      document-end
// ==/UserScript==

$("dl dt:contains('Registrado')").html("Desde");
$("dl dt:contains('Puntuación de reacción')").html("Zanks");

function ratio()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;

        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var nzanks = parseInt(array2[18].replace(".", ""));
        var autoestimita_majadera = (nzanks / nmensajes).toFixed(2);

        var c = document.getElementsByClassName('message-userExtras')[i];
        c.insertAdjacentHTML('beforeend', '<br>');

        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Karma' + '</dt>' + '<dd>' + autoestimita_majadera + '</dl>');
    }
}

ratio()

function mdia()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;
        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var getdia = array2[4];
        var getmes = array2[5];
        var months = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
        getmes = months.indexOf(getmes)+1;
        var getyear = array2[6]
        var fecha = getmes + "/" + getdia + "/" + getyear;
        var dtorigen = new Date(fecha);
        var dthoy = new Date();
        var difference_in_time = dthoy.getTime() - dtorigen.getTime();

        if (difference_in_time < (1000 * 3600 * 24)){
            var difference_in_days = 1;
        } else {
            difference_in_days = difference_in_time / (1000 * 3600 * 24);
        }

        var mdia = (nmensajes / difference_in_days).toFixed(2);

        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'M/d' + '</dt>' + '<dd>' + mdia + '</dl>');
    }
}
mdia()
Por algún motivo no me funciona tu código, creo que es por el array.slice. Al subir el segundo número a 25 y usando array2[20] ya me funciona, sino salía el error de "NaN" de que se estaba sacando el nzanks mal (nzanks no númerico).

Lo pongo todo junto en una única función con los extras que le puse la última vez:

Código:
(function ratio()
{
//script del forero Delco, modificado por Lma0Zedong
    var cuenta = document.getElementsByClassName('message-userExtras').length;
    for(var i=0, len= cuenta; i < len; i++)
    {
        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;
        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 25);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var nzanks = parseInt(array2[20].replace(".", ""));
        var getdia = array2[4];
        var getmes = array2[5];
        var months = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
        getmes = months.indexOf(getmes)+1;
        var getyear = array2[6];
        var fecha = getmes + "/" + getdia + "/" + getyear;
        var dtorigen = new Date(fecha);
        var dthoy = new Date();
        var difference_in_time = dthoy.getTime() - dtorigen.getTime();
        if (difference_in_time < (1000 * 3600 * 24))
            var difference_in_days = 1;
        else
            var difference_in_days = difference_in_time / (1000 * 3600 * 24);
        var autoestimita_majadera = (nzanks / nmensajes).toFixed(2);
        var mdia = (nmensajes / difference_in_days).toFixed(2);
        var c = document.getElementsByClassName('message-userExtras')[i];
        c.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Ratio' + '</dt>' + '<dd>' + autoestimita_majadera + '</dl>');
        c.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'M/d' + '</dt>' + '<dd>' + mdia + '</dl>');
        if (autoestimita_majadera < 1 && mdia > 1.5)
            c.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Status' + '</dt>' + '<dd>' + "Mugre" + '</dl>');
        else if (autoestimita_majadera < 1.3 && mdia > 9)
            c.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Status' + '</dt>' + '<dd>' + "CM" + '</dl>');
    }
})();

¿Podrías habilitar lo de las conversaciones privadas? Y te comento alguna cosa por ahí.
 
Actualizando. Cambios:

Cambia la palabra "Registrado" por "Desde" en la info. de usuario.
Cambia "Puntuación de reacción" por "Zanks" en la infor de usuario.

Cambios menores para el cálculo del "Karma".

Código:
// ==UserScript==
// @name         Registro de contabilidad V2
// @Description  Script by Delco con arreglos de: Lma0Zeong /correción de fechas y mdia/
// @version      0.tubiega
// @author       Misco Jones
// @include     *://www.burbuja.info/inmobiliaria/threads/*
// @require     https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @run-at      document-end
// ==/UserScript==

$("dl dt:contains('Registrado')").html("Desde");
$("dl dt:contains('Puntuación de reacción')").html("Zanks");

function ratio()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;

        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var nzanks = parseInt(array2[18].replace(".", ""));
        var autoestimita_majadera = (nzanks / nmensajes).toFixed(2);

        var c = document.getElementsByClassName('message-userExtras')[i];
        c.insertAdjacentHTML('beforeend', '<br>');

        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'Karma' + '</dt>' + '<dd>' + autoestimita_majadera + '</dl>');
    }
}

ratio()

function mdia()
{
    var cuenta = document.getElementsByClassName('message-userExtras').length;

    for(var i=0, len= cuenta; i < len; i++){

        var htmlString = document.getElementsByClassName('message-userExtras')[i].innerHTML;
        var strip = htmlString.replace(/<[^>]*>?/gm, ' ');
        var array = strip.split(" ");
        var array2 = array.slice (0, 20);
        var nmensajes = parseInt(array2[12].replace(".", ""));
        var getdia = array2[4];
        var getmes = array2[5];
        var months = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
        getmes = months.indexOf(getmes)+1;
        var getyear = array2[6]
        var fecha = getmes + "/" + getdia + "/" + getyear;
        var dtorigen = new Date(fecha);
        var dthoy = new Date();
        var difference_in_time = dthoy.getTime() - dtorigen.getTime();

        if (difference_in_time < (1000 * 3600 * 24)){
            var difference_in_days = 1;
        } else {
            difference_in_days = difference_in_time / (1000 * 3600 * 24);
        }

        var mdia = (nmensajes / difference_in_days).toFixed(2);

        var d = document.getElementsByClassName('message-userExtras')[i];
        d.insertAdjacentHTML('beforeend', '<dl class="pairs pairs--justified">' + '<dt>' + 'M/d' + '</dt>' + '<dd>' + mdia + '</dl>');
    }
}
mdia()
Da error en las líneas 11, 12, 33 y 69
 
Volver