本帖最后由 lzngy 于 2020-12-7 17:51 编辑
小白一枚, 最近苦于被职培云折磨, 熬了一晚上研究, 做了个自动刷课的插件
功能:
自动获取未学完课程并播放, 播放后自动返回获取下一节
缺点:
要把网课的标签页放前台, 不然总会暂停, 不知道怎么实现恢复播放...
代码如下:
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);
|