Sleazy Fork is available in English.

Filtrar carteles con palabras en Desmo

Ocultar carteles que tengan ciertas palabras en Desmo

Устаревшая версия на 07.01.2021. Перейти к последней версии.

// ==UserScript==
// @name         Filtrar carteles con palabras en Desmo
// @version      0.8.1
// @description  Ocultar carteles que tengan ciertas palabras en Desmo
// @author       ArtEze
// @match        *://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.tamaño_original = function(){
    window.carteles = Array.from(document.querySelectorAll(".demot-small"));
    window.carteles.map(function(x){
        x.attributes.class.value=".cartel";
        x.querySelector("a").setAttribute("target","_blank");
        x.querySelector(".img-small").attributes.class.value=".imagen";
    });
};
window.obtener_carteles = function(){
    var demotes = window.tener_css_todos(document,".demot");
    var carteles = window.filtrar_por_atributo(demotes,"id",/d\d+/);
    var es_usuario = false;
    if(carteles.length==0){
        carteles = window.tener_css_todos(document,".small");
        es_usuario = true;
    }
    return [es_usuario,carteles];
}

window.carteles = window.obtener_carteles();
window.es_usuario = window.carteles[0];

window.json_carteles = window.carteles[1].map(
    !window.es_usuario?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,.color3,.color4");
        return {
            nodos: {
                cartel: x,
                título: título_nodo,
                etiquetas_nodo: etiquetas_nodo,
                etiquetas_nodos: etiquetas_nodos,
                nombre_nodo: nombre_nodo
            },
            textos: {
                alternativo: "",
                nombre: nombre_nodo.textContent,
                título: título_nodo.childNodes[0].textContent,
                detalles: "",
                etiquetas: etiquetas_nodos.map(function(x){return x.textContent;})
            }
        };
    }:function(x){
        var imagen = x.querySelector("img");
        var nombre_nodo = document.querySelector(".color0,.color1,.color2,.color3,.color4");
        return {
            nodos: {
                cartel: x,
                imagen: imagen,
                nombre_nodo: nombre_nodo
            },
            textos: {
                alternativo: imagen.alt,
                nombre: nombre_nodo.textContent,
                título: imagen.alt.split(" - ").slice(0,-1).join(" - "),
                detalles: imagen.alt.split(" - ").slice(1).join(" - "),
                etiquetas: [],
            }
        };
    }
);

window.procesar_lista = function(x){
	return x.split(/\s{2,}|,/g).filter(function(x){return x;});
};

window.ocultar_carteles = function(){
	window.carteles_filtrados = window.json_carteles.filter(function(x){
		var textos = [
            x.textos.título
            ,x.textos.detalles
            ,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();
	});
}

window.lista_filtros = {
    contiene: window.procesar_lista(`
nuevo año,año nuevo,anonuevo,nuevoano,navidad,
dinero,guapo,
whisky,troll,stupid,
porn,coj,sex,nalg,webo,fetich,mamad,
abortat,perv,
bolud,pelotud,idiota,
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,cumea,trolea,tortura,
cago,cumeo,troleo,torturo,
nazi,
    `),
    completas: window.procesar_lista(`
amo,amor,desamor,
dinero,dinerito,
moco,mocos,mocoso,
nochebuena,
distanciamiento,
matar,autismo,
loli,
uwu,nya,
maricon,maricón,culiao,
mamon,mamón,
follador,
beso,besos,celo,celos,abrazo,abrazos,
rey,reina,reino,
teta,tetas,tetón,tetona,
cum,polla,verga,pene,
culo,caca,orto,pedo,
ano,chingas,
gay,gays,gey,geys,
paja,tangas,pajero,pijas,joto,ostias,china,chinos,
pajas,tanga,pajeros,pija,jotos,ostia,chinas,chino,
puta,putas,pucha,puchas,
puto,putos,pucho,puchos,
tonta,tontas,parida,paridas,chinga,marica,mariconas,chota,
tonto,tontos,parido,paridos,chingo,marico,maricones,choto,
asco,asquea,asqueao,
chori,choripan,choripán,
alcohol,licor,
cocacola,coca cola,
paco y yo,
lovelive,starwars,
fire,rich,under,cake,park,guitar,hi,cringe,fock,chocolat,how,night,what,kinder,
among,universe,bimbo,naruto,vegetto,sonic,fortnite,mickey,
jake,freddie,brad,luigi,anne,soros,ben,dalas,
messi,mesi,
sovietico,soviético,
carajo,carajos,
pipí,puber,
cristo,jesus,jesús,jesucristo,dios,
resurreccion,resurrección,
amen,amén,
bad,god,good,
satan,satán,
larreta,willyrex,yoshi,rubius,
lacra,
20\\d{2}
    `)
};

window.ocultar_carteles();
window.tamaño_original();