// ==UserScript==
// @name Filtrar carteles con palabras en Desmo
// @version 0.6.9
// @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","navidad","dinero","guapo",
"whisky",
"porn","coj","sex","nalg",
"bolud","pelotud",
"testícul","testicul",
"suscrib",
"confía","confia",
"mierd",
"nazi","joto","laucha","patada",
"weon","weón","weona",
"pokemon","monster","luigi","covid",
"facebook",
"novia","hija","gata",
"novio","hijo","gato",
"caga","trolea",
"cago","troleo"
],
completas: [
"amor","uwu","gay",
"beso","besos",
"celo","celos",
"abrazo","abrazos",
"teta","tetón","tetona",
"cum","caca","culo","ano","polla",
"paja","pija",
"joto","tonto",
"parida",
"parido",
"asco","asquea","asqueao",
"20\\d{2}",
"chori","choripan","choripán",
"fire","rich",
"satan","satán",
"emeritus","freddie","among",
"china",
"tanga",
"carajo","pipí"
]
};
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();
});