Greasy Fork is available in English.

Netzflix view

declutters netzkino.de

// ==UserScript==
// @name Netzflix view
// @description declutters netzkino.de
// @namespace Violentmonkey Scripts
// @match https://www.netzkino.de/
// @match https://www.netzkino.de/category/*
// @grant none
// @version 0.0.1.20240610175029
// ==/UserScript==

// adjust this to your needs:
// 2-3: default, for smaller resolutions
// 4 and 5: 1920x1080/full screen
// 6: ...
var columns = 5;
// 

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

$tn("body")[0].style.display = "none";
$tn("body")[0].style.visibility = "hidden";

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

    var scriptname = "Netzflix view";

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

      var nfsvg = '<span><svg height="32" width="128" viewBox="0 0 512 128"><path d="m17.4 9.4v100.8c10.9-3.1 22.5-6 34.7-8.6 0-.1.1-.2.3-.4.4-.4 1-.4 1.2-.4.3.1.4.1.5.2s.2.1.3.2c52.9-11.1 117.4-17.6 187-17.6 23.4 0 46.2.7 68.1 2.1.3-4.2.1-8.7.5-13 0-.1-.1-.1.1-.4.3-.9.8-1 1.2-1 2.9-.2 6.9-1 9.3.6 1.6 4.7-.4 9.8 1.5 14.7 48.5 3.7 92.7 10.6 129.9 20 0-.1.1-.1.1-.2.1-.1.1-.2.3-.3.1-.1.3-.3 1-.3.6 0 .8.2 1 .4.2.1.3.3.4.4.2.2.4.5.5.8 15.2 4 29.2 8.3 41.7 13l-27-60.2 23-46.9-4-3.9h-35.1c-.1.3-.2.4-.3.7-.5 1-.9 1.8-1.2 2.3-.2.3-.3.6-.6.8-.2.2-.4.6-1.3.6-.5 0-.6-.1-.7-.1-.1-.1-.2-.2-.2-.2-.2-.1-.3-.2-.4-.3-.3-.3-.7-.6-1.1-.9-.8-.8-1.9-1.8-3-2.9h-65.7c-.1.5-.1 1.1-.2 1.9-.2 3.5-.2 10.5-.2 25.5-.1 11.1-.1 17.8-.2 21.8v4.1c-.1.4-.1.7-.1.9-.1.2-.1.3-.2.5s-.1.3-.4.6c-.3.2-1 .4-1.4.2-.1 0-.1 0-.1 0-.1 0-.4-.1-.6-.1-.5-.1-1.1-.1-1.8-.2-2.7-.3-5.9-.7-8.2-.9-.4-.1-.9-.1-1.2-.3-.2 0-.4-.1-.6-.2s-.3-.2-.4-.4c-.2-.1-.5-.5-.5-1 0-.1 0-2.6 0-6.6s0-9.6 0-15.6c-.1-11.8-.1-17.7-.3-20.8 0-1.6-.2-2.4-.3-2.9s-.2-.6-.5-1.1c-.1-.1-.3-.3-.5-.5-.3-.3-.6-.7-1.1-1.2-.9-.9-2.1-2.1-3.3-3.3-.1-.1-.3-.2-.4-.4h-294.2c-.6 2.3 0 5.4-1.9 6.8-3.1-1.1-4.9-4.4-7.3-6.8zm141.9 30.6c4.4 2.1 5.6 30.4 2.3 33.3-.8.8-1.8 1.3-2.7 1.6-1.9-.3-8.7-6.5-8.2-9.2 7.1-2.9 4-24.1 8.6-25.7zm55.4 1.1c1.9-.1 3.6.2 4.8 1.3-.1 3.4-12.5 21.3-16 22-5.1-5.6-2.8-14.5-2-21.5 3.6.6 8.9-1.5 13.2-1.8zm208.1 5.4h.1c.7.1.8.3 1 .4.4.3.5.5.6.7.2.2.4.5.6.8.3.7.7 1.5 1.2 2.3.4.8.7 1.6 1 2.2.2.4.3.7.4 1s.2.4.2.9-.1.7-.1.9c-.1.2-.2.5-.4.7-.2.5-.5 1.1-.9 1.7-.3.5-.6 1-.9 1.5-.2.3-.4.8-.3.7-.3.8-.7 1.2-1.4 1.6l-.6.4-1.9 1.3-.2-2.3-.2-1.5c-.2-2.2-.2-7.4 0-10.1.1-1 .1-1.4.3-2.1.1-.2.2-.5.5-.7.2-.3.6-.4 1-.4zm-156.6 3.1c2.3 0 4.2 2.9 4.2 6.5v.1c0 3.6-1.9 6.6-4.2 6.6s-4.1-3-4.1-6.6 1.8-6.6 4.1-6.6z" fill="#ee5a29"/><path d="m490 125.3c-.3-.1-2.5-.5-4.9-1-2.3-.5-5.7-1.1-7.6-1.5-6.4-1.2-10.5-2.1-11.5-2.6-.6-.3-3.1-2.6-5.8-5.3-3.7-3.7-4.9-5-5.5-6.2-.4-.8-.7-1.6-.7-1.7 0-.2-.6-.6-.9-.6-.1 0-.5.9-1 2-1.2 2.6-2.9 5.1-4 5.9-1.9 1.5-4.8 2-7.8 1.4-.6-.1-5.3-1-10.4-1.9-6.5-1.2-10-1.9-11.9-2.5-2.1-.8-2.7-.9-3.8-.7-1 .1-3-.2-7.6-.9-14.9-2.4-16.2-2.7-17.9-4.2-1.2-1-1.6-1-3.7-.2-1.2.5-3.5.4-6.9-.1-.8-.1-3.2-.5-5.2-.8-2.1-.2-5-.6-6.5-.8-3.1-.5-18.2-2.4-24.9-3.2-9.3-1.1-8.5-.7-14.7-6.8-3.7-3.7-5.2-5.4-5.7-6.3-.8-1.6-1.2-5.3-1-10.5 0-2.6-.1-4.2-.2-4.4-.3-.2-8.5-.4-8.8-.2-.1.1-.2 3.7-.3 7.9 0 4.2-.2 8.4-.3 9.2-.5 2.9-2.5 5.6-5.1 6.7-1.4.5-1.9.6-5.6.5-4.8 0-14.1-.5-17.4-.9-1.3-.1-2.7-.4-3.2-.7-1.1-.6-1.8-.6-3.1-.1-1.3.6-9.8.8-37.7.9-23.4.1-23.1.1-24.9-1-.9-.5-5.7-5.3-7.2-7-1.6-1.9-1.9-1.8-2.3 1s-.9 4-2.4 5.7c-1.4 1.5-2.7 2.2-5.4 2.6-1.7.3-10 1.1-18.8 1.8-1.8.1-4.3-.3-5.4-.9-1-.6-9.1-8.6-10.3-10.2-.4-.5-.9-1-1-1s-.2 1.8-.2 4.1c-.1 4-.1 4.1-.9 5.7-.9 1.7-2.2 3.1-3.9 4-1.7.8-3.3 1.1-21.8 3.7-5 .7-11.8 1.7-15.1 2.1-9.6 1.4-12 1.3-14.6-.8-1.3-1-1.8-1-2.2 0-.2.4-.9 1.4-1.7 2.1-2.1 2-1.8 1.9-20 5.1-11.2 2-12.4 2-14.7 1-1.7-.9-10.4-9.6-11.1-11.2-.4-1-1.1-1.6-1.4-1.2-.1 0-.2 2.7-.3 5.8-.2 5.4-.2 5.8-.8 6.9-1.3 2.7-3.4 4.3-6.4 5-2 .5-9.4 2-13.9 2.8-4.3.7-5.6.8-7.5.2-1.2-.3-1.8-.8-6.3-5.3-6.1-5.9-6.6-6.6-6.9-10.5-.2-3.1-.2-84 0-91.8.2-6.1.3-6.7 2.6-9 2.6-2.6 3-2.7 18.9-2.7 13.2 0 14.9.1 16.5 1.1 1.6.9 9.8 9.3 10.6 10.8.4.8.9 1.4 1 1.4.4.1.6-1 .6-3.2.1-2.9.4-4.4 1.6-6.1 1.3-1.9 3.1-3.2 5.3-3.6 2.5-.6 18.3-.6 20.7-.1 2.1.5 4.2 1.8 5 3.1.3.4.6.8.8.8.1 0 .7-.5 1.2-1.1 1.4-1.6 2.6-2.3 4.6-2.8 1.4-.3 4.6-.3 23.7-.2 12.1.1 22.7.1 23.5.1.9 0 27.5 0 59.3-.1 62.2-.1 60.7-.1 62.3 1.1.8.7.9.7 2.3-.1 2.1-1.1 3.2-1.1 25.1-1.1 22.6 0 23.6.1 25.2 1.3 1.1.8 1.6.8 2.8 0 1.8-1.2 3.1-1.3 14.2-1.3 10.8 0 11.7.1 13.7 1.3 1.3.7 9.5 8.8 10.5 10.3.4.6.8 1.3.9 1.8.1.4.3 10.9.3 23.4.2 19.9.2 22.8.6 22.9.3.2 2.1.4 10.2 1.3 1.4.2 2.6.2 2.7.2 0-.1.1-12.2.1-26.9.1-29.8 0-28.1 1.8-30.5.6-.7 1.5-1.7 2.1-2.1 2.1-1.5 2.4-1.6 13.7-1.7 10.4 0 12.8.1 14.4.9.6.3.8.3 1.4 0 1.6-.8 3.3-.9 14.3-.9 11.6 0 13.7.1 15.3 1.2.7.4 2.8 2.4 7.6 7.3 1.1 1.1 2.1 2 2.3 1.9.2 0 .9-1.2 1.5-2.7 2-4.7 4.1-6.9 7.1-7.4 2.5-.5 23.8-.3 25.7 0 1.8.5 3.5 1.4 4.6 2.6.4.4 2.5 2.5 4.6 4.6 2 2.1 3.9 4.2 4.1 4.6 1 2 1.3 5 .6 6.9-.4 1.3-2.3 5.5-4 9-.6 1.3-1.5 3.2-2 4.2-2.3 5.1-4.1 8.9-5.5 11.9-.7 1.4-1.6 3.3-2 4.3-.5.9-1.7 3.5-2.8 5.7-3.1 6.5-4.3 9.2-4.3 9.5s1.4 3.4 5.2 11.2c1.4 2.9 2.5 5.3 2.5 5.3s1.3 2.7 2.9 6 3.7 7.6 4.6 9.6 2.6 5.5 3.6 7.7c3.8 7.7 4.4 9.7 3.9 11.9-.4 1.9-1.2 3.4-2.6 4.8-1.9 1.8-3.3 2.5-5.8 2.5-1.1.1-2.2 0-2.6 0zm-5.7-16.8c-6.3-14-13.5-29-19.9-41.8-2.6-5.3-3.2-6.9-3.2-7.6 5.1-14.6 16.1-30.5 21.6-46.9v-.5h-10.5c-5.8 0-10.7 0-10.9.1-4 8.6-7.8 18-11.5 26.2-.3.8-.7 1.4-.9 1.4-.3 0-.6-.7-2.4-4.8-.6-1.6-1.5-3.5-1.8-4.3-.9-1.8-3.4-7.4-3.9-8.5-.2-.4-1.1-2.3-2-4.3-.8-1.9-1.7-3.9-1.9-4.4-.1-.5-.5-1.1-.7-1.2-.4-.3-2.8-.3-10.6-.3-8.8.1-10.2.1-10.2.5 0 .2.9 1.9 1.9 3.8 2 3.7 10.7 20.9 16.3 32.1 2.4 4.8 3.3 6.9 3.2 7.3-.1.3-1.2 2.4-2.5 4.6-5.7 10.3-11.9 21-17.7 30.8-2.8 4.7-2.8 4.7-2.4 5.1 6.6 1.4 13.1 2.3 19.8 3.6 1.2.3 1.5.1 2.3-1.5.3-.6 2.2-4.2 4.2-8 2.1-3.8 4.7-8.8 5.9-11.1s2.3-4.2 2.5-4.2 1.2 1.9 2.4 4.6c4.3 8.8 7 17.2 11.6 25.5.3.2 1 .5 1.6.6s2.1.4 3.4.6c1.3.3 3.6.7 5.1 1s4.2.8 5.9 1.1c3.2.7 5.3.8 5.3.5zm-448-5.5c2-18.8-.9-36.5-.4-63 .2-.9.7-.4 1.6 1.9 7 16.5 14.7 34.1 21.5 49.6 3.3 7.3 2.6 6.7 6.3 6 6.9-1.4 14.1-2.1 21.1-3.6.5-.2.5-.4.5-41.1 0-22.4-.1-40.9-.2-41-5.8-.2-10.4-.1-16.5-.1-.1 0-.2 9.5-.2 21 0 19.4.2 29 .7 35.3.1 1.8.1 2.4-.2 2.4-4.9-9.6-8.7-18.9-13.2-29.2-2.6-5.8-10.1-23.4-11.7-27.4-.3-.8-.7-1.6-.9-1.8-.2-.3-2.3-.3-12.5-.3-6.9 0-12.2.1-12.3.2-.2.3-.2 93.4 0 93.7 4.2-.1 10.4-1.4 16.4-2.6zm369.4-8.9c.2-.3.1-82.3-.1-82.4-.1-.1-4.4-.1-9.6 0l-9.3.1v39.5c.1 21.7.1 39.6.2 39.8s.5.3 1 .3 3.2.4 6 .9c2.9.5 6 1 6.9 1.2.9.1 2.2.3 3 .5 1.8.5 1.7.5 1.9.1zm-295.1-4.2c11.6-1.8 21.8-2.9 33.1-4.6l.6-.1v-7.6c0-5.7-.1-7.7-.4-8-.2-.3-.6-.3-3.1 0-5.6.6-10.6 1-16.2 1.7-1.5.2-2.8.3-2.9.2s-.2-3.2-.2-7.1v-7l.6-.2c.4-.2 1.4-.3 2.2-.3 5.5-.1 10.1-.9 15.7-1 2.7 0 2.5.8 2.5-8 0-4.2-.1-7.7-.2-7.8-7.2 0-12.9.7-20.6.6-.1-.1-.2-2.8-.1-5.9v-5.7c7.7-.4 14.9-.5 22.5-.5v-8.4-8.4h-21-21l.1 1.8v39.5l.1 37.8h.8c.4 0 3.8-.4 7.5-1zm264.8-8.7c.1-4.5 0-8.2-.1-8.3-.2-.3-3.6-.7-13.9-1.7-1.4-.2-4.1-.4-6.1-.7-2-.2-4.4-.5-5.3-.5l-1.6-.2-.1-29c-.1-15.9-.2-29-.2-29.1-.1 0-4.3 0-9.5 0l-9.5.1v35.7l-.1 35.7.6.2c.3.1 3.2.5 6.4.9 11.8 1.3 19.4 2.3 27.9 3.5 1.4.2 3.6.5 4.9.6 1.3.2 3.2.5 4.2.6 1 .2 2 .4 2.1.3.2 0 .3-3 .3-8.1zm-198.3.6c3.1-.2 6.7-.5 8.1-.7l2.6-.3v-25.9c0-17.8 0-26.1.2-26.5 5.6-1.1 8.8-.2 16.4-.6l.6-.2v-7.6c0-4.2-.1-7.8-.2-8-.2-.3-5.7-.3-26.8-.3l-26.6.1.1 8.3c0 4.5.1 8.3.2 8.4 5.9.2 10.5-.3 16.7-.1.3.1.4 5.3.4 27.1v27l1.4-.1c.8-.1 3.9-.3 6.9-.6zm117.4-14 .1-12.5 3.2.1c1.7 0 6.3.2 10.1.3 3.9.2 7.3.2 7.5.1.3-.1.4-1 .3-7.3l-.1-7.2-1.7-.2c-1-.1-5.7-.3-10.5-.4l-8.8-.1v-6.5l-.1-6.4 10.6.1c5.8.1 11 .1 11.5 0l.9-.1v-7.6c0-4.2-.1-7.8-.1-8-.2-.4-2.2-.4-20.6-.4-11.3 0-20.7 0-20.8.1-.3.1-.4 6-.3 33.8 0 18.8.1 33.7.2 33.8s4 .3 8.6.5 8.4.4 8.5.4c.1.1.4.1.7.1l.7-.1zm-63.5 11.4c4.6-.2 14.3-.3 21.4-.3h13.1v-6.8c0-3.7-.1-6.9-.2-7.1-.2-.3-3.5-.3-15.4-.3s-15.1-.1-15.1-.3c0-.5.9-1.8 3.7-5.5 1.3-1.6 3.3-4.2 4.4-5.7 4.3-5.8 5.3-7.1 6.3-8.4 1.1-1.4 8-10.5 10.4-13.7.8-1.1 2.1-2.9 3-4 2.2-2.9 2.2-2.8 2.2-9.1 0-3.1-.1-5.7-.2-5.9-.1-.4-2.7-.4-26.6-.4-17.6 0-26.5.1-26.6.2-.3.3-.2 15 .1 15.4.2.2 27.2.2 27.5 0s1.8.2 1.7.5c0 .1-.9 1.4-2 2.9-3.4 4.4-10.5 13.9-13.3 17.7-3.8 5.2-5.4 7.4-6.6 9-3.6 4.6-6.8 9-7.5 10.1l-.8 1.3v5.3c0 3.3.1 5.3.3 5.4.4.1 11.2-.1 20.2-.3zm-71-16.3c.1-5.2.1-11.2 0-13.5-.1-3.8-.2-4.1-.6-4.1s-.4.4-.5 9.1c-.1 10-.3 11.8-1.5 13.4-.7 1-.6 1.7.3 2.6.4.4.9 1 1.3 1.4.3.3.6.6.7.5.1 0 .3-4.3.3-9.4zm264.4-3.1c.9-1.7 1.9-3.5 2.2-4l.5-1.1-1-2c-.6-1.1-1.5-3-2.1-4.3-1.2-2.7-1.4-3-1.8-2.5-.2.4-.2 16.4 0 16.9.3.4.7-.2 2.2-3zm-219 .9c1.1-1.6 7.4-10.1 9.5-12.9 1.1-1.4 2.2-2.9 2.4-3.3.5-.8.5-.8.1-1-.3-.1-1.3 0-2.2.1-1 .2-3.8.4-6.3.5-4.4.2-4.4.2-4.7.8-.1.3-.2 4.2-.2 8.7 0 8.9 0 9.1 1.4 7.1zm61.6-5.7c0-.7-.2-.8-.8-.6-.4.3-.6 1-.3 1.4.3.2 1.1-.4 1.1-.8z" fill="#000100"/><path d="m370-96.6h2.1v.4h-2.1z" fill="#800000"/></svg></span>';

      var favicon = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16'%3E%3Crect fill='%237f0000' height='14' ry='1' stroke='%23fff' stroke-width='.2' width='14' x='1' y='1'/%3E%3Cpath d='m9.2 10.8h-1.2v-4.4c-.4.4-.9.7-1.5.9v-1c.3-.1.6-.3 1-.6s.6-.6.7-1h1z' fill='%23fff' stroke='%23000' stroke-width='.2'/%3E%3Cpath d='m13.5 8c0 3-2.5 5.5-5.5 5.5s-5.5-2.5-5.5-5.5 2.5-5.5 5.5-5.5 5.5 2.5 5.5 5.5z' fill='none' stroke='%237f7f7f' stroke-width='.3'/%3E%3C/svg%3E";
      var imdbsvg = '<span><svg height="20" width="32" viewBox="0 5 64 16"><rect fill="#f5c518" height="32" rx="4" width="64"/><path d="m8 7v18h5v-18zm7 0v18h4.25v-11.875l1.78125 11.875h3.03125l1.6875-12.15625.03125 12.15625h4.21875v-18h-6.3125l-1.125 8.40625-.71875-4.5625c-.2015908-1.46493163-.3773656-2.75199879-.5625-3.84375zm17 0v18h7.8125c1.7671031 0 3.1875-1.43311 3.1875-3.1875v-11.625c0-1.75666009-1.4227064-3.1875-3.1875-3.1875zm13 0v17.78125h4.46875l.3125-1.125c.5884049.8053879 1.5578038 1.34375 2.65625 1.34375h.3125c1.7956636 0 3.25-1.3919253 3.25-3.125v-7.21875c0-1.73219176-1.4548082-3.15625-3.25-3.15625h-.3125c-1.0747565 0-2.0380781.51087183-2.65625 1.28125v-5.78125zm-8.3125 3.09375c.5518634 0 .957924.04905988 1.15625.15625.2026373.10719012.3189514.26973974.375.5s.09375.74864909.09375 1.5625v6.96875c0 1.1989413-.0818541 1.9487897-.25 2.21875-.1681459.2739303-.6463678.40625-1.375.40625zm13.84375 4.1875c.2639059 0 .6557478.1308602.75.34375.0942522.21288983.125.70151132.125 1.40625v4.25c0 .8038426-.0420582 1.3220307-.125 1.53125-.0829419.2092193-.4785537.3125-.75.3125-.2714464 0-.6595179-.1069512-.75-.3125v-1.40625-4.375-1.4375c.0791718-.18719623.4860938-.3125.75-.3125z"/></svg></span>',
      imdbprefix = '<a href="https://www.imdb.com/find/?q=',
      imdbsuffix = '" target="somenewwindow">' + imdbsvg + '</a> ';

      var free = 0;
      var exclude = new Array();

      var debug = 1;

      var mediathek, mode = "";

      if (debug != 1) {
        console.log = function() {};
        console.warn = function() {};
        console.err = function() {};
      }

      var jsoncontainer = 0;

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

        if ($tn("script")[i].type == "application/ld+json") {
          jsoncontainer = i;
          break;
        }

      }

      var scriptEl = $tn("script")[jsoncontainer];
      var schemaObj = JSON.parse(scriptEl.innerHTML);

      function writetable(preparing) {
        var allrows = "";
        for (var i = 0, l = prepared.length; i < l; ++i) {

            free++;

            var link = '<a href="' + preparing[i].link + '">';
            var plusstate, directordisplay, durationdisplay, releaseyear = "";

            if (preparing[i].plusorwhat == "plus") {
              plusstate = " [+] ";
            }

            if (preparing[i].director != "-") {
              directordisplay = preparing[i].director;
            }

            if (preparing[i].relyear != 0) { 
              releaseyear = preparing[i].relyear + ", ";
            }

            if (preparing[i].runtime != "0") {
              durationdisplay = preparing[i].runtime + " Min., ";
            }

           if ( preparing[i].fulltitle.indexOf(" (Dt.") != -1) {
             var filmtitle = preparing[i].fulltitle.split(" (Dt.")
             var origtitle = filmtitle[0];
             var displaytitle = preparing[i].fulltitle.replace(" (Dt.: ", "</a><br />(");
             var imdbtitle = origtitle;
           } else {
             var origtitle = "";
             var displaytitle = preparing[i].fulltitle;
             var imdbtitle = displaytitle;
           }
            var imdb = imdbprefix + imdbtitle + imdbsuffix;

            allrows += '<div>' + link + '<img src="' + preparing[i].img + '" /></a><br />' + link + displaytitle + "</a> " + "<br />" + imdb + releaseyear + durationdisplay + directordisplay + '<br /></div>' + "\n";

        }
        return allrows;
      }

      if (debug != 0) {
        var skip = 0;
      }

