Sleazy Fork is available in English.

Filtrar carteles con palabras en Desmo

Ocultar carteles que tengan ciertas palabras en Desmo

Version vom 06.01.2021. Aktuellste Version

// ==UserScript==
// @name         Filtrar carteles con palabras en Desmo
// @version      0.7.1
// @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_nodo = x.querySelector(".demot-title");
    var etiquetas_nodo = x.querySelector(".wrap");
    var etiquetas_nodos = window.tener_css_todos(etiquetas_nodo,"a");
    var nombre_nodo = x.querySelector(".color0,.color1,.color2");
    return {
        nodos: {
            cartel: x,
            título: título_nodo,
            etiquetas_nodo: etiquetas_nodo,
            etiquetas_nodos: etiquetas_nodos,
            nombre_nodo: nombre_nodo
        },
        textos: {
            título: título_nodo.childNodes[0].textContent,
            etiquetas: etiquetas_nodos.map(function(x){return x.textContent;}),
            nombre: nombre_nodo.textContent
        }
    };
});

window.lista_filtros = {
    contiene: [
        "nuevo año","año nuevo","anonuevo","nuevoano","navidad",
        "dinero","guapo",
        "whisky","troll","stupid",
        "porn","coj","sex","nalg","webo",
        "abortat","perv",
        "bolud","pelotud",
        "testícul","testicul",
        "suscrib",
        "confía","confia",
        "mierd",
        "joto","laucha","patada",
        "weon","weón","weona",
        "pokemon","monster","covid","smith",
        "messi",
        "emerit",
        "facebook",
        "novia","hija","gata",
        "novio","hijo","gato",
        "caga","trolea","tortura",
        "cago","troleo","torturo",
        "nazi",
    ],
    completas: [
        "amor","desamor",
        "matar",
        "uwu","nya",
        "marica","marico","maricon","maricón",
        "beso","besos","celo","celos","abrazo","abrazos",
        "teta","tetón","tetona",
        "cum","caca","culo","ano","polla","verga","pene",
        "gay","gays","gey","geys",
        "pija","pijas","paja","pajas","ostia","ostias","tanga","tangas",
        "joto","jotos",
        "tonto","tontos","chino","chinos","parido","paridos",
        "tonta","tontas","china","chinas","parida","paridas",
        "asco","asquea","asqueao",
        "20\\d{2}",
        "chori","choripan","choripán",
        "lovelive","starwars",
        "fire","rich","under","cake","park","guitar","hi",
        "among","universe","bimbo","naruto",
        "jake","freddie","brad","luigi","yoshi","rubius","anne",
        "sovietico","soviético",
        "carajo","pipí","puber",
        "cristo","jesus","jesús","jesucristo","dios",
        "bad","god","good",
        "satan","satán",
        "larreta"
    ]
};

window.carteles_filtrados = window.json_carteles.filter(function(x){
    var textos = [x.textos.título,x.textos.nombre].concat(x.textos.etiquetas);
    var booleano = false;
    window.lista_filtros.contiene.map(function(y){
        var regex = new RegExp(y,"i");
        textos.map(function(z){
            booleano = regex.test(z)?true:booleano;
        });
    });
    window.lista_filtros.completas.map(function(y){
        var regex = new RegExp("\\b"+y+"\\b","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();
});