[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写博客 ,多多见谅啦!

 

全部评论

相关推荐

10-31 14:54
已编辑
门头沟学院 算法工程师
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务