Greasy Fork

Greasy Fork is available in English.

GYAO キーコントロール SCRIPT

Gyao Keycontrol Script

目前为 2022-01-22 提交的版本,查看 最新版本

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

(function() {
    let FarBackSend = 5 //ボタン一回あたりの早送り巻き戻し秒数
    let Vol = 0.05 //ボリュームの増減幅。最大は1.00です。
    let Speed = 0.25 //速度の増減幅。最大は2.00です
    /////////////////////////////////////////////////////////////////
    //ここから先はスクリプト情報です。触らないようにお願いします。//
    ///////////////////////////////////////////////////////////////
    let script = document.createElement("script");
        let scriptdata = [
            "function Loading_Storage(Video){",
            "var videodata = window.localStorage.getItem('gks20220122');",
            "videodata = videodata.split(',');",
            "Video.volume = Number(videodata[0]);",
            "Video.playbackRate = Number(videodata[1]);",
            "}",
            'window.addEventListener("keydown",function(event){',
            'let Video = document.getElementsByTagName("Video")[0];',
            'if(Video){',
            'let vControl = document.getElementsByClassName("vjs-control-bar").id',
            'let active = document.activeElement.id',
            'switch(event.keyCode){',
                'case 86:Video.focus();',
                'Loading_Storage(Video)',
                'break',
            '}',
            'if(Video.id == active){',
                'if (event.preventDefault) {',
                    'event.preventDefault();',
                '}',
                'console.log([event,Video]);',
                'keydata = event.keyCode - 36',
                'switch(keydata){',
                    'case 3:console.log("go time + 5s");break;',
                    'case 1:console.log("go time - 5s");break;',
                    'case 2:console.log("up volume + 5%");break;',
                    'case 4:console.log("down volume + 5%");break;',
                '}',
                'event.returnValue = false;',
                'VideoDataLoad(keydata,Video,event.shiftKey);',
            '}',
            '}})',
            'function VideoDataLoad(key,Video,Shift){',
            'if(!Shift){',
            '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;',
            '}}',
            'else{',
                'switch(key){',
                'case 3:Video.playbackRate += '+Speed+';break;',
                'case 1:Video.playbackRate -= '+Speed+';break;',
            '}',
            'var rate = Video.playbackRate;',
            'var vol = Video.volume;',
            'var naming = [vol,rate];',
            'naming = naming.join(',');',
            'window.localStorage.setItem("gks20220122",naming);',
            '}',
            '}'
        ]
        scriptdata = scriptdata.join("\n");
        script.innerHTML = scriptdata;
        console.log(scriptdata)
        document.body.appendChild(script);

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

        let 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;",
            "}"
        ]
        let style = document.createElement("style");
        styledata = styledata.join("\n")
        style.innerHTML = styledata;
        document.body.appendChild(style)
})();