[2020.3]最新版智慧树自动刷课代码 自动勾选弹窗 自动静音 自动下一节 1.5倍速
今天想起来这学期还有两门网课要看 发现以往存的代码都不能用了  ̄□ ̄||
索性自己晚上没事 简单写了一个 没怎么测试 只试了几节 还可以O(∩_∩)O~
仅供大家学习使用,不可用于任何商业用途!
更新说明
3.2 第一版
3.3 更新两处已知bug
1.章节之间跳转出现无法加载视频问题
2.声音按钮意外点击
1.完整JavaScript代码如下:
代码包含最基本的功能啦:检测章节 自动静音 自动下一节 1.5倍速
在处理弹窗部分,可以自动随机的在所给选项中选择一个作为答案,也算小小的防作弊机制吧[网上大部分的代码基本上都是默 认选择第一项],O(∩_∩)O哈哈~
[3.3更新后]
var chapters_length = document.querySelectorAll("ul.list").length;
var video_length = document.querySelectorAll("li.video").length;
console.log("共检测到" + chapters_length + "章" + video_length + "小节!");
document.getElementsByClassName("volumeIcon")[0].click(); //设置静音
console.log("静音设置成功!");
document.getElementsByClassName("speedTab speedTab15")[0].click(); //设置1.5倍速
console.log("1.5倍播放");
//每两秒检测进度是否100%
setInterval(() => {
var progress = window.getComputedStyle(document.getElementsByClassName("passTime")[0], null).width; //进度数据
if (progress == "100%") {
//下一节
document.getElementById("nextBtn").click();
console.log("自动播放下一节");
setTimeout(() => {
//检测00:00:00状态 处理章节间跳动
if (document.querySelector("span.duration").innerHTML == "00:00:00") {
var finished_length = document.querySelectorAll("b.time_icofinish").length;
document.querySelectorAll("li.video")[finished_length].click();
console.log("进入下一章节!");
}
}, 2000);
}
}, 2000);
//每秒检测弹窗
setInterval(() => {
//防静音意外失效
if(!document.getElementsByClassName("volumeBox volumeNone")[0])
{
document.getElementsByClassName("volumeIcon")[0].click();
document.getElementsByClassName("speedTab speedTab15")[0].click(); //设置1.5倍速
}
if (document.getElementsByClassName("dialog-test")[0]) {
console.log("检测到弹窗!");
var random_number = randomNum(0, document.querySelectorAll("li.topic-item").length - 1);
document.getElementsByClassName("topic-item")[random_number].click(); //随机选一个防作弊
console.log("已选择第" + (random_number + 1) + "个选项");
document.getElementsByClassName("el-dialog__wrapper dialog-test")[0].getElementsByClassName(
"el-dialog__footer")[0].getElementsByClassName("btn")[0].click(); //关闭弹窗
console.log("弹窗关闭!");
document.getElementById("playButton").click(); //播放
}
}, 1000);
function randomNum(minNum, maxNum) {
switch (arguments.length) {
case 1:
return parseInt(Math.random() * minNum + 1, 10);
break;
case 2:
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
break;
default:
return 0;
break;
}
}
2.使用步骤:(应该都会用叭^_^)
- ①打开智慧树播放视频界面=》F12=》Console=》粘贴代码 =》回车
- ②当出现类似上图数据后,证明脚本有效且运行成功
- ③开始奔放(#^.^#)
3.说明
由于只是想起来写这个东西,只用了睡前的一点时间写了一会,代码写得略微繁琐,没有实现复杂的功能,但是基本的需求应该都 有啦
智慧树网站会时常进行更新,不保证这段代码的时效性,大家可以试试。如果不能用了,等我有时间了再更新叭
第一次在CSDN写博客 ,多多见谅啦!