Filtrar carteles con palabras en Desmo

Ocultar carteles que tengan ciertas palabras en Desmo

La data de 06-01-2021. Vezi ultima versiune.

// ==UserScript==
// @name         Filtrar carteles con palabras en Desmo
// @version      0.6.4
// @description  Ocultar carteles que tengan ciertas palabras en Desmo
// @author       ArtEze
// @match        https://desmotivaciones.es/*
// @grant        none
// @namespace http://tampermonkey.net/
// ==/UserScript==

window.tener_css_todos = function(nodo,css){
    return Array.from(nodo.querySelectorAll(css))
}
window.concatenar_arrays = function(a,b){
    return a.concat(b)
}
window.filtrar_por_atributo = function(nodo,atributo,regex){
    return nodo.filter(function(x){
        return x.attributes[atributo] && regex.test(x.attributes[atributo].value)
    })
}

window.carteles = window.filtrar_por_atributo(
    window.tener_css_todos(document,".demot"),"id",/d\d+/
)

window.json_carteles = window.carteles.map(function(x){
    var título = x.querySelector(".demot-title")
    var etiquetas_nodo = x.querySelector(".wrap")
    var etiquetas_nodos = window.tener_css_todos(etiquetas_nodo,"a")
    return {
        nodos: {
            cartel: x,
            título: título,
            etiquetas_nodo: etiquetas_nodo,
            etiquetas_nodos: etiquetas_nodos
        },
        textos: {
            título: título.childNodes[0].textContent,
            etiquetas: etiquetas_nodos.map(function(x){return x.textContent})
        }
    }
})

window.lista_filtros = [
    "confianza","navidad","dinero","amor",
    "porno","cum","culo","weon","sexo","tetona","nazi","joto",
    "pokemon","monster",
    "novia","parida","hija","gata",
    "novio","parido","hijo","gato",
    "caga","trolea",
    "cago","troleo"
]

window.carteles_filtrados = window.json_carteles.filter(function(x){
    var textos = [x.textos.título].concat(x.textos.etiquetas)
    var booleano = false
    window.lista_filtros.map(function(y){
        var regex = new RegExp(y,"i");
        textos.map(function(z){
            booleano = regex.test(z)?true:booleano;
        })
    })
    booleano = x.textos.título.toUpperCase()==x.textos.título?true:booleano;
    return booleano
})

window.carteles_filtrados.map(function(x){
    x.nodos.cartel.remove();
});