Script: Ignore+

Bishop

Madmaxista
Desde
5 Mar 2009
Mensajes
1.840
Reputación
6.297
El ignore del foro es una gran herramienta para ir al grano, evitar perder tiempo con sencilladas y dejar de ver a pesados, CM, trols, mermados o simplemente indeseables. Pero tiene algún que otro fallo. He hecho un pequeño script para tratar de solventar algunos de ellos:

- En la página principal, en el bloque de "Es tendencia", salen temas abiertos por usuarios ignorados.
- En la página principal, en la lista de foros, salen temas abiertos por usuarios ignorados en los enlaces de la derecha, mostrados como última actividad.

No soy hinjiniero filomático colejiado ni me dedico al tema, así que es una pequeña ñapa. Supongo que habrá cagadas y/o maneras de hacer mejor las cosas. El "invento" se ofrece tal y como es, sin garantía de ningún tipo. Yo lo uso en Firefox con FireMonkey, pero supongo que debería funcionar también con TamperMonkey o similar en Chrome.

JavaScript:
// ==UserScript==
// @name            Burbuja: ignore+
// @description        Elimina restos de hilos de usuarios ignorados en la página principal
// @author            Bishop
// @match            *://www.burbuja.info/inmobiliaria/forums/
// @match            *://www.burbuja.info/inmobiliaria/forums/#
// @version            0.2
// @run-at            document-idle
// ==/UserScript==

"use strict";

// Ignorar nombre de hilos en los últimos mensajes en lista de foros
let lasts = document.getElementsByClassName("node-extra-title");
for (const last of lasts) {
    fetch(last.href)
        .then(response => {
            if (!response.ok) last.remove();
    });
}

// Cargar lista de ignorados
fetch("https://www.burbuja.info/inmobiliaria/account/ignored")
.then(response => response.text())
.then(text => {
    const parser = new DOMParser();
    const htmlDocument = parser.parseFromString(text, "text/html");
    let ignoredList = [];
    const ignoreds = htmlDocument.getElementsByClassName("username");
    for (const ignored of ignoreds) {
        ignoredList.push(ignored.getAttribute("data-user-id"));
    }
// Ignorar hilos completos en la lista de tendencias   
    let rows = document.querySelectorAll(".block[data-widget-key=Estendencia] .contentRow-figure a");
    for (const row of rows) {
        if (ignoredList.includes(row.getAttribute("data-user-id"))) {
            row.closest("li").remove();
        }
    }
});
 
Última edición:
dar thx a ignoradores compulsivos

PHP:
https://www.burbuja.info/inmobiliaria/post/xxxxxxxx/react?reaction_id=1
 
como se mete esto en un navegador como brave hay alguna extensión para esto? o para chrome?

Para Chrome el que yo conozco es Tampermonkey, pero salvo alguna prueba aislada no lo conozco en profundidad. No suelo usar Chrome.

Para Firefox yo recomiendo encarecidamente FireMonkey, va muy bien y es muy ligero.
 
Actualizado a versión 0.2:

- Cambio en el formato del encabezado. El anterior no era compatible con Tampermonkey y no funcionaba en ese gestor, a no ser que se cambiara a mano. El de ahora debería ser compatible con todos los gestores de userscripts.
- Pequeños retoques en el código.
 
Corregido un error tipográfico al pegar el código en lugar del anterior, sobraba la primera línea. doh!
 
El ignore del foro es una gran herramienta para ir al grano, evitar perder tiempo con sencilladas y dejar de ver a pesados, CM, trols, mermados o simplemente indeseables. Pero tiene algún que otro fallo. He hecho un pequeño script para tratar de solventar algunos de ellos:

- En la página principal, en el bloque de "Es tendencia", salen temas abiertos por usuarios ignorados.
- En la página principal, en la lista de foros, salen temas abiertos por usuarios ignorados en los enlaces de la derecha, mostrados como última actividad.

No soy hinjiniero filomático colejiado ni me dedico al tema, así que es una pequeña ñapa. Supongo que habrá cagadas y/o maneras de hacer mejor las cosas. El "invento" se ofrece tal y como es, sin garantía de ningún tipo. Yo lo uso en Firefox con FireMonkey, pero supongo que debería funcionar también con TamperMonkey o similar en Chrome.

JavaScript:
// ==UserScript==
// @name            Burbuja: ignore+
// @description        Elimina restos de hilos de usuarios ignorados en la página principal
// @author            Bishop
// @match            *://www.burbuja.info/inmobiliaria/forums/
// @match            *://www.burbuja.info/inmobiliaria/forums/#
// @version            0.2
// @run-at            document-idle
// ==/UserScript==

"use strict";

// Ignorar nombre de hilos en los últimos mensajes en lista de foros
let lasts = document.getElementsByClassName("node-extra-title");
for (const last of lasts) {
    fetch(last.href)
        .then(response => {
            if (!response.ok) last.remove();
    });
}

// Cargar lista de ignorados
fetch("https://www.burbuja.info/inmobiliaria/account/ignored")
.then(response => response.text())
.then(text => {
    const parser = new DOMParser();
    const htmlDocument = parser.parseFromString(text, "text/html");
    let ignoredList = [];
    const ignoreds = htmlDocument.getElementsByClassName("username");
    for (const ignored of ignoreds) {
        ignoredList.push(ignored.getAttribute("data-user-id"));
    }
// Ignorar hilos completos en la lista de tendencias  
    let rows = document.querySelectorAll(".block[data-widget-key=Estendencia] .contentRow-figure a");
    for (const row of rows) {
        if (ignoredList.includes(row.getAttribute("data-user-id"))) {
            row.closest("li").remove();
        }
    }
});
Tienes idea de por que el ignore reciproco no me funciona? Lo marco en mi perfil de usuario pero no se aplica.
 
Tienes idea de por que el ignore reciproco no me funciona? Lo marco en mi perfil de usuario pero no se aplica.

Ni idea.

¿Por qué sabes que el ignore recíproco no funciona? ¿Puedes poner un ejemplo?
 
Volver