var scriptEl = $("__NEXT_DATA__");
var schemaObj = JSON.parse(scriptEl.innerHTML);
var allkeys = Object.values(schemaObj.props["apolloState"]).length;
var preparing = new Array();
var myindex = 0;

function film(fulltitle, link, img, runtime, relyear, director, plusorwhat) {
  this.fulltitle = fulltitle;
  this.link = link;
  this.img = img;
  this.runtime = runtime;
  this.relyear = relyear;
  this.director = director;
  this.plusorwhat = plusorwhat;
}

      for (var i = 0, l = allkeys; i < l; ++i) {

  if (Object.values(schemaObj.props["apolloState"])[i].__typename == "CmsMovie") {

    if (Object.values(schemaObj.props["apolloState"])[i].externalIdentifier) {
      var slug = Object.values(schemaObj.props["apolloState"])[i].slug;
      if (slug) {

        var director, plusorwhat = "";

        var dttitle = Object.values(schemaObj.props["apolloState"])[i].title.replace(/\u2013|\u2014/g, "-");
        var origtitle = slug.replace(/-/g, " ").replace(/(^\w{1})|(\s+\w{1})/g, letter => letter.toUpperCase());

        var checkorigtitle = origtitle.toLowerCase();
        var checkdttitle = dttitle.toLowerCase();

        var myregex = new RegExp(" – .*", "gi");
        checkdttitle = checkdttitle.replace(myregex, "");
        checkorigtitle = checkorigtitle.replace(myregex, "");
        myregex = new RegExp(" - .*", "gi");
        checkdttitle = checkdttitle.replace(myregex, "");
        checkorigtitle = checkorigtitle.replace(myregex, "");
        myregex = new RegExp(": .*", "gi");
        checkdttitle = checkdttitle.replace(myregex, "");
        checkorigtitle = checkorigtitle.replace(myregex, "");

        checkdttitle = checkdttitle
          .replace(/-/g, " ")
          .replace(/  /g, " ")
          .replace(/ä/g, "a")
          .replace(/ü/g, "u")
          .replace(/ö/g, "o")
          .replace(/ß/g, "ss")
          .replace(/é/g, "e")
          .replace(/ñ/g, "n")
          .replace(/the | uncut| hd| 3d|\!|\&|\.|\,|\:|\;|\'|\"/g, "");

        checkorigtitle = checkorigtitle
          .replace(/-/g, " ")
          .replace(/  /g, " ")
          .replace(/ä/g, "a")
          .replace(/ü/g, "u")
          .replace(/ö/g, "o")
          .replace(/ß/g, "ss")
          .replace(/é/g, "e")
          .replace(/ñ/g, "n")
          .replace(/the | uncut| hd| 3d|\!|\&|\.|\,|\:|\;|\'|\"/g, "");

        var fulltitle, temptitle = "";

        if (checkdttitle == checkorigtitle) {
          if (dttitle.indexOf(" - ") == -1) {
          fulltitle = dttitle;
          } else {
          fulltitle = origtitle;
          }

        } else {

            if (dttitle.indexOf(" - ") != -1) {
              temptitle = dttitle.split(" - ");
              fulltitle = temptitle[0];
              console.log(fulltitle)
            } else
            if (dttitle.indexOf(": ") != -1) {
              temptitle = dttitle.split(": ");
              fulltitle = temptitle[0];
              console.log(fulltitle)
            } else {
              fulltitle = origtitle + " (Dt.: " + dttitle + ")";
            }

        }

        var id = Object.values(schemaObj.props["apolloState"])[i].id;
        var runtimeInSeconds = Object.values(schemaObj.props["apolloState"])[i].runtimeInSeconds;
        if (runtimeInSeconds < 3600) {
          runtimeInSeconds = runtimeInSeconds + 3600;
        }
        runtimeInSeconds = Math.floor(runtimeInSeconds / 60);
        if (runtimeInSeconds == null) {
          runtimeInSeconds = 3600;
        }
        var productionYear = Object.values(schemaObj.props["apolloState"])[i].productionYear;
        if (productionYear == null) {
          productionYear = 0;
        }

        var widescreen = schemaObj.props["apolloState"]['$CmsMovie:' + id + '.widescreenImage'].masterUrl;
        var howmany = 0;
        var justtestin = Object.values(schemaObj.props["apolloState"])[i].flags.json.map((word) => {
          if (word.indexOf("plus-exclusive") != -1) {
            howmany++;
          }
        });

        if (howmany > 0) {
          plusorwhat = "plus";
        } else {
          plusorwhat = "minus";
        }

        if (schemaObj.props["apolloState"]['$CmsMovie:' + id + '.cmsMovieContentPeopleByContentMovieId({\"condition\":{\"connectionType\":\"director\"}}).nodes.0.person']) {
          director = schemaObj.props["apolloState"]['$CmsMovie:' + id + '.cmsMovieContentPeopleByContentMovieId({\"condition\":{\"connectionType\":\"director\"}}).nodes.0.person'].name;
        }

        if ((director == "") || (director == "undefined") || (director == "N/A")) {
          director = "-";
        }

        preparing[myindex] = new film(fulltitle, "https://www.netzkino.de/filme/" + slug, widescreen, runtimeInSeconds, productionYear, director, plusorwhat);

        myindex++;

      }

    }

  }

}

      prepared = preparing;

      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 == 6) {
        colcount = "16% 16% 16% 16% 16% 16";
        dvdx = dvdr;
      }  else if (columns == 5) {
        colcount = "19% 19% 19% 19% 19";
        dvdx = dvdr;
      } else if (columns == 4) {
        colcount = "25% 25% 25% 25";
        dvdx = dvdr;
      } else {
        colcount = "33% 33% 33";
      }

      var genres = 'Genres: ';
      var categories = 'Kategorien: ';
      var mdash = " &bull; ";
      var genresArr = new Array();
      var categoriesArr = new Array();

      for (var i = 0, l = $cn("r-m611by").length; i < l; ++i) {
        genresArr[i] = '<a href="' + $cn("r-m611by")[i].href + '">' + $cn("r-m611by")[i].getAttribute("aria-label").replace("kino","") + '</a> ';

      }
      for (var i = 0, l = $cn("r-157gdtw").length; i < l; ++i) {

          categoriesArr[i] = '<a href="' + $cn("r-157gdtw")[i].getElementsByTagName("a")[0].href + '">' + $cn("r-157gdtw")[i].getElementsByTagName("h1")[0].innerText.replace("kino","").replace("Neu bei Netz","Neuheiten") + '</a> ';

      }

      categoriesArr = categoriesArr.sort();
      genresArr = genresArr.sort();

      for (var i = 0, l = categoriesArr.length; i < l; ++i) {
        categories += categoriesArr[i];
        if (i != categoriesArr.length-1) {
          categories += mdash;
        }
      }

      for (var i = 0, l = genresArr.length; i < l; ++i) {
        genres += genresArr[i];
        if (i != genresArr.length-1) {
          genres += mdash;
        }
      }

      var newtitle = document.title;
      var myregex = new RegExp(" – .*", "gi");
      newtitle = newtitle.replace(myregex, "");
      myregex = new RegExp(" - .*", "gi");
      newtitle = newtitle.replace(myregex, "");
      newtitle = newtitle.replace("Netzkino","");
      newtitle = newtitle.replace("kino","");
      var dp = "";
      if (newtitle != "") {
        dp = ": ";
      }
      mediathek += '<html><head><title>' + scriptname + dp + newtitle + '</title><base href="https://www.netzkino.de/"><meta charset="utf-8">\n';

      mediathek += '<link rel="icon" type="image/svg+xml" href="'+ favicon +'" />';
      mediathek += '<style>body { margin: 10px; font-family: Arial; overflow-x: hidden; } img {width: 255px; text-decoration:none;border:none;} div {display: inline}\n';
      mediathek += 'rect.imdb, svg.imdb, img.imdb {width: auto; height: auto;} .wrapper { display: grid; grid-gap: 10px; grid-template-columns: ' + colcount + '%; background-color: #fff; color: #444; }\n';
      mediathek += '.sortlink {text-decoration: underline} .sortlink:hover {text-decoration: none} .box { background-color: #444; color: #fff; border-radius: 5px; padding: 10px; font-size: 100%; }\n';
      mediathek += '.bottom {margin-top: ' + marcss + 'px;margin-bottom: ' + padcss + 'px;}  .top {margin-top: ' + padcss + 'px;} .links {line-height: 1.35em}</style>\n</head><body>\n';
      mediathek += '<span class="links"><a href="https://www.netzkino.de/">' + nfsvg +'</a> <br /> ' + newtitle;
      if (newtitle != "") {
        mediathek += ": ";
      }
      mediathek += prepared.length + " Titel " + mdash;

      mediathek += '<a href="/search">Suchen?</a>' + mdash + 'Sortierung: Titel <a id="sortaz" class="sortlink">A-Z</a> / <a id="sortza" class="sortlink">Z-A</a> | Jahr <a id="sort09" class="sortlink">1940-2040</a> / <a id="sort90" class="sortlink">2040-1940</a> | L&auml;nge <a id="sortmin" class="sortlink">&lt;&lt;&lt; (kurz)</a> / <a id="sortnim" class="sortlink">(lang) &gt;&gt;&gt;</a>';

      mediathek += "<br />" + genres;
      if (categoriesArr.length > 1) {
        mediathek += "<br />" +  categories;
      }
      mediathek += "</span><br /><br /><br />"; 
      mediathek += '<div class="wrapper" id="nfct">';

      mediathek += writetable(prepared);
      mediathek += '</div></body></html>';

      $tn("html")[0].innerHTML = mediathek.replace(/undefined/g, "");

      $tn("body")[0].style.display = "block";
      $tn("body")[0].style.visibility = "visible";

      $("sortaz").onclick = function() {
        var newlysorted = prepared.sort((a, b) => a.fulltitle.localeCompare(b.fulltitle));
        $("nfct").innerHTML = writetable(newlysorted).replace(/undefined/g, "");
      }
      $("sortza").onclick = function() {
        var newlysorted = prepared.sort((a, b) => b.fulltitle.localeCompare(a.fulltitle));
        $("nfct").innerHTML = writetable(newlysorted).replace(/undefined/g, "");
      }
      $("sortmin").onclick = function() {
        var newlysorted = prepared.sort((a, b) => a.runtime - b.runtime);
        $("nfct").innerHTML = writetable(newlysorted).replace(/undefined/g, "");
      }
      $("sortnim").onclick = function() {
        var newlysorted = prepared.sort((a, b) => b.runtime - a.runtime);
        $("nfct").innerHTML = writetable(newlysorted).replace(/undefined/g, "");
      }
      $("sort09").onclick = function() {
        var newlysorted = prepared.sort((a, b) => a.relyear - b.relyear);
        $("nfct").innerHTML = writetable(newlysorted).replace(/undefined/g, "");
      }
      document.getElementById("sort90").onclick = function() {
        var newlysorted = prepared.sort((a, b) => b.relyear - a.relyear);
        $("nfct").innerHTML = writetable(newlysorted).replace(/undefined/g, "");
      }

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

    }

  },
  false);

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