zjooc的看视频界面
匹配的位置
*://www.zjooc.cn/ucenter/student/course/study/*/plan/detail/*
Js代码
// ==UserScript==
// @name ZJOOC自动播放
// @namespace https://github.com/ColdThunder11/ZJOOCAutoPlay
// @version 0.2
// @description ZJOOC自动播放下一课,详细使用需求见附加信息或readme.md
// @author ColdThunder11,00LT00
// @match *://www.zjooc.cn/ucenter/student/course/study/*/plan/detail/*
// @grant none
// @supportURL https://github.com/ColdThunder11/ZJOOCAutoPlay/issues
// ==/UserScript==
(function() {
'use strict';
var startTime=10000;//第一次脚本开始时间(毫秒),在这个时间之前需要确保完成课程选择和课程加载,否则会报错
var playInterval=10000;//课程播放间隔时间(毫秒),在这个时间之前需要确保完成课程加载,否则会报错或者错误跳过
var speedIndex = 0; // 速度,0:4倍速,1:2倍速,2:1.5倍速,3:1.25倍速,4:正常,5:0.5倍速
var muteFlag = true; //是否静音
var nextVideoFunc=function(){
// var tablist=document.getElementsByClassName("el-tabs__nav is-top")[1].childElementCount;
// if(tablist>1){
// for (var i=2;i<=tablist;i++){
// document.getElementsByClassName("el-tabs__nav is-top")[1].children[i-1].click();
// window.setTimeout(() => {
// playVideoFunc();
// }, playInterval);
// var vid=document.getElementsByTagName("video")[0];
// var cb=vid.parentNode.childNodes[2];
// var playLayer=cb.childNodes[0];
// var processBar=cb.childNodes[7];
// var processText;
// processText=processBar.innerText;
// var pctime=processText.split('/');
// var ctime=pctime[0].trim();
// var etime=pctime[1].trim();
// while(ctime==etime){
// return;
// }
// }
// } 这个部分当一个视频有两部分的时候,可以选择第二部分,但是我懒得写了
var currentClass=document.getElementsByClassName("el-menu-item is-active")[1];
var nextClass=currentClass.nextSibling;
if(nextClass==null){
currentClass.parentNode.parentNode.nextSibling.childNodes[0].click();
nextClass=currentClass.parentNode.parentNode.nextSibling.childNodes[1].childNodes[1];
}
if(nextClass==null){
alert("所有课程已经学习完毕。");
}
nextClass.click();
playVideoFunc();
}
var playVideoFunc=function(){
var vidf=document.getElementsByTagName("video")[0];
var spd = vidf.parentElement.children[8];
var cbf=vidf.parentNode.childNodes[2];
var playLayerf=cbf.childNodes[0];
/*速度*/
spd.children[speedIndex].click();
/*音量*/
if(muteFlag){
cbf.children[18].click();
}
window.setTimeout(function(){
var vidf=document.getElementsByTagName("video")[0];
var spd = vidf.parentElement.children[8];
var cbf=vidf.parentNode.childNodes[2];
var playLayerf=cbf.childNodes[0];
/*速度*/
spd.children[speedIndex].click();
/*音量*/
if(muteFlag){
cbf.children[18].click();
}
playLayerf.click();
},playInterval);
};
var detectiveFunc=function(){
var vid=document.getElementsByTagName("video")[0];
var cb=vid.parentNode.childNodes[2];
var playLayer=cb.childNodes[0];
var processBar=cb.childNodes[7];
var processText;
processText=processBar.innerText;
var pctime=processText.split('/');
var ctime=pctime[0].trim();
var etime=pctime[1].trim();
if(ctime==etime){
nextVideoFunc();
return;
}
};
var ScritpFunc=function(){
playVideoFunc();
window.setInterval(detectiveFunc,playInterval);
}
window.setTimeout(ScritpFunc,startTime);
})();
代码存在问题
- 当一个视频有两个视频时,无法播放下
- 当不是视频,而是文档的时候