Greasy Fork is available in English.

职培云刷课_仅限章节课程-视频

自动播放课程从选中的视频到结尾的所有视频,并提示所需播放总时长。Ps:打开的浏览器需要是在职培云页面,并且不最小化,然后可以自行使用其他软件,就算遮住也不影响。

// ==UserScript==
// @name         职培云刷课_仅限章节课程-视频
// @namespace    http://hello.world.net/
// @version      3.4
// @description  自动播放课程从选中的视频到结尾的所有视频,并提示所需播放总时长。Ps:打开的浏览器需要是在职培云页面,并且不最小化,然后可以自行使用其他软件,就算遮住也不影响。
// @author       TBC
// @match        *://px.class.com.cn/player/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    var current
    var nav
    var watchstatus = 1
    var watchmode = 1 //查看模式:0代表未看完的方式,1代表已看完重刷一次,默认1即可刷所有视频,0只能刷未看完的视频。
    setTimeout(function() {
        var allwatchtime = 0
        nav = document.getElementsByClassName("list")[0]
        for(var i = 0; i < nav.getElementsByTagName("div").length; i++) {
            //定位到当前任务
            if(nav.getElementsByTagName("div")[i].className.indexOf("active")!=-1) {
                current = i;
                allwatchtime = 1;
            }
            if(allwatchtime > 0){
                try {
                    allwatchtime += parseInt(nav.getElementsByTagName("div")[i].getElementsByClassName("time")[0].innerHTML.split(":")[0]) + 1;
                }
                catch(err) {
                    continue;
                }
            }
        }
        alert("视频总共需要"+allwatchtime+"分钟,请确认开始!");//因为有些浏览器不允许自动播放
        nav.getElementsByTagName("div")[1].click();
    }, 6000);
    function watchover(){
        watchstatus = 0;
        var watchtime = parseInt(nav.getElementsByTagName("div")[current].getElementsByClassName("time")[0].innerHTML.split(":")[0]) + 1;
        nav.getElementsByTagName("div")[current].innerHTML += " 播放"+watchtime+"分钟";
        setTimeout(function() {
            while (nav.getElementsByTagName("div")[current+1].className.indexOf("section")==-1){
                current += 1;
            }
            current += 1;
            nav.getElementsByTagName("div")[current].click();
            watchstatus = 1
            //nav.getElementsByTagName("div")[current].innerHTML += "2.时"+watchtime+",状"+watchstatus;
        }, watchtime*60*1000);
    }
    function watchnew(){
        var test = nav.getElementsByTagName("div")[current].getElementsByClassName("status-done")[0];
        //判断是否播放完成
        if(typeof(test) != "undefined") {
            //console.log("视频已播放完成"+test);
            while (nav.getElementsByTagName("div")[current+1].className.indexOf("section")==-1){
                current += 1;
            }
            current += 1;
            nav.getElementsByTagName("div")[current].click();
        }
    }
    setInterval(function() {
        if (watchmode == 1){
            if (watchstatus == 1){
                watchover();
            }
        }
        else{
            watchnew();
        }
    },8000)
})();