Greasy Fork

Greasy Fork is available in English.

电大中专-自动看课

中央广播电视中等专业学校-电大中专,自动将所待学习课程全部看完!有时跳过了某些视频,不用担心,这是因为本脚本是优先完成进度最少的。感谢您的支持,作者QQ704191499,欢迎讨论、报错、合作!

目前为 2024-04-27 提交的版本。查看 最新版本

// ==UserScript==
// @name         电大中专-自动看课
// @namespace    oneMiku
// @email        [email protected]
// @version      1.2.0
// @license      MIT
// @description  中央广播电视中等专业学校-电大中专,自动将所待学习课程全部看完!有时跳过了某些视频,不用担心,这是因为本脚本是优先完成进度最少的。感谢您的支持,作者QQ704191499,欢迎讨论、报错、合作!
// @author       oneMiku
// @match        *://old-zzx.ouchn.edu.cn/*
// ==/UserScript==

'use strict';

/**
 * 启动~~~
 */
(function () {

    /**
     * 选择进度最少的课程
     * @returns {*|jQuery}
     */
    function filterMin() {
        let min = 100;
        //直接找到进度元素,取进度非100%且进度最少的第一个元素
        return $(".jdb").filter((i, o) => {
            let num = Number.parseInt(o.innerText)
            min = min > num ? num : min
            return num !== 100
        }).filter((i, o) => Number.parseInt(o.innerText) === min).first()
    }

    /**
     * 模拟点击定时器
     */
    setInterval(function () {
        if (/*课程界面*/window.location.href.indexOf("courseList") !== -1) {
            //点图片进入不需要二次确认
            filterMin().parent().parent().parent().find("img")[0].click()
        } else if (/*章节界面*/window.location.href.indexOf("courseInfo") !== -1) {
            //直接进入
            filterMin()[0].click();
        } else if (/*视频界面*/window.location.href.indexOf("sectionVideo") !== -1) {
            //如果当前视频已经看完则跳到没看完的视频,如果当前课程的视频已经全部看完则回到课程选择界面
            if ($(".setionItem.active .jdb").eq(0).text() === "100%") {
                let o = filterMin()
                if (o.length === 1) {
                    o[0].click()
                } else window.location = "https://old-zzx.ouchn.edu.cn/edu/public/student/#/courseList/1"
            }
            //刷新页面可以自动播放,根本停不下来!!
            let video = $("video")[0];
            //静音播放
            video.muted = true
            //根本不能暂停哈哈哈
            if (video.paused) video.play();
            //如果下一课按钮出现则模拟点击
            let btns = $(".nextbtn.btn");
            if (btns.length !== 0) btns[0].click()
        }
    }, 2000)

    /**
     * 防止卡停定时器
     */
    setInterval(function () {
        if (/*视频界面*/window.location.href.indexOf("sectionVideo") !== -1) {
            let video = $("video")[0];
            //播放状态下十秒不动则刷新页面
            if (!video.paused){
                if(time === video.currentTime) location.reload();
                else time = video.currentTime
            }
        }
    }, 10000)

})();