// ==UserScript== // @name El Pa铆s - CLEANED PAGE & Sin L铆mite de noticias 馃榿 // @namespace http://zequi.es // @version 0.60 // @description Limpieza visual de ELPAIS.COM quitando publi y un mont贸n de m贸dulos molestos que no aportan mucho a la lectura. Adem谩s nos saltamos el Muro de n潞 de noticias y el Muro de Login. // @author @zequi // @match https://elpais.*/* // @include https://elpais.com/* // @include https://www.elmundo.es/* // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js // @grant none // @run-at document-start // @license MIT // @downloadURL none // ==/UserScript== // Mensaje importante: // C贸digo 脩APA: el c贸digo es bastante 帽apa y hecho a toda leche, para uso personal. Pero si quieres echar una mano. Contacta conmigo! ;) // - 帽apa: se usa Jquery, pero se puede quitar perfectamente. // - 帽apa: la mayor铆a del c贸digo es para editar estilos, pero se hace a lo bruto, hay que cambiar el enfoque. // - 帽apa: se ejecuta el script varias veces para asegurar en vez de poner un listener. // C贸digo LEGACY: se ha ido a帽adiendo nuevo c贸digo, pero no hemos mantenido el c贸digo viejo (hay muchas l铆neas que seguro que ya no son necesarias). // // Lo dicho, si quieres ayudar a mejorar el c贸digo o a帽adir funcionalidad, contacta sin problema. (function() { "use strict"; // Capar la ejecuci贸n de ciertos JS externos (ej: saltar el Muro de Login) // Ejecutamos lo antes posible estas l铆neas antes de ready, para evitar la ejecuci贸n de algunos Scripts de Javascript, // Quiz谩s algunos de estos JS ya se cap谩n por el browser por alg煤n plugin, pero no viene mal caparlos tambi茅n aqu铆 para acelerar la carga de p谩gina y la privacidad. // Usamos una librer铆a de github, q hemos copiado directamente en nuestro c贸digo justo abajo checkForBadJavascripts ( [ [true, /arcsubscriptions.elpais.com/i, function(){console.log("zeq.script 001");} ], [true, /privacy-center.org/i, null ], [true, /adobedtm.com/i, null ], [true, /outbrain.com/i, null ], [true, /fundingchoicesmessages.google.com/, null ], [true, /pxlctl.elpais.com/, null ], [true, /s.go-mpulse.net/, null ], [true, /ENP-outbrain.js/i, null ], [true, /publicapi/i, function(){console.log("zeq.script 003");} ], [true, /news\.google\.com/i, function(){console.log("zeq.script 004");} ], [true, /closed-article-layer.js/i, function(){console.log("zeq.script 005");} ] ] ); // Inyecci贸n de Librer铆a checkForBadJavascripts() // copiada literalmente de: https://gist.github.com/tbrugz/2dd8b53bb6f125c64be9 // s贸lo se ha copiado una funci贸n, hay algo m谩s de c贸digo no copiado. // y pasada por un minifier (quiz谩s se podr铆a poner sin minimizar para facilitar auditor铆as de seguridad del c贸digo) function checkForBadJavascripts(e){return e.length?(checkForBadJavascripts=function(t){for(var r=e.length-1;r>=0;--r){var a=e[r][0],n=e[r][1];if(a){if(n.test(t.target.src))return c(r),!1}else if(n.test(t.target.textContent))return c(r),!1}function c(a){t.stopPropagation(),t.preventDefault();var n=e[r][2];"function"==typeof n&&n(t.target),t.target.parentNode.removeChild(t.target),e.splice(r,1),e.length||window.removeEventListener("beforescriptexecute",checkForBadJavascripts,!0)}},window.addEventListener("beforescriptexecute",checkForBadJavascripts,!0),checkForBadJavascripts):null} // UTILS - funci贸n para que el Elemento html, se ponga de color gris por defecto, y con mouseover se ponga en color negro. function elementHoverize(selector) { $(selector).css("color","lightgrey") $(selector).hover(function(){$(this).css("color","grey");}, function(){$(this).css("color","lightgrey");}) } $(document).ready(function() { // Hay una peque帽o c贸digo para limpiar la basura de peri贸dico de ElMundo, pero no est谩 mantenida esta funci贸n. function cleanElmundo() { // CABECERA $(".ue-c-seo-links-container").remove(); // PORTADA $(".ue-c-newsletter-widget").remove(); // modulo de newsletter //$(".ue-c-cover-content__byline-list").remove(); // nombre del periodista en cada noticia $(".ue-c-cover-content__byline-name").remove(); $(".servicios_vwo").remove(); //m贸dulos de servicios $(".ue-c-cover-content__icon-premium").parent().parent().css("background-color", "#edab3b").css("opacity", "0.4"); //marca visualmente las noticias de pago // PageNOTICIA > post-CUERPO $(".ue-c-article__trust").remove(); // seccion TrustProject // PaginaNoticia > LATERAL derecho ENTERO! $(".ue-l-article__secondary-column").remove(); // fuera columna derecha entera // PaginaNoticia > LATERAL derecho ENTERO! $(".ue-c-article__share-tools").remove(); //botones de compartir } function cleanElpais() { // ANTI-WALL > resetea el n煤mero de noticias gratis if (window.location.href!="https://elpais.com/") { //no se ejecuta en portada localStorage.removeItem('ArcP'); } /*antiguo reseter var aa = JSON.parse(localStorage.getItem('ArcP')); aa.anonymous.rc["8"].c = -99; localStorage.setItem('ArcP', JSON.stringify(aa)); */ // CABECERA $(".editions").remove(); //links a otras ediciones/idiomas: ingl茅s/catal谩n/... $(".subscribe").remove(); //bot贸n Subscribirse al lado del bot贸n login $(".horizontal_scroll_wrapper").remove(); //links a otras secciones $(".alertBar").remove(); //quita el breaking-news (algo supuestamente urgente) $(".ad-giga-1").remove(); //quita la publi de arriba del todo (v2021oct) // Espacios en blanco en la cabecera $(".x").css("padding", "8px"); //quitarle a la cabecera espacios en blanco por encima y debajo de logo elpais $("ep_l").css("margin-top", "0px"); //quitarle a la cabecera espacios en blanco por encima de logo elpais $(".x-nf").css("padding-top","3px").css("padding-bottom","0px"); $("#ctn_head").css("padding","0px") $("#csw").css("margin-top","-4px") if (window.location.href=="https://elpais.com/") { //solo portada $(".x_bh").css("margin-top","0px"); $(".ep_l").css("margin-top","0px"); $(".x-nf.x-p .ep_e").css("background-image",'url("https://static.elpais.com/dist/resources/images/logos/primary/el-pais.svg")') } $(".al._g-o").remove(); // se quita el Breaking News de alertas, porque no suelen ser realmente urgentes. Y siempre est谩 en portada. // en la subcabecera de todo el portal, donde est谩n los topics: // quitar tanta altura $("._g._g-xs.cs").css("padding-top","0.4rem"); $(".sm._df a").css("padding", "0.4rem 0.4rem"); $(".x-ph").css("min-height", "0px"); // fondo transparente de los topics $("._g-o.csw").css('background', 'rgba(255, 255, 255, 0)'); $("#containerCounterLayer").css("background-color", "white") // PORTADA // c贸digo pensado en portada, pero se ejecuta en todo el portal, se podr铆a reorganizar el c贸digo $("ul.menu").remove(); //en cada secci贸n, quitar el submen煤 de la izquierda. $(".author").remove(); $(".separator").remove(); $(".capitalize").remove(); //quita el nombre del periodista y ciudad $(".c_a").css("color", "#d9d9d9"); // $(".z.z-hi").css("padding-top", "1.8rem"); //antes de que empiecen los bloques de noticias de la portada, hay un espacio horizontal: se ha bajado la altura. $(".c_t").css("margin-bottom","6px") //encima de la firma, quita un poco de espacio entre titular y firma. $(".c_k.c_k-s").remove(); // portada > mod_noticia ==> borrar el texto de "contenido exclusivo" //arreglar espacio entre los Secciones de noticias $("section.b-t").css("margin-top","0px"); //quitar espacio entre los Secciones de noticias $(".b_hr").css("border-bottom-width","0px"); //quitar l铆neas horizontales finas (hay otras m谩s gruesas) // quitar m贸dulos de publi y auto-promoci贸n $(".classifieds_widget").remove(); //modulo de publicidad $("classifieds_widget").remove(); //modulo de servicios $("#el-pais-que-hacemos").remove() //quita la secci贸n entera de auto-promoci贸n del propio elpais $(".c-bra").css("color", "#ddd") // articulos pagados por publicidad, los ponemos en gris claro $(".b-eci_txt").remove(); //eliminar gran m贸dulo 煤nico en portada autopromocional $(".ad-giga").remove(); //eliminar m贸dulo de publi giga $(".b-bra-brandedmix").remove() // esquinas redondeadas del conteneder principal (portada y pf_noticia) $("main").css("border-radius","8px"); $("article").css("border-radius","8px") // PageNOTICIA > pre-CUERPO (HEADER-noticia:t铆tulo/entradilla/foto) if (window.location.href!="https://elpais.com/") { //no se ejecuta en portada // para limpiar agresivamente la cabecera en la P谩ginaNoticia, NO en la portada. $("#u_c_dv").remove(); //quitar bot贸n de registro $(".x_e._dn").remove(); //quitar bot贸n de idioma $(".x_ep._df > span, .x_ep._df > div").css("margin-top", 0) //quitar espacio vac铆o encima del logo $("#ctn_head").css("padding", "3px"); //quitar espacio vac铆o encima/debajo del logo $(".cs").css("padding-top", "1rem"); // quitar un poco de altura a la cabecera $(".sm._df > a").css("color", "#615d5d"); // SubCabecera > Topics: cambiar color de texto de negro a gris. $(".cs_t_e").css("font-weight","700") // SubCabecera > categor铆a principal (arriba izq) = letra m谩s peque帽a //pre-foto $("article > Header.a_e").css("padding-top", "2rem"); $("article > Header > div.a_e_txt").css("color", "#ddd"); //eliminar m贸dulo de Loter铆a del lateral de la noticia $("aside._pr>div").remove(); } // PageNOTICIA > CUERPO if (window.location.href!="https://elpais.com/") { //no se ejecuta en portada $(".a_q").css("color", "#d9d9d9"); $("section#cta_id").remove(); //elimina el m贸dulo de Subscripci贸n insertado en medio del texto de la noticia // post-foto: descripci贸n foto //$(".sb").remove(); //compartir //$(".f_c span.f_a").remove(); //en las im谩genes, en el pie de foto se quita nombre del fot贸grafo o agencia $(".w_rs").remove(); //eliminar botones compartir //$(".a_e_txt").css("padding-bottom", "1.5rem"); //eliminar botones compartir $(".a_e").css("border-bottom", "0px"); //eliminar la l铆nea horizontal encima del autor //$("article>header figure>figcaption>span").hide() $("figure>figcaption.a_m_p").css("border-bottom-width","0px") // quitar linea debajo descripcion foto en ciertas pf_noticias $("figure>figcaption.a_m_p>span.a_m_m").hide() //en las im谩genes, en el pie de foto se quita nombre del fot贸grafo o agencia elementHoverize("figcaption.a_m_p") // post-foto: Bloque Autor $("article > Header").css("margin-bottom", "8px"); // BloqueAutor > reducir espacio vac铆o por arriba. $("article > div.a_md").css("margin-top","-2.6rem") // BloqueAutor > reducir espacio vac铆o por encima. $("article > div.a_md").css("margin-bottom", "0.5rem"); // BloqueAutor > reducir espacio vac铆o por debajo. $("article .a_md_a").css("margin-bottom","-0.3rem") // BloqueAutor > quita espacio entre l铆neas de autor y fecha $("article .a_md_txt").css("margin-top","0.5rem").css("margin-left","-1.7rem") // BloqueAutor > texto => posicionarlo mejor elementHoverize("article .a_md_txt") // BloqueAutor > texto => en gris clarito $("article .a_md_txt > .a_md_f").css("border-bottom-width", "0px"); // BloqueAutor > quitar la l铆nea inferior } // PageNOTICIA > post-CUERPO $("#ctn_closed_article").remove(); //si la noticia concreta est谩 protegida por el 'Muro de Login', se elimina el m贸dulo para logarse. $(".a_tp").remove(); // seccion TrustProject $(".a_com_l").remove(); // en seccion comentarios, eliminar link a "normas" $("#ctn_freemium_article").remove(); // caja de "Contenido exclusivo para suscriptores" // PaginaNoticia > LATERAL derecho $(".w_b .w_tx").remove(); // en la p谩gina de noticia, en lateral > se borra el texto de la newsletter, aunque dejamos el bot贸n // publi disfrazada de noticia: color gris muy claro... m谩s adelante a borrar este m贸dulo $(".c-bra > header > h3").css("color", "#ddd"); $(".c-bra > p").css("color", "#ddd"); $(".c-bra").css("border", "1px solid #ddd"); $("aside._pr>aside.c-bra").remove() //aunque aqu铆 arriba le pongo color gris, al final se decide borrar literalmente el m贸dulo. // m贸dulo newsletter: gris clarito $(".w-cta").css("color", "#ddd"); $(".w-cta > h3").css("color", "#ddd") $(".w-cta > h3").css("border-bottom", "0px") // m贸dulo Lo m谩s visto elementHoverize("section.w-lmv") $(".w-lmv").css("border-bottom-width","0px") //quitar l铆nea inferior del m贸dulo $(".w_t").css("color","lightgrey") // PIE de PAGINA $(".fo").css("display", "none") //no se remove() este elemento, xq produce problemas (se pierde la hamburguesa y la barra de avance de lectura) $("#footer-lazy").css("display","none"); // oculta el footer entero, pero evitamos usar remove() xq rompe la hamburguesa. $("#classified_el-pais").css("display", "none") // BORDE y FONDO $(".fusion-app").css({background: 'radial-gradient(#d7dbe0 40%, grey)'}); //cambio visual para mejor Lectura = para que los bordes de la p谩gina sean gris, para mejor lectura //document.body.style.background = '#d7dbe0'; //cambio visual para mejor Lectura = poner la barra desplazadora lateral derecha m谩s oscura //document.body.style.scrollbarFaceColor = '#747575'; //LEGACY - from original code // pendiente revisar si sigue siendo necesario $(".fc-dialog-container").fadeOut(); $(".fc-dialog-overlay").fadeOut(); $(".fc-whitelist-root").remove(); $(".fc-ab-root").remove(); $(".salida_articulo").css("overflow", "visible"); //LEGACY - codigo extra personalizado por mi // pendiente revisar si sigue siendo necesario $(".articulo-trust").remove(); $(".a_tp").remove(); // seccion TrustProject $(".a_d").remove(); // seccion Subscr铆bete $(".articulo-extras").remove(); $(".articulo_branded").remove(); $(".pie").remove(); $(".navegacion-sucripcion").remove(); $(".bloque-patrocinador").remove(); $(".bloque_tematico_rsc_2019").remove(); $(".contenedor_clasificados").remove(); $(".antetitulo_comercial_generico").parent().remove(); //v0.7 $(".articulo_opinion > .articulo__interior > .noticia-cerrada").parent().parent().remove() $(".articulo_opinion > .articulo__interior > .noticia-cerrada-cintillo").parent().parent().remove() //v0.8 $(".contenedor_servicios_new").remove(); //0.9 $('a[rel="sponsored"]').remove(); //0.10 $('#bloque_tematico_deportes').remove(); //0.11 $('.bloque_tematico_especial-publi').remove(); } function cleanElpaisDelayed() { //este c贸digo se ejecuta unos cuantos segundos despu茅s de renderizarse la p谩gina //m贸dulo amarillo L铆mite de Lectura $("#articlesLeftMsg > span").text("tropocientos"); $(".sc_b").remove(); // borrado el bot贸n para m谩s informaci贸n de promociones de subscripci贸n elpais if ( $("#ctn_head .ed span:first").text() == "Espa帽a" ) { $("#ctn_head .ed span:first").text("Espanist谩n!"); } ; } setTimeout(cleanElmundo, 200); setTimeout(cleanElpais, 10); setTimeout(cleanElmundo, 500); setTimeout(cleanElpais, 500); setTimeout(cleanElmundo, 1400); setTimeout(cleanElpais, 1400); setTimeout(cleanElpaisDelayed, 4000); }); })();