软媒设计
[Tampermonkey]校本网课课时自刷脚本

校本网课限制还是比较少的,只要在播放页面停留足够多的事件即可;利用Tampermonkey在播放页面插入JS控制vedio的src,播放一个超长视频即可快速完成网课课时累计。

// ==UserScript==
// @name         校本刷课
// @namespace    https://rmbz.net/
// @version      0.1
// @description  校本刷课课时
// @author       xun404
// @match        https://xxx.com/course/view/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var showModal = false;
    var questionModal = false;

    // 监听弹出层(随机弹出会暂停视频 本意是方式挂机刷课)
    $('#comfirmModal').on('show.bs.modal', function (e) {
        showModal = true;
    })

    // 同上,但是是个答题的弹出层
    $('#questionModal').on('show.bs.modal', function (e) {
        questionModal = true;
    })

    // Promise实现的sleep方法
    function sleep (time) {
        return new Promise((resolve) => setTimeout(resolve, time));
    }

    function autoPlay() {
        // 每5秒执行一次
        sleep(5000).then(() => {
            // 原站用的ckplayer,h5中对应video标签
            var video = document.getElementsByTagName("video")[0];

            // 判断是否为这个播放地址
            var videoUrl = video.src;
            if(videoUrl.length != 25) {
                video.src = 'https://cdn.neu.ren/2.mp4';
                console.log('set player src!');
            }
            //自动播放
            video.play();

            console.log('auto play!');

            autoPlay();

            // 处理弹出层,直接click .yes
            if(showModal) {
                showModal = false;
                $('.yes').click();
                console.log('click yes!');
            }

            // 处理弹出层,直接click #p-A
            if(questionModal) {
                questionModal = false;
                $('#p-A').click();
                console.log('question click yes!');
            }

        })
    }

    autoPlay();

})();