zjooc看视频脚本

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

代码存在问题

  1. 当一个视频有两个视频时,无法播放下
    请添加图片描述
  2. 当不是视频,而是文档的时候在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值