在動畫瘋開啟時,自動選擇播放速度
// ==UserScript==
// @license MIT
// @name 巴哈姆特動畫瘋 - 自動設定播放速度
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 在動畫瘋開啟時,自動選擇播放速度
// @author musingfox
// @match https://ani.gamer.com.tw/animeVideo.php?sn=*
// @grant GM_registerMenuCommand
// @grant GM.setValue
// @grant GM.getValue
// @run-at document-end
// ==/UserScript==
(async function() {
let speed = await GM.getValue("speed");
if (speed == undefined) {
speed = 4;
GM.setValue('speed', speed);
}
let speedOptions = [
'2x',
'1.75x',
'1.5x',
'1.25x',
'1x', // default
'0.75x',
'0.5x'
];
for (let i = 0; i < speedOptions.length; i++) {
let text = speedOptions[i];
let index = i;
GM_registerMenuCommand(text, () => triggerSpeed(index));
}
function triggerSpeed(s) {
speed = s;
GM.setValue('speed', speed);
autoPlayBackSpeed();
}
window.addEventListener('load', init());
function init() {
setTimeout(() => autoPlayBackSpeed(), 5000);
}
function autoPlayBackSpeed() {
let retry = 5;
while (retry != 0) {
retry--;
let list = document.querySelector("#ani_video > div.vjs-control-bar > div.control-bar-rightbtn > div.vjs-playback-rate.vjs-menu-button.vjs-menu-button-popup.vjs-control.vjs-button.menu-button-opacity-animetion > div.vjs-menu > ul")
if (list) {
let speedOptions = list.querySelectorAll('li');
if (speedOptions.length >= speed) {
let clickEvent = document.createEvent('MouseEvent');
clickEvent.initEvent('click', true, true);
speedOptions[speed].dispatchEvent(clickEvent);
break;
}
}
setTimeout(() => {console.log('retry...')}, 1000);
}
}
})();