tele5 mediathek view

makes the page usable again

目前为 2022-07-29 提交的版本。查看 最新版本

// ==UserScript==
// @name tele5 mediathek view
// @namespace Violentmonkey Scripts
// @match https://tele5.de/mediathek/
// @version 0.0.1.20220729150547
// @description makes the page usable again
// ==/UserScript==

// adjust this to your needs:
// 3: default, for smaller resolutions
// 4: 1920x1080/full screen
var columns = 4;
// 
//

if (pages) (function() {

document.getElementsByTagName("body")[0].style.display = "none";
  
Date.prototype.addDays = function(days) {
    var date = new Date(this.valueOf());
    date.setDate(date.getDate() + days);
    return date;
}

function unique(a) {
    var r = new Array();
    o: for (var i = 0, n = a.length; i < n; i++) {
        for (var x = i + 1; x < n; x++) {
            if (a[x] == a[i]) continue o;
        }
        r[r.length] = a[i];
    }
    return r;
}

function formatdate(datestring) {
    var mydate = datestring.replace(" ", "").split(".");
    var myday = mydate[0];
    var mymonth = mydate[1];
    var myyear = d.getFullYear();
  
    if (myday < 10) {
        myday = "0" + myday
    }
    if (mymonth < 10) {
        mymonth = "0" + mymonth
    }
    // december fix
    if (mymonth >= 11) {
        myyear = myyear - 1
    }
    return myyear + "-" + mymonth + "-" + myday;
}

function writetable(which, how) {
  var allrows = "";
    for (var i = 0, l = which.length - 1; i < l; ++i) {
        if ((which[i] != undefined) && (which[i] != "undefined"))
        var filmset = which[i].split("|");
        if (how == 0) {
            var ab = filmset[1];
            var wann = filmset[0];
        } else {
            var ab = filmset[0];
            var wann = filmset[1];
        }
        var was = filmset[2];
        var wo = filmset[3];
        var wie = filmset[4];
        var regexpd = new RegExp(" - .*", "gi");
        was = was.replace(regexpd, "");
        var regexpe = new RegExp(": .*", "gi");
        was = was.replace(regexpe, "");
        var link = '<a href="' + wo + '">';
        var tablerow = '<div class="box">' + link + '<img src="' + wie + '" /></a><br />' + link + was + '</a><br />' + ab + ' - <br />' + wann + '</div>' + "\n";
        if (how == 0) {
            if (! (new Date(wann) - d <= 0)) {
            allrows += tablerow;
            }
        } else {
            allrows += tablerow;
        }
    }
  return allrows;
}

var d = new Date();
  
var filmsa = new Array();
var filmsb = new Array();
    for (var i = 0, l = pages.length; i < l; ++i) {
        var filmtitle = pages[i].title;
        var onlinetil = pages[i].subtitle;
        var onlinefro = "";
        if ((filmtitle != undefined) && (filmtitle != "undefined") && (filmtitle != "") && (onlinetil.indexOf(" Online") != -1)) {
            /////////////////////////////////////////////////////////////////////////////////////////////
            // ugly code to fix online from/until data
            onlinetil = onlinetil.replace(/\.-/g, ". -");
            onlinetil = onlinetil.replace(/ Online: /g, " Online ");
            onlinetil = onlinetil.replace(d.getFullYear(), "");
            onlinetil = onlinetil.replace(/bis/g, "");
            var regexpa = new RegExp(".* Online ", "gi");
            onlinetil = onlinetil.replace(regexpa, "");
            onlinetil = onlinetil.replace(/ /g, "");
            var regexpb = new RegExp("\/.*", "gi");
            onlinetil = onlinetil.replace(regexpb, "");
            // if not malformed...
            if (onlinetil.match(/[0-9]*?\.[0-9]*?\.-[0-9]*?\.[0-9]*?\./gi) != null) {
              var onlinefrotil = onlinetil.split("-");
              onlinefro = onlinefrotil[0];
              onlinetil = onlinefrotil[1];
            } else {
              // "bis": 25.8.
              if (onlinetil.indexOf("-") == -1) {
                  var daymonth = onlinetil.split(".");
                  onlinetil = daymonth[0]+"."+daymonth[1]+".";
                  onlinefro = "1."+daymonth[1]+".";
              }
              // from month missing: 10.-17.8.
              if (onlinetil.match(/^[0-9]*?\.-/gi) != null) {
              console.log(filmtitle);
              var onlinefrotil = onlinetil.split("-");
              onlinefro = onlinefrotil[0]; // 10.
              onlinetil = onlinefrotil[1]; // 17.8.
              var missmonth = onlinefrotil[1].split(".");
              onlinefro = onlinefrotil[0]+missmonth[1]+".";
              }
            }
            /////////////////////////////////////////////////////////////////////////////////////////////
            var onlinefrof, onlinetilf = "";
            onlinefrof = formatdate(onlinefro);
            onlinetilf = formatdate(onlinetil);
            var linesuf = "|" + filmtitle + "|" + pages[i].url + "|" + pages[i].image;
            if (! (new Date(onlinefrof) - d >= 0)) {
              // jetzt
                filmsa[i] = onlinetilf + "|" + onlinefrof + linesuf;
            } else if (new Date(onlinefrof) - d >= 0) {
              // bald
              // add one day
              var date = new Date(onlinefrof);
              onlinefrof = date.addDays(1).toISOString().split('T')[0];
                filmsb[i] = onlinefrof + "|" + onlinetilf + linesuf;
            }
        }
}

filmsa = unique(filmsa);
filmsa = filmsa.sort();
filmsb = unique(filmsb);
filmsb = filmsb.sort();
  
var screenwidth = window.innerWidth;
var imgsize = Math.floor(screenwidth/3-250);
var cssimg = imgsize.toString();
var padcss = Math.floor(imgsize/3).toString();
var marcss = Math.floor(imgsize).toString();
var mediathek, dvdx, colcount = "";
var dvdr = '<div class="box"></div>\n';
if (columns == 4) {
colcount = "25% 25% 25% 25"; 
dvdx = dvdr;
} else {
colcount = "33% 33% 33";  
}

mediathek += '<html><head><title>tele5 mediathek view</title><base href="https://tele5.de/mediathek/"><meta charset="utf-8">\n';
mediathek += '<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />\n';
mediathek += '<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />\n';
mediathek += '<style>body { margin: 40px; font-family: Arial; overflow-x: hidden; display: none; } img {width: '+cssimg+'px; text-decoration:none;border:none;}\n';
mediathek += '.wrapper { display: grid; grid-gap: 15px; grid-template-columns: '+colcount+'%; background-color: #fff; color: #444; }\n';
mediathek += '.box { background-color: #444; color: #fff; border-radius: 5px; padding: 20px; font-size: 100%; }\n';
mediathek += '.bottom {margin-top: '+marcss+'px;margin-bottom: '+padcss+'px;}  .top {margin-top: '+padcss+'px;} </style>\n';
mediathek += '</head><body>\n';
mediathek += '<div class="wrapper top">';
mediathek += '<div class="box"><a name="jetzt"></a></div>'+dvdr+dvdr+dvdx;
mediathek += '<div class="box">jetzt:</div><div class="box"><a href="#bald">bald</a></div>'+dvdr+dvdx+'\n';
mediathek += writetable(filmsa, 0);
mediathek += '</div>';
mediathek += '<div class="wrapper bottom">';
mediathek += '<div class="box"><a name="bald"></a></div>'+dvdr+dvdr+dvdx;
mediathek += '<div class="box"><a href="#jetzt">jetzt</a></div><div class="box">bald:</div>'+dvdr+dvdx+'\n';
mediathek += writetable(filmsb, 1);
mediathek += '</div>';

                                  // fix for some weird throw of undefined in the generated markup
document.write(mediathek.replace(/undefined/g, ""));

setTimeout("document.getElementsByTagName('body')[0].style.display = 'block'", 500);
setTimeout("window.location.hash = '#jetzt'", 510);

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址