电大中专-自动看课

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

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

'use strict';

const _$ = jQuery.noConflict(true);

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

    //老平台
    if (location.host === 'old-zzx.ouchn.edu.cn') {

        //选择进度最少的课程
        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(() => {
            if (/*课程界面*/location.href.indexOf("courseList") !== -1) {
                //点图片进入不需要二次确认
                filterMin().parent().parent().parent().find("img")[0].click()
            } else if (/*章节界面*/location.href.indexOf("courseInfo") !== -1) {
                //直接进入
                filterMin()[0].click();
            } else if (/*视频界面*/location.href.indexOf("sectionVideo") !== -1) {
                //如果当前视频已经看完则跳到没看完的视频,如果当前课程的视频已经全部看完则回到课程选择界面
                if (_$(".setionItem.active .jdb").eq(0).text() === "100%") {
                    let o = filterMin()
                    if (o.length === 1) {
                        o[0].click()
                    } else 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)

        let time

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

    }

    //新平台
    else if (location.host === 'zydz-menhu.ouchn.edu.cn') {

        let time = 0

        //模拟点击定时器
        setInterval(() => {
            if (/*课程界面*/location.href.indexOf("myCourse/index") !== -1) {
                //找到进度元素,取进度非100%的第一个元素
                _$("div.card_content > div:nth-child(3) > div:nth-child(1) > span:nth-child(2)")
                    .filter((i, o) => o.innerText !== "100%")
                    //跳过线下课程
                    .filter((i, o) => _$(o).parent().parent().parent().parent().find("div.card_see > span").text() === "去学习")
                    .first().parent().parent().parent().parent().find("img").click()
            } else if (/*章节界面*/location.href.indexOf("myCourse/study") !== -1) {
                //如果没有章节(正在加载)则跳过本轮
                if (_$("div.el-collapse>div").length === 0) return
                //找到进度元素,取未完成的第一个元素,否则返回课程选择界面
                let item = _$("div.content_vice > span").filter((i, o) => o.innerText !== "100%" && o.innerText !== "章节测试:合格").first()
                if (item.length !== 0) item.click()
                else _$("div.goBack").first().click()
            } else if (/*做题界面*/location.href.indexOf("myExamDetails/examQuestion") !== -1) {
                //保存了答案就填写,否则直接交卷跳转到答案界面
                let answers = JSON.parse(localStorage.getItem("answers"))
                if (answers) {
                    _$("div.everyQuest").each((i, o) => {
                        let title = _$(o).find("div.everyTopic > div")[0].innerText
                        _$(o).find("div.optionList > div > span").each((i2, o2) => {
                            if (answers[title] === o2.innerText) _$(o2).click()
                        })
                    })
                    //填写后删除答案,避免故障
                    localStorage.removeItem("answers")
                }
                //交卷
                _$("div.everyResultWrap > button").first().click()
                //二次确认交卷和查看试卷
                _$("button.el-button.el-button--primary.el-button--large.determine").first().click()
            } else if (/*答案界面*/location.href.indexOf("myExamDetails/testPaper") !== -1) {
                //保存答案后继续作答
                let answers = {}
                _$("div.everyQuest").each((i, o) => {
                    answers[
                        _$(o).find("div.everyTopic > div")[0].innerText
                        ] = _$(o).find("div.rightAndWrong > span:nth-child(2)")[0].innerText.replace("正确答案:", "")
                })
                //保存答案
                localStorage.setItem(
                    "answers",
                    JSON.stringify(answers)
                )
                //回到章节列表继续选择跳转
                _$("div.goBack").first().click()
            } else if (/*视频界面*/location.href.indexOf("myCourseDetails/vidoStudy") !== -1) {
                //获取视频元素
                let video = _$("video")[0];
                //静音播放
                video.muted = true
                //根本不能暂停哈哈哈
                if (video.paused) video.play();
                //如果当前视频已经看完(从头开始)则回到章节列表继续选择跳转
                if (time > video.currentTime) {
                    time = 0
                    _$("div.goBack").first().click()
                } else time = video.currentTime
            }
        }, 2000)

    }

})();