hbpu 课程中心自动刷课

看说明看说明

// ==UserScript==
// @name         hbpu 课程中心自动刷课
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  看说明看说明
// @author       jiaxiaoyu B站: 假前端up主
// @match        http://course.hbpu.edu.cn/G2S/Learning/*
// @grant        GM_addStyle
// ==/UserScript==

(function () {
    'use strict';
    const jq = document.createElement("script");
    jq.src = "https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js";
    document.body.appendChild(jq);

    // 视频当前播放时间
    var currentTime;
    // 视频持续时间
    var durationTime;
    // var timer = setInterval(function () {
    //     init();
    // }, 1000);
    // tabwidget();
    var timer;


    function init() {
        currentTime = getNoteTime();
        durationTime = getTotalTime();
        // console.log(currentTime);
        // console.log(durationTime);
        if (currentTime == durationTime) {
            setTimeout(function () {
                window.location.reload();
                // tabwidget();
                // $("#panel button:last").click();
            }, 1000);

        }
    }
    //禁止搬运,复制以上任何一行代码
    /**
     * 面板
     */
    GM_addStyle("#panel{width: 150px;height: 150px;background-color: aquamarine;border: 1px solid transparent;position: absolute;top:20px;left:30px}");
    GM_addStyle("#panel button{display: block;margin: 12px auto;}");
    GM_addStyle("#panel .text{width: 100%;background-color: violet;text-align: center;}");
    panel();
    tabwidget();
    $("#panel button:last").click();

    // function init() {
    //     currentTime = getNoteTime();
    //     durationTime = getTotalTime();
    //     console.log(currentTime);
    //     console.log(durationTime);
    //     popup();
    //     if (currentTime == durationTime) {
    //         setTimeout(function () {
    //             window.location.reload();
    //             tabwidget();
    //             $("#panel button:last").click();
    //         }, 1000);

    //     }
    // }
    var pop;
//禁止copy idea
    function panel() {
        $('<div id="panel"><button>暂停刷课</button><button>开始刷课</button><p class="text">peach</p></div>').appendTo($("body"));
        const panelM = document.getElementById("panel");
        drag(panelM);
        $("#panel button:first").click(function () {
            clearInterval(timer);
            $("#panel .text").html("刷课暂停...");

        });
        $("#panel button:last").click(function () {
            clearInterval(timer);
            timer = setInterval(function () {
                init();
                // clearTimeout(t1);
                // clearTimeout(t2);
            }, 1000);

            pop = setInterval(function () {
                popup();
            }, 1000);
            tabwidget();

            $("#panel .text").html("正在刷课...");
        });
    }
    /**
     * 弹出框自动回答
     */
    //禁止搬运,复制以上任何一行代码

    function popup() {
        var ans = Questions[0].fVideoAnswer;
        if ($("textarea").not(".box_lcommpost").length) {
            clearInterval(pop);
            var t1, t2;
            // clearTimeout(t1);
            // clearTimeout(t2);
            console.log("1");
            console.log($("textarea").not(".box_lcommpost"));
            t1 = setTimeout(function () {
                if (ans) {
                    console.log("2");

                    $("textarea").not(".box_lcommpost").val(Questions[0].fVideoAnswer);
                    t2 = setTimeout(function () {
                        $("input[value='关闭']").filter(".btn_lsubmit").click();
                        console.log($("input[value='关闭']").filter(".btn_lsubmit"));
                    }, 1200);
                }

            }, 2000);

        }
    }
    /**
     * 拖拽
     */
    //禁止搬运,复制以上任何一行代码

    function drag(dv) {
        // let dv = document.getElementById('dv');
        let x = 0;
        let y = 0;
        let l = 0;
        let t = 0;
        let isDown = false;
        //鼠标按下事件
        dv.onmousedown = function (e) {
            //获取x坐标和y坐标
            x = e.clientX;
            y = e.clientY;

            //获取左部和顶部的偏移量
            l = dv.offsetLeft;
            t = dv.offsetTop;
            //开关打开
            isDown = true;
            //设置样式
            dv.style.cursor = 'move';
        }
        //鼠标移动
        window.onmousemove = function (e) {
            if (isDown == false) {
                return;
            }
            //获取x和y
            let nx = e.clientX;
            let ny = e.clientY;
            //计算移动后的左偏移量和顶部的偏移量
            let nl = nx - (x - l);
            let nt = ny - (y - t);

            dv.style.left = nl + 'px';
            dv.style.top = nt + 'px';
        }
        //鼠标抬起事件
        dv.onmouseup = function () {
            //开关关闭
            isDown = false;
            dv.style.cursor = 'default';
        }
    }
    /**
     * 获取当前播放时间
     */
    function getNoteTime() {
        let noteTime = parseInt(jwplayer("div_play").getPosition());
        return noteTime;
    }

    /**
     * 获取总时间
     */
    function getTotalTime() {
        let totalTime = parseInt(jwplayer("div_play").getDuration());
        return totalTime;
    }

    /**
     * 切换选项卡
     */
    function tabwidget() {
        let tabUl = document.getElementById("chapterList");
        let tablis = tabUl.getElementsByTagName("li");
        for (let j = 0; j < tablis.length; j++) {
            if (tablis[j].getAttribute("study") == 1) {
                if (tablis[j].getAttribute("videotime") != tablis[j].getAttribute("send")) {
                    tablis[j].click();
                    console.log("当前第"+j+"个");
                    break;
                }
            }

        }
        // tablis[i].click();
    }

    /**
     * 显示所有选项
     */
    showAlltabs();

    function showAlltabs() {
        if ($("#chapterList li").attr("videotime")) {
            $("#chapterList li").css("display", "list-item");
        }
    }
})();