学堂在线自动刷课脚本
作者:互联网
学堂在线自动刷课脚本,跳过讨论版
2020.6.9:有网友留言说2倍播放不能用,我之前没太注意,然后自己试了一下的确有问题,近两天尝试看能不能修复吧,临近期末,事情也比较多了,望谅解,大家就先凑合着用吧
以下这一长篇文字只是自己无聊,顺带记录的,需要脚本直接往下滑就行
之前写了一个脚本,也是可以实现学堂在线的自动播放(上一个版本),但是遇到讨论不能跳过。其实在写完上一个脚本的时候我自己知道它遇到讨论就不能跳过了,但当时搞到凌晨两点多也没有实现跳过讨论的功能,然后想着我自己的课跳过讨论的也没多少,就懒得继续折腾了,毕竟当时写这个脚本的本意还是为了给自己用的。好东西要乐于分享嘛,就写了一篇博客发表出来了,本来没指望有多少人看的,认为大家都是好学生,怎么会像我一样有刷课偷懒的想法呢,哎,没想到最后发现想偷懒的人还挺多的嘛
过了一段时间,有人私信我能不能加一个跳过讨论的功能。说可以给我发个红包买棒棒糖吃的,哇,我是在乎那点红包的人吗,我只是喜欢写代码而已~~~~。不多说,又开始研究怎么跳过讨论功能了,最后花了点时间,换了一个思路,终于把功能实现了出来。
当时新版代码写完并没有马上分享出来,因为别人为了这个代码给我买了棒棒糖吃的,然后别人也提了一些要求,还有一些其它因素就没有写博客把新脚本分享出来,但是往后又有好多人还是问我能不能加跳过讨论的功能,想着代码已经写出来了,别人又有需求,就让他们私信发给他们(博客私信聊天界面发送文字字数有限,代码发不完全,就让他们加我微信以微信的方式发给了他们),最后发现有些人在博客上私信我,然后我让他加我微信发给他,然后就没后续了,估计他是怕我骗他棒棒糖吃,我才不是这样的人呢,只要你加我微信,代码我肯定是第一条消息发给你的,并且教你怎么用,至于棒棒糖这个东西,看你个人意愿嘛,毕竟有棒棒糖吃我肯定开心呀~~~。
现在临近学期末,有些人课程还是没有刷完,最后想了想还是把这个跳过讨论脚本也一并分享出来吧,帮助那些有这方面需求的人。毕竟私信我也确实挺麻烦的,有时也不能及时看到消息,最后还是想说不要一味的用脚本刷课,有时间的还是自己看,看完后多多少少是可以学到知识的。代码不是很难,有这方面专业知识的同学也可以研究研究,尝试着自己写,自己改。
使用方法
- 把代码粘贴到控制台,默认是从第一节开始播放的
- 然后你可以看到左边列表有:#编号#,然后#号中间的编号就是第几节
- 当你想从特定的一节开使播放,可以输入startNum(对应的编号)
- 注意startNum()中的N是大写的,小写会报错
- stop();停止播放
- start();继续播放
具体脚本
var index = 0;
var runIt;
var lists = document.getElementsByClassName("third");
addIndex();
startNum(0);
function startNum(num){
index = num;
var temp = lists[index].getElementsByTagName("li");
temp[0].click();
var title = temp[0].getElementsByTagName("span");
console.log("当前章节编号:"+index+",章节标题:"+title[0].innerText);
start();
}
function addIndex(){
for(var i = 0; i<lists.length;i++){
var temp = lists[i].getElementsByTagName("li");
var title = temp[0].getElementsByTagName("span")[0].innerText;
temp[0].getElementsByTagName("span")[0].innerText = "#"+i+"#"+title;
}
}
//开始视频播放
function start(){
sta = document.getElementsByClassName("play-btn-tip")[0];
console.log(sta);
console.log("播放----");
window.clearInterval(runIt);
runIt= setInterval(next,5000);
if(sta!=null){
if(sta.innerText == "播放"){
console.log("开始播放视频");
document.getElementsByClassName("play-btn-tip")[0].click();
}
}
}
//停止视频播放
function stop(){
start();
sta = document.getElementsByClassName("play-btn-tip")[0];
clearInterval(runIt);
console.log("暂停----");
if(sta!=null){
if(sta.innerText == "暂停"){
console.log("暂停视频");
document.getElementsByClassName("play-btn-tip")[0].click();
}
}
}
//跳转下一节视频
function next(){
// startNum(index);
var video = document.getElementsByClassName("xt_video_player")[0];
if(video == undefined){
startNum(++index);
console.log("作业或者讨论,5秒后跳转下一个视频,下一节编号:"+index);
}
else if(video.length != 0){
var staNow = document.getElementsByClassName("play-btn-tip")[0];
if(staNow.innerText == "播放"){
console.log("播放视频");
staNow .click();
}
var c= video.currentTime;
var d = video.duration;
//不想关闭声音可以把此行代码删掉
soundClose();
speed();
//视频播放进度超过95%跳转下一节视频
if((c/d)>0.95){
startNum(++index);
console.log("本节播放完毕跳转到下一节,下一节编号:"+index);
console.log("本节观看百分比"+c/d);
}
}else {
console.log("未知错误!");
}
}
//关闭视频声音
function soundClose(){
var sound = document.getElementsByClassName("xt_video_player_common_icon_muted");
if(sound.length == 0){
document.getElementsByClassName("xt_video_player_common_icon")[0].click();
console.log("视频声音关闭");
}
}
//播放速度2.0
function speed(){
var speed = document.getElementsByClassName("xt_video_player_common_list")[0];
var speedChild = speed.firstChild;
speedChild.click();
}
截图
n要大写,不然会报错
好像有的人是学堂在线学校版的,然后这个代码就不能用了会报错,当时有帮一个私信我的同学改过,但是具体改哪我现在也记得不大清楚,要是还是有学校版的同学有这需求,再私信我吧,到时候具体再帮看看。
这个脚本对应的网址是:学堂在线
标签:脚本,私信,在线,index,代码,学堂,var,刷课,跳过 来源: https://blog.csdn.net/weixin_42835515/article/details/106615701