ZJOOC自动播放完全版

ZJOOC自动播放视频和完成文档点击

// ==UserScript==
// @name         ZJOOC自动播放完全版
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  ZJOOC自动播放视频和完成文档点击
// @author       阿鸡
// @match        *://www.zjooc.cn/ucenter/student/course/study/*/plan/detail/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var startTime=15000;//第一次脚本开始时间(毫秒),在这个时间之前需要确保完成课程选择和课程加载,否则会报错
    var playInterval=5000;//课程播放间隔时间(毫秒),在这个时间之前需要确保完成课程加载,否则会报错或者错误跳过
    var speedIndex = 0; // 速度,0:4倍速,1:2倍速,2:1.5倍速,3:1.25倍速,4:正常,5:0.5倍速
    var muteFlag = true; //是否静音
    var time1;
    var flag = true;//判断是图片还是视频-------视频/true    图片/false;

    var addr,getSumClass,getSumClassName;


    var nextVideoFunc=function(){


    	/*
    	 * 当右边的东西都执行完之后再去执行这行代码。
    	 * 所以需要做一个判断,当右边的nextSibling==null的时候再去执行这一行代码。
    	 * 所以来之前我们先判断以下哪个是带有 el-tabs__item is-top is-active的。
    	 * 然后通过nextSibling执行下一个代码
    	 */

    	var currentSum = document.getElementsByClassName("el-tabs__item is-top is-active")[1];

    	var nextSum = currentSum.nextSibling;

    	if(nextSum == null){
    		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();

	        addr = document.getElementsByClassName("el-tabs__item is-top is-active")[1];

    		getSumClass = addr.childNodes[0].childNodes[0];

    		getSumClassName = getSumClass.className;

    		if(getSumClassName.search("iconset") != -1){
    			flag = false;
                if(time1){clearInterval(time1);}
    		}else{
    			flag = true;
                time1 = window.setInterval(detectiveFunc,playInterval);
    		}

	        if(flag == true){
	        	window.setTimeout(playVideoFunc,7000);
	        }else{
	        	window.setTimeout(playImg,7000);
	        }

    }else{

    	//因为是div所以不可以click。那么我们就添加和删除类的方式来实现
    	currentSum.classList.remove("is-active");
    	nextSum.classList.add("is-active");

    	addr = document.getElementsByClassName("el-tabs__item is-top is-active")[1];

    	getSumClass = addr.childNodes[0].childNodes[0];

    	getSumClass.click()

    	getSumClassName = getSumClass.className;

    		if(getSumClassName.search("iconset") != -1){
    			flag = false;
                if(time1){clearInterval(time1);}
    		}else{
    			flag = true;
                time1 = window.setInterval(detectiveFunc,playInterval);
    		}


	        if(flag == true){
	        	window.setTimeout(playVideoFunc,7000);
	        }else{
	        	window.setTimeout(playImg,7000);
	        }
    	}


    }
    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 playImg = function(){
		var btn = document.getElementsByTagName("button")[2];
		btn.click();
		window.setTimeout(nextVideoFunc,7000);

	}

    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){
        	if(time1){clearTimeout(time1);}
                window.setTimeout(nextVideoFunc,7000);
        }
    };
    var ScritpFunc=function(){

    	addr = document.getElementsByClassName("el-tabs__item is-top is-active")[1];

    	getSumClass = addr.childNodes[0].childNodes[0].className;

    	//如果是图片的话,就去调用图片的完成方法
    	//否则就调用视频的完成方法
		if(getSumClass.search("iconset") != -1){
			flag = false;
			playImg();
		}else{
			flag = true;
			playVideoFunc();
        	time1 = window.setInterval(detectiveFunc,playInterval);
		}

    }
    //开始load之后,过startTime后执行图片或者是视频
    window.setTimeout(ScritpFunc,startTime);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址