Greasy Fork

Wech mit die Bezahlschranke!

Komplette Artikel (faz, handelsblatt, ksta/DuMont) oder zumindest längere Anrisstexte (der Rest) für Umme lesen!

目前为 2024-07-05 提交的版本。查看 最新版本

// ==UserScript==
// @name Wech mit die Bezahlschranke!
// @description Komplette Artikel (faz, handelsblatt, ksta/DuMont) oder zumindest längere Anrisstexte (der Rest) für Umme lesen!
// @namespace Violentmonkey Scripts
// @match https://www.zeit.de/*
// @match https://www.sueddeutsche.de/*
// @match https://www.faz.net/*
// @match https://www.ksta.de/*
// @match https://www.rundschau-online.de/*
// @match https://www.handelsblatt.com/* 
// @grant none
// @version 0.0.1.20240705144752
// ==/UserScript==

$   = function(_) {return document.getElementById(_)}
$tn = function(_) {return document.getElementsByTagName(_)}
$cn = function(_) {return document.getElementsByClassName(_)}
$qa = function(_) {return document.querySelectorAll(_)}
$qs = function(_) {return document.querySelector(_)}

window.addEventListener('load',
  function() {

    $tn("body")[0].onclick = function() {

      var jsoncontainer = 0;

      for (var i = 0, l = $tn("script").length; i < l; ++i) {

        if ($tn("script")[i].type == "application/ld+json") {
          if ($tn("script")[i].innerText.indexOf("articleBody") != -1) {
            jsoncontainer = i;
            break;
          }
        }
      }

      if (jsoncontainer != 0) {

        var scriptEl = $tn("script")[jsoncontainer].innerText;
        var schemaObj = JSON.parse(scriptEl);
        var prepare = "";
        if (location.hostname.indexOf("handelsblatt") != -1) {
          prepare = schemaObj[1].articleBody.replace(/\. (Januar|Februar|März|April|Mai|Juni|August|September|Oktober|November|Dezember) /g, ".$1");
        } else {
          prepare = schemaObj.articleBody.replace(/\. (Januar|Februar|März|April|Mai|Juni|August|September|Oktober|November|Dezember) /g, ".$1");
        }
       
        var splitter = /\. |\?/;
        var splitter = "\. ";
        var sentences = prepare.split(splitter);
        var formattedtext = "";
        var skips = 0;

        for (var i = 0; i < sentences.length; i++) {
          if (i === skips + 3) {
            var breaks = "<br /><br />";
            skips += 3;
          } else {
            var breaks = "";
          }

          formattedtext += sentences[i].replace(/\.(Januar|Februar|März|April|Mai|Juni|August|September|Oktober|November|Dezember)/g, ". $1 ") + ". " + breaks;
        }

        formattedtext = formattedtext.replace("...", "###").replace(".. ", ". ").replace("###", "...");

      }

      switch (location.hostname.replace("www.", "")) {

        case "sueddeutsche.de": {
          $cn("article-content")[0].innerHTML = formattedtext;
        }

        case "zeit.de": {
          document.getElementById("paywall").style.display = "none";
          document.getElementById("paywall").style.visibility = "hidden";

          for (var i = 0, l = $cn("article__item").length; i < l; ++i) {
            $cn("article__item")[i].classList.remove("paragraph--faded");
          }
        }
          
        case "handelsblatt.com": {
          $tn("app-paywall")[0].style.display = "none";
          $tn("app-paywall")[0].style.visibility = "hidden";
          
          $tn("app-storyline-elements")[0].innerHTML = "<p>&nbsp;</p>" + formattedtext;
        }

        case "faz.net": {
          if ($cn("paywall")[0]) {
            $cn("paywall")[0].style.display = "none";
            $cn("paywall")[0].style.visibility = "hidden";
          }
          if ($cn("regwall")[0]) {
            $cn("regwall")[0].style.display = "none";
            $cn("regwall")[0].style.visibility = "hidden";
          }

          $cn("body-elements")[0].innerHTML = formattedtext;

        }

        case "ksta.de":
        case "rundschau-online.de": {
          document.getElementsByClassName("paywalled-content")[0].style.display = "block";
        }

      }
      
      $tn("body")[0].onclick = function() {}
      
    }

  },
  false);

setTimeout('document.getElementsByTagName("body")[0].click()', 2500);