// ==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)
})();