Greasy Fork

Greasy Fork is available in English.

GYAO キーコントロール SCRIPT

Gyao Keycontrol Script

目前为 2020-10-31 提交的版本,查看 最新版本

// ==UserScript==
// @name         GYAO キーコントロール SCRIPT
// @namespace    https://twitter.com/TONoran0414
// @version      1.1
// @description  Gyao Keycontrol Script
// @author       You
// @match        https://gyao.yahoo.co.jp/*
// @grant        none
// ==/UserScript==

(function() {
    var FarBackSend = 5 //ボタン一回あたりの早送り巻き戻し秒数
    var Vol = 0.05 //ボリュームの増減幅。最大は1.00です。
    /////////////////////////////////////////////////////////////////
    //ここから先はスクリプト情報です。触らないようにお願いします。//
    ///////////////////////////////////////////////////////////////
    var script = document.createElement("script");
        var scriptdata = [
            'window.addEventListener("keydown",function(event){',
            'let Video = document.getElementsByTagName("Video")[0];',
            '//console.log(event);',
            'if(Video){',
            'let vControl = document.getElementsByClassName("vjs-control-bar").id',
            'let active = document.activeElement.id',
            'switch(event.keyCode){',
                'case 86:Video.focus();break;',
            '}',
            'if(Video.id == active){',
                'if (event.preventDefault) {',
                    'event.preventDefault();',
                '}',
                'switch(event.keyCode){case 39:console.log("go time + 5s");break;',
                    'case 37:console.log("go time - 5s");break;',
                    'case 38:console.log("up volume + 5%");break;',
                    'case 40:console.log("down volume + 5%");break;',
                '}',
                'keydata = event.keyCode - 36',
                'event.returnValue = false;',
                'VideoDataLoad(keydata,Video);',
            '}',
            '}})',
            'function VideoDataLoad(key,Video){',
            'switch(key){',
                'case 3:Video.currentTime += '+FarBackSend+';break;',
                'case 1:Video.currentTime -= '+FarBackSend+';break;',
                'case 2:Video.volume += '+Vol+';break;',
                'case 4:Video.volume -= '+Vol+';break;',
            '}}'
        ]
        scriptdata = scriptdata.join("\n");
        script.innerHTML = scriptdata;
        document.body.appendChild(script);

        //container-video-grid-item-sidebar
        var sideguide = document.getElementsByClassName("container-video-grid-item-sidebar")[0];
        sideguide = sideguide.getElementsByTagName("div")[0];
        var guide = document.createElement("div");
        guide.classList = "Gyao-Keycontrol-Script"
        var text = [
            "<p>\n「GYAO キーコントロール SCRIPT (Gyao Keycontrol Script)」が","作動しています。",
            "vキーを押すとビデオを選択。",
            "続けて矢印キーを押すとビデオをコントロール出来ます。",
            "",
            "矢印キー左右:5秒前後する",
            "矢印キー上下:音量を5%上下する\n</p>",
        ];
        text = text.join("<br>\n");
        guide.innerHTML = text;
        sideguide.appendChild(guide);

        var styledata = [
            ".Gyao-Keycontrol-Script{\n",
                "font-size: 12px;",
                "font-size: 1.2rem;",
                "padding: 10px;",
                "border-radius: 10px;",
                "border-top: 1px solid #e7e7e7;",
                "border-bottom: 1px solid #e7e7e7;",
                "background-color: #e50065;",
                "color: white;",
                "margin:20px;",
            "}"
        ]
        var style = document.createElement("style");
        styledata = styledata.join("\n")
        style.innerHTML = styledata;
        document.body.appendChild(style)
})();