// ==UserScript==
// @name Filtrar carteles con palabras en Desmo
// @version 0.7.7
// @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.tamaño_original = function(){
window.carteles = [...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.tamaño_original()
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,.color3,.color4");
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","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: [
"amo","amor","desamor",
"dinero","dinerito",
"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","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",
"among","universe","bimbo","naruto","vegetto","sonic","fortnite",
"jake","freddie","brad","luigi","anne","soros",
"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.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();
});