用JS写一个可以自动挂学习通视频课的插件+自动答题


近期选课太多了,一个个看太麻烦,如果你还在因为要老老实实一分一秒的看视频,那么你可以花几分钟看一下这篇文章教程,也许这短短几分钟可以改变很多。

欢迎 点赞,关注,评论 以及各种交流~


写在前面:


此软件仅供学习使用,请勿商用! 转载请注明出处!


软件功能:

自动播放

自动下一集

自动1.25倍速率

自动答题就是走一个形式,并不会用来算分数,本脚本多选题可能会选错,请悉知。


注意事项:  

    1.  刷新网页、人工跳转课程等操作都会使代码停止,需要重新输入。

    2. 建议一次刷一个章节,单次刷课时间不要超过四个小时,否则可能会被后台锁定!  

    3. 章节之间可能出现无法跳转,是学习通防止刷课机制。


软件链接:

https://wws.lanzous.com/b01hkgoze  不卖关子了,软件链接已经附上,请按需下载。

脚本有bug请私信博主解决。欢迎大家共同建设脚本。


软件实现截图:

 


如果有研究的习惯,附上源代码参考:

// ==UserScript==
// @name         超星学习通刷课
// @namespace    rainerosion
// @version      1.3.2
// @description  超星学习通刷课脚本 自动静音 自动1.25倍播放 自动答题(超星学习通视频弹出的题目随便选择没事)
// @author       rainerosion
// @match      *://studyh5.zhihuishu.com/videoStudy.html*
// @require      https://base1.zhihuishu.com/able-commons/resources/uploader/client/js/jquery/jquery-1.7.2.min.js
// @grant        unsafeWindow
// @license      GPL3.0
// @supportURL   https://github.com/rainerosion/zhihuishu
// ==/UserScript==
 
(function($) {
    //监听点击事件
    $("html").on("click","#rains", function () {
        StartOrStop();
    });
 
    $.noConflict(true);
    //定时器
    var timer;
    //++++++++ 以下为可设置的参数 ++++++++++
    //初始状态 0 开启 1关闭
    var startstatus = 0;
    //次数
    var number = 0;
    //视频播放到91%时候切换下一个
    var percent = 91;
    //速率
    var speed = "1.25";
    //静音
    var vol = true;
    //答题?不答题将会移除答题框
    var answer = true;
    //++++++++ 可设置的参数结束 ++++++++++
    //查找节点
    var tips = $("body");
    console.log(tips[0])
    //创建新节点
    var option = $("<div>");
    //添加样式
    var args = {
        "color":"DarkOrange",
        "text-align":"center",
        "line-height":"90px",
        "font-size":"30px",
        "background-image": "url(data:image/jpg;base64,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)",
        "background-repeat": "no-repeat",
        "background-size": "100%",
        "width": "90px",
        "height": "90px",
        "border-radius": "45px",
        "position":"fixed",
        "left":"60px",
        "top":"200px",
        "z-index":"999"
    };
    option.css(args);
    option.attr("id","rains");
    option.text("Rains");
    //插入节点到页面
    tips[0].parentNode.insertBefore(option[0],tips[0]);
    //函数
    function start(){
        if(number % 20 == 0){
            console.clear();
        }
        number += 1;
 
        //获取视频速率
        var speedSpan = $(".speedBox>span").text().replace("X ","");
        if(speedSpan != speed){
            switch(speed){
                case "1.0":
                    $("div[rate='1.0']").click();
                    break;
                case "1.25":
                    $("div[rate='1.25']").click();
                    break;
                case "1.5":
                    $("div[rate='1.5']").click();
                    break;
            }
        }
        //判断音量
        var volume = parseInt($(".volumeBox .passVolume")[0].style.height);
        if(volume > 0 && vol == true){
            $(".volumeIcon").click();
        }
        //获取进度条
        var pass = $(".passTime");
        //获取答题框状态
        var dialog = $(".el-dialog__wrapper.dialog-test")[0];
        if(dialog != undefined){
            if(answer == false){
                //移除答题框
                $(".v-modal").remove();
                $(".el-dialog__wrapper.dialog-test")[0].remove();
                $("body").removeClass("el-popup-parent--hidden");
            }else{
                //如果是单选题或者判断题选择一个答案否则移除答题框
                if($(".title-tit").text() == "【单选题】" || $(".title-tit").text() == "【判断题】"|| $(".title-tit").text() == "【多选题】"){
                    //选择选项的第一个用于获取正确答案
                    let list = $(".topic-list .topic-option-item");
                    list[0].click();
                    //取消已经选择的
                    list.each(function(){
                        if($(this).hasClass("active")){
                            $(this).click();
                        }
                    })
                    //选择答案
                    let answer = $(".answer span").text().split(",");
                    for(let i in answer){
                        let option = answer[i].charCodeAt() - 65;
                        $(".topic-list .topic-option-item")[option].click();
                    }
                    //延时关闭弹窗
                    setTimeout("$(\".el-dialog__wrapper.dialog-test .el-dialog__footer .dialog-footer .btn\")[0].click();",1000);
                }else{
                    //如果不是这3个选项移除答题框以后弹框将不会出现
                    $(".v-modal").remove();
                    $(".el-dialog__wrapper.dialog-test")[0].remove();
                    $("body").removeClass("el-popup-parent--hidden");
                }
            }
            let play  = $(".bigPlayButton.pointer")[0];
            //如果暂停继续播放
            if(play.style.display == "block"){
                play.click();
            }
        }else{
            let play  = $(".bigPlayButton.pointer")[0];
            //如果暂停继续播放
            if(play.style.display == "block"){
                play.click();
            }
        }
        //判断播放进度是否大于83%
        if(parseInt(pass[0].style.width) > percent){
            //切换下一个视频
            $("#nextBtn").click();
        }
        console.log("执行第"+ number + "次");
    }
    function StartOrStop(){
        var rains = $("#rains");
        //获取播放状态
        var play  = $(".bigPlayButton.pointer")[0];
        if (startstatus == 0){
            //开始脚本
            timer = setInterval(start, 3000);
            //已经暂停 点击开始按钮 block时视频播放暂停
            startstatus = 1;
            rains.text("已开");
            rains.css("color","blue");
            console.log("刷课开始执行");
            if(play.style.display == "block"){
                play.click();
            }
        }else if (startstatus == 1) {
            //停止脚本
            clearInterval(timer);
            //已经播放 暂停播放
            startstatus = 0;
            rains.text("已关");
            rains.css("color","red");
            console.log("刷课已停止");
            if(play.style.display == "none"){
                play.click();
            }
        }
    }
    //执行监听方法 默认填入代码后开启脚本
    StartOrStop();
 
 
})(jQuery);

如有遇到BUG可留言反馈,看到会及时回复,欢迎互相学习!


更新记录:

2020-7-12有网友留言说2倍播放不能用,我之前没太注意,然后自己试了一下的确有问题,近些天尝试看能不能修复。
2020-7-29新超星测试脚本,适配多视频的课程。解决了以前一个章节下多个视频无法播放的问题。
2020-8-6不知道为什么之前用jquery语法写的用了一段时间会报错,索性直接改成了用原生javascript语法
2020-8-12删除多次反馈 已经不能用的原第一段代码,以及更新旧版等功能

 

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页