// ==UserScript==
// @name Filtrar carteles con palabras en Desmo
// @version 0.8.5
// @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 enlace = x.querySelector("a");
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");
var título_enlace = enlace.href.split("/").slice(-1)[0];
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,
título_enlace: título_enlace,
detalles: "",
etiquetas: etiquetas_nodos.map(function(x){return x.textContent;})
}
};
}:function(x){
var enlace = x.querySelector("a");
var imagen = x.querySelector("img");
var nombre_nodo = document.querySelector(".color0,.color1,.color2,.color3,.color4");
var título_enlace = enlace.href.split("/").slice(-1)[0];
var longitud_guión = " - ".length;
var longitud_enlace = título_enlace.length;
var índice_descripción = imagen.alt.indexOf(" - ");
var índice_mayor = longitud_enlace>índice_descripción?longitud_enlace:índice_descripción;
return {
nodos: {
cartel: x,
enlace: enlace,
imagen: imagen,
nombre_nodo: nombre_nodo
},
textos: {
alternativo: imagen.alt,
nombre: nombre_nodo.textContent,
título_enlace: título_enlace,
índice_descripción: índice_descripción,
índice_mayor: índice_mayor,
título: imagen.alt.slice(0,índice_mayor),
detalles: imagen.alt.slice(índice_mayor+longitud_guión),
etiquetas: [],
}
};
}
);
window.procesar_lista = function(x){
return x.split(/\s{2,}|,|\n/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,smok
messi
emerit
facebook,poke
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
paco y yo,feliz vanidad
distanciamiento,punzada
matar,autismo
loli
uwu,nya,onichan
maricon,maricón
culiao,tonto
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
lovelive,starwars
fire,rich,under,cake,park,guitar,hi,cringe,fock,chocolat,how,night,what,kinder
among,universe,bimbo,naruto,vegetto,sonic,fortnite,mickey,zelda
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();