起因

被安排给大领导刷课,需要50课时(不等于50小时),好吧,挂浏览器刷吧,但是这个在线平台比较恶心,会再刷课时蹦出随堂测验,导致视频暂停,而且不会自动播放下一个视频,所以自己写了个脚本。

使用方法

  1. 下载安装篡改猴(油猴)浏览器插件
  2. 安装后点击“获取新脚本”,把下面的代码粘进去保存。
// ==UserScript==
// @name         学习
// @namespace    https://gbwlxy.dtdjzx.gov.cn/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://gbwlxy.dtdjzx.gov.cn/content*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=dtdjzx.gov.cn
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    console.log("HELLO 8622678");
    let interval1;
    let interval2;
    let testShow = false;
    window.onload = (event) => {
        function closeTest() {//点击随堂测试的退出按钮
           const dialog = document.querySelector('.el-dialog__body');
           const exitBtn = dialog.querySelector('.exitBtn');
            if (exitBtn){
                exitBtn.click();
                testShow = true;
            }
        }
        function isEnd() {// 检查视频是否播放完,播放完则播放下一个
            const currentTime = document.querySelector('.vjs-current-time-display').innerText;
            const totalTime = document.querySelector('.vjs-duration-display').innerText;
            // console.log('当前播放:', currentTime, '全部:', totalTime)
            if (currentTime && totalTime) {
                return currentTime === totalTime;
            }
            return false;
        }
        function checkVideo() {// 检查视频是否暂停
            if (isEnd() || testShow) {
                return;
            }
            console.log('检查视频状态');
            if (document.querySelector('.vjs-paused')) {
                console.log('已经暂停')
               const videoBox =document.querySelector('.vjs-icon-placeholder');
                videoBox.click();
                console.log('点击播放键');
            }
        }
        function playNext() {// 检查视频是否播放完,播放完则播放下一个
            if(isEnd() || testShow) {
                console.log('播放完成')
                // 当前页面主视频已经播放,播放下一个视频
                const wrap = document.querySelector('div[class$="CourceList-wrap"]') ;
                const list = wrap.querySelector('.course-list-warp');
                console.log('课程列表:', list.children);
                for (let course of list.children) {
                    const state = course.querySelector('.state-paused').innerText;
                    const courseName = course.querySelector('.top-title').innerText;
                    const videoName = document.querySelector('.path').innerText;
                    if (state === '未学习' || state==='学习中') {
                        if (courseName === videoName) {
                            location.reload();
                            continue;
                        }
                        // 点击学习
                        console.log('点击学习下一个视频')
                        const playVideo = course.querySelector('.play');
                        playVideo.click();
                        break; // 找到列表第一个非“已学习”,非未通过考试的课程
                    }
                }
                let listOver = true; //检查底部课程列表中是否有未学课程
                for (let course of list.children) {
                    const state = course.querySelector('.state-paused').innerText;
                    if (state === '未学习' || state==='学习中') {
                        listOver = false;
                    }
                }
               if (listOver) {// 底部课程全部学完,点击右箭头
                    console.log('当前列表全部已学习');
                    const rightButton = wrap.querySelector('.right button');
                    if (rightButton.classList.contains('is-disabled')) {
                        // 已经刷完全部课程
                        console.log('已经刷完全部课程');
                        clearInterval(interval2);
                        return
                    } else {
                        // 点击出现新列表
                        rightButton.click();
                    }
                }
            }
        }
        interval1 = setInterval(checkVideo, 2000);
         interval2 = setInterval(playNext, 2000);
        setInterval(closeTest, 3000);
        console.log('页面已经完全加载');
    };

    // Your code here...
})();
  1. 如果正确安装的话,会显示一个红色的数字“1”
    安装成功
  2. 点击网上专题版,再点击里面的一个视频(最好从头开始)开始学习即可
最后修改:2023 年 08 月 25 日
如果觉得我的文章对你有用,请随意赞赏