JSFiddle - React, Tailwind, and code Playground

by fredd man

JavaScript

// ==UserScript==
// @name         JW-Player shortcuts delegate
// @namespace    https://video.aktualne.cz
// @version      1.1.1
// @description  Delegate keyboard events to a jw-player element if it is found
//               in the page so its keyboard shortcuts work without having to click on the player first to focus it.
//               Also fast-forwards ads.
// @author       bubblefoil
// @license      MIT
// @match        https://video.aktualne.cz/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';

    function getVideo(){
        return document.querySelector('video.jw-video');
    }

    var playbackRates = [0.25, 0.5, 1, 1.125, 1.25, 1.5, 2];
    const muteVolume = 0.05;

    function slowDown(){
        console.log("slowing down");
        var video = getVideo();
        if(video == null || !video.playbackRate){
            console.log("There is no jw-player");
            return;
        }
        var currentRate = video.playbackRate;
        var ri = playbackRates.findIndex(r => r >= currentRate);
        video.playbackRate = playbackRates[Math.max(0, ri - 1)];
        console.log("Playback rate =", video.playbackRate);
    }

    function speedUp(){
        console.log("Speeding up");
        var video = getVideo();
        if(video == null || !video.playbackRate){
            console.log("There is no jw-player");
            return;
        }
        var currentRate = Math.min(video.playbackRate, playbackRates[playbackRates.length - 1]);
        var ri = playbackRates.findIndex(r => r >= currentRate);
        video.playbackRate = playbackRates[Math.min(ri + 1, playbackRates.length - 1)];
        console.log("Playback rate =", video.playbackRate);
    }

    let originalVolume = 1;
    let muted = false;
    function mute(){
        if (!muted){
            originalVolume = getVideo().volume;
        }
        getVideo().volume = muteVolume;
        muted = true;
    }

    function unmute(){
...