現在可以24小時孤獨搖滾了
// ==UserScript==
// @name 動畫瘋自動播放
// @namespace https://itiscaleb.com
// @version 1.4
// @description 現在可以24小時孤獨搖滾了
// @authpr ItisCaleb
// @match https://ani.gamer.com.tw/animeVideo.php*
// @grant none
// @license MIT
// ==/UserScript==
var episodeList;
var currentEpisode;
var interval;
var time;
(function(){
'use strict'
let item = window.localStorage.getItem("play");
let playEnabled = item==="true";
styleInject();
buttonInject(playEnabled);
[episodeList,currentEpisode] = getEpisodes();
time = Date.now();
autoStart(playEnabled);
})()
function autoStart(enabled){
if(!enabled) return;
interval = setInterval(()=>{
let adultCheck = document.getElementById("adult");
if(adultCheck){
adultCheck.click();
clearInterval(interval);
skipAd(enabled);
nextEpisode(enabled);
}
},1000);
}
function skipAd(enabled){
if(!enabled) return;
let inter = setInterval(()=>{
let skipButton = document.getElementById('adSkipButton');
if(skipButton&&skipButton.classList.contains('enabled')){
clearInterval(inter);
skipButton.click();
}
});
}
function nextEpisode(enabled){
if (!enabled) return;
interval = setInterval(()=>{
let episodeEnd = document.getElementsByClassName('stop')[0];
if(!episodeEnd.classList.contains('vjs-hidden')){
let nexted = window.localStorage.getItem("nexted");
if(nexted==="true" && Date.now()-time<1000*60){
let replay = document.getElementsByClassName('replay')[0]
replay.children[0].click();
window.localStorage.setItem("nexted",false);
}else{
let episodeTotal = episodeList.length;
episodeList[currentEpisode%episodeTotal].children[0].click();
window.localStorage.setItem("nexted",true);
}
}
},1000);
}
function getEpisodes(){
let episodeList = document.getElementsByClassName('season')[0].children[0].children;
let current = 1;
for(let i=0;i<episodeList.length;i++){
if(episodeList[i].classList.contains('playing')) current=i+1;
}
return [episodeList,current];
}
function buttonInject(enabled){
let section = document.getElementsByClassName('videoname')[0];
let div = document.createElement('div');
div.style="margin: 10px;width:20%";
section.appendChild(div);
div.innerHTML=`
<label class="switch" style="float:left" >
<input id="autoplay" type="checkbox" ${enabled?"checked":""}>
<span class="slider"></span>
</label>
<span style="font-size:18px;float:right;margin-top:3.5px">自動播放</span>`;
let autoplay = document.getElementById("autoplay");
autoplay.addEventListener('click',()=>playButton(autoplay));
}
function playButton(box){
window.localStorage.setItem('play',box.checked);
if(!box.checked){
clearInterval(interval);
}else{
let adultCheck = document.getElementById("adult");
if(adultCheck) autoStart(box.checked);
else nextEpisode(box.checked);
}
}
function styleInject(){
let style = document.createElement('style');
style.textContent = `
.switch {
position: relative;
display: inline-block;
width: 50px;
height: 24px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 20px;
width: 20px;
left: 2px;
top: 2px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider {
background-color: #00b4d8;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
`;
document.head.appendChild(style);
}