职培云自动学习插件

发布于 2020-12-07 21:28:19

小白一枚, 最近苦于被职培云折磨, 熬了一晚上研究, 做了个自动刷课的插件
功能:
自动获取未学完课程并播放, 播放后自动返回获取下一节
缺点:
要把网课的标签页放前台, 不然总会暂停, 不知道怎么实现恢复播放...
代码如下:
manifest.json:
[JavaScript]
{

"name": "auto_study",
"version": "1.0",
"description": "aotu_study",
"browser_action": {
    "default_popup": "auto_study.html"
},
"content_scripts": [{
    "js": ["auto_study.js"],
    "matches": ["https://px.class.com.cn/player/study/*", "https://px.class.com.cn/study/myclass/*"],
    "run_at": "document_end"
}],
"permissions": [
    "tabs", 
    "http://*/*", 
    "https://*/*"
  ],
"manifest_version": 2

}

auto_study.js:
[JavaScript]
setInterval(function() {

// 模拟鼠标点击
var to_click = new MouseEvent("click");
var video_list = null;
var video_list = document.getElementsByClassName("class-item unfinished");
if (video_list[0] != null) {
    var study_btn = video_list[0].getElementsByClassName("btn btn-outline-primary toStudy aBtn24");
    study_btn[0].dispatchEvent(to_click);
}
else {
    // 点击我已学完
    var get_btn = document.getElementById("btn_submit");
    get_btn.dispatchEvent(to_click);
    // 延时2秒执行; 如果未学完, 关闭剩余时间弹窗
    setTimeout(function(){
        var block_btn = document.getElementById("vue_dialog_sub_my").style;
        var play_btn = document.getElementById("d_sub_confirm_my");
        if (block_btn['display'] == "block") {
            play_btn.dispatchEvent(to_click);
        }
    }, 2000)
    // 获取已学习时长和课程总时长
    var now = document.getElementById("learnedStr").innerText;
    var finish = document.getElementById("durationStr").innerText;
    // 返回课程主页
    var back_btn = document.getElementsByTagName("a");
    // 如果已学习=总时长, 点击返回课程主页
    if (now == finish) {
        back_btn[0].dispatchEvent(to_click);
    };
}
 

}, 30000);

2 条评论

发布
问题