Greasy Fork

El País - CLEANED PAGE & Sin Límite de noticias 😁

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.

目前为 2021-12-31 提交的版本。查看 最新版本

// ==UserScript==
// @name         El País - CLEANED PAGE & Sin Límite de noticias 😁
// @namespace    http://zequi.es
// @version      0.51
// @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
// ==/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, null ],
      [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 ]
  ] );
  // 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}


  $(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)
      $(".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
      $(".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.
      //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()



      // 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.

          //pre-foto
          $("article > Header.a_e").css("padding-top", "2rem");
          $("article > Header > div.a_e_txt").css("color", "#ddd");

          //post-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

          //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");

          $("article > Header").css("margin-bottom", "8px"); // BloqueAutor > reducir espacio vacío por arriba.
          $("article > div.a_md").css("margin-bottom", "0.5rem"); // BloqueAutor > reducir espacio vacío por debajo.
          $(".a_md_txt").css("color", "#ddd"); // BloqueAutor > texto en gris clarito
          $(".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"


      // 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")

      // 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);
  });
})();