Kartom

StreamCloud Enhancer 0.2

Dec 27th, 2017
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        StreamCloud Enhancer
  3. // @namespace   http://greasyfork.org/scripts/16496
  4. // @description Prepares video for playback and enables download.
  5. // @include     *streamcloud.eu/*
  6. // @copyright   2015, schwarztee / 2018, Djamana
  7. // @license     MIT
  8. // @version     0.2
  9. // @icon        http://i.imgur.com/MTTvgbC.png
  10. // @grant   GM_getValue
  11. // @grant   GM_setValue
  12. // ==/UserScript==
  13.  
  14. // jQuery ist auf streamcloud.eu verfügbar und kann genutzt werden
  15. //
  16. // include #1
  17.     // Tiny jQuery Plugin https://css-tricks.com/snippets/jquery/check-if-element-exists/
  18.     // by Chris Goodchild
  19.     $.fn.exists = function(callback) {
  20.       var args = [].slice.call(arguments, 1);
  21.  
  22.       if (this.length) {
  23.         callback.call(this, args);
  24.       }
  25.  
  26.       return this;
  27.     };
  28.  
  29.  
  30.     //
  31.     // =======================================================
  32.     // Allgemeine Kosmetik: Mehr Platz für's Video
  33.     (function Slim_Header() {
  34.         try {
  35.             $('#header')        .height(70);
  36.             $('#header ul')     .css( "margin-top","10px");
  37.             $('.logo')          .css( "margin-top","0px");
  38.  
  39.             $('.alert-message,.msgboxinfo') .remove();
  40.  
  41.         } catch(e) {
  42.         }
  43.     })();
  44.  
  45.  
  46.     //
  47.     // =======================================================
  48.     // Warteseite?
  49.     //
  50.     $( '#btn_download' ).exists( function () {
  51.        
  52.         (function submitForm() {
  53.             // Event-Handler entfernen, der Absenden des Formulars verhindert
  54.             $(document).off( 'submit', 'form.proform' );
  55.            
  56.             // go to download page (download2) -
  57.             //( note: download1 will just trigger a reload if server countdown is not finished
  58.             //        but download2 doesn't have that checking )
  59.             $( '[name=op]' ).val("download2");
  60.            
  61.             // store original FileName for later
  62.             GM_setValue("SC_fname", $('[name=fname]').val() );
  63.        
  64.             // Formular absenden
  65.             $( 'form.proform' ).submit();
  66.         })();
  67.  
  68.         // 11 Sekunden warten (unvermeidbar, wird serverseitig kontrolliert)
  69.         // ABER nur für op=download1 bei op=download2 können wir uns ohne Warten durchmogeln
  70.         // Zudem ist eine on hide eventprozedure an den countdownButton anhängen die ausgrufen wird wenn den verschwindet direkter
  71.         // als ein Timeer bzw das via MutationObserver tiggern( https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)
  72.         // setTimeout( submitForm, 11000 );
  73.     });
  74.    
  75.     //
  76.     // =======================================================
  77.     // Videoseite?
  78. //setTimeout( _ => {
  79.     debugger;
  80.     if ( unsafeWindow.jwplayer )
  81.     {
  82.        
  83.         // Referenz auf Player zurechtlegen
  84.         var player  = jwplayer( 'mediaplayer' );
  85.        
  86.         // 'richtigen' Dateiname holen
  87.         var fname   = GM_getValue("SC_fname","Somevideo.mp4");
  88.        
  89.         // Dateiname links über dem Fenster anzeigen
  90.         $( '.header h1' )
  91.             .text(fname);
  92.  
  93.         // Dateiname in die DownloadUrl einbauen
  94.         var videoURL = player.config.file;
  95.         videoURL = videoURL.replace("video.mp4", fname);
  96.        
  97.         // Link des Download-Button korrigieren
  98.         $( '.header ul li:last-child a' )
  99.             .attr( {
  100.                 href: videoURL,
  101.                 title: "Direktlink zum Video"
  102.             });
  103.  
  104.         // Pausenfunktion an 'fnPause' binden
  105.         fnPause =  player.pause;
  106.  
  107.       // Wiedergabe anhalten, sobald bereit zum Abspielen
  108.         player.onPlay( _ =>
  109.         {
  110.             // pausieren
  111.             fnPause();
  112.  
  113.             // Pausenfunktion entfernen
  114.             fnPause = undefined;
  115.  
  116.         });
  117.  
  118.         // Laden des Videos starten
  119.         player.play();
  120.     }
  121. //},1000);
  122.  
  123.  
  124.  
  125. /*
  126. // Funzt nicht wirklich gut - Besser 'ne Adblocker verwenden
  127. // Problem: Klicken innerhalb des fortschrittsbalkens der Players geht nicht
  128. // Workaround: Klicken und gleichzeitig die Maus bewegen sodass ein 'drag' event draus wird
  129. function RemoveAds () {
  130.     setTimeout( function() {
  131.         try {
  132.             debugger;
  133.             // Popunder mousedown EventListener überlagern
  134.             //document.removeEventListener("mousedown",T4,true);
  135.             //^ Löschen leider nicht möglich ohne Verbindung zu T4
  136.             window.addEventListener("mousedown", event => {
  137.                 if (event.target.tagName != "SPAN")
  138.                     event.stopPropagation();
  139.                     // ^- Problem: das verhindert auch das Klicken innerhalb des Fortschrittsbalkens der Players
  140.             }, false);
  141.             // Kill smartOverlay
  142.             $('[style*=z-index][style*=2000]')[0].remove();
  143.             // die TimerID 'erraten' und killen
  144.             for( i=0 ; i < 200; i++) {
  145.                 clearTimeout(i);
  146.             };
  147.         } catch (e){
  148.         }
  149.     },4000 );
  150. }
  151.  
  152. */
Add Comment
Please, Sign In to add comment