obeina 发表于 2019-4-18 15:52

知到智慧树和超星刷课JS脚本

本帖最后由 obeina 于 2019-4-18 15:55 编辑

在浏览器内->F12->找到控制台(console)->复制代码到输入框内->回车->关闭开发者工具->在页面找到被创造的图标->盘它

1.知到

//查找节点
var tips = document.getElementsByClassName("exploreTip");
//创建新节点
var option = document.createElement("div");
//添加样式
option.style="color:DarkOrange;text-align:center;line-height:90px;font-size:30px;background-image: url('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1555229569058&di=b96c64bb8d02130a76cab9525cdd1610&imgtype=0&src=http%3A%2F%2Fimg.lenovomm.com%2Fs3%2Fimg%2Ficon%2Fapp%2Fapp-img-lestore%2F2315-2015-07-07040431-1436256271865.png'); background-repeat: no-repeat; background-size: 100%; width: 90px; height: 90px; border-radius: 45px;position:fixed;left:60px;top:200px; z-index:999;"
//添加点击事件
option.setAttribute("onClick","StartOrStop()");
option.setAttribute("id","rains");
//插入节点到页面
tips.parentNode.insertBefore(option,tips);
//定时器
var timer;
//初始状态
var startstatus = 0;
//次数
var number = 0;

//函数
function start(){
    if(number % 200 == 0){
          console.clear();
    }
    number += 1;
    //获取进度条,以右边章节列表里的进度为准
    var pass = document.getElementsByClassName("progressbar");//passTime
    //获取答题框状态
    var dialog = document.getElementsByClassName("wrap_popboxeswrap_popchapter");
    var vbox=document.getElementsByClassName('volumeBox');
    //静音
    if(vbox.className=="volumeBox"){
         document.getElementsByClassName("volumeIcon").click();
    }
    //获取1.5倍速播放按钮
    var SpeedBox15=document.getElementsByClassName("speedTab15");
    var SpeedBox=document.getElementsByClassName("speedBox");
    //判断当前是否为1.5倍速,根据图片来判断
    if(SpeedBox.style.backgroundImage!='url("http://lc.zhihuishu.com/ableVideoPlayer/img/core/1.5-2.png")')
    {
         SpeedBox15.click();
    }
    //通过删除节点来关闭答题框
    if(dialog != undefined){
      var body=document.getElementsByTagName('body');
       var a=document.getElementById('popbox_overlay');
       body.removeChild(a);
       body.removeChild(dialog);
    }
    //判断播放进度是否大于84%
    if(parseInt(pass.style.width) > 84){
      //切换下一个视频
      document.getElementById("nextBtn").click();
    }
    var play= document.getElementsByClassName("bigPlayButton pointer");
    //已经暂停 点击开始按钮
    if(play.style.display == "block"){
            play.click();
    }
    console.log("执行第"+ number + "次");
}
function StartOrStop(){
    //获取播放状态
    var play= document.getElementsByClassName("bigPlayButton pointer");
    if (startstatus == 0){
      //开始脚本
      timer = setInterval(start, 3000);
      //已经暂停 点击开始按钮
      if(play.style.display == "block"){
            play.click();
      }
      startstatus = 1;
      var rains = document.getElementById("rains");
      rains.innerText = "已开";
      rains.style.color = "blue";
    }else if (startstatus == 1) {
//停止脚本
      clearInterval(timer);
      //已经播放 暂停播放
      if(play.style.display == "none"){
            play.click();
      }
      startstatus = 0;
      var rains = document.getElementById("rains");
      rains.innerText = "已关";
      rains.style.color = "red";
    }
}
2.超星

var fa = $("body");
var btn = $("<li></li>");
var json = {
    "background": "#31e16d",
    "height": "16px",
    "padding": "5px",
    "z-index": 99999,
    "cursor": "pointer",
    "top": "300px",
    "right": "120px",
    "position": "fixed"
};
btn.css(json);
btn.html("<span id='lfsenior'>开启自动播放模式</span>");
fa.append(btn);
btn.isPlay=false;
btn.isNewOpend=true;
var timer;

btn.click(function () {
      btn.isPlay=!btn.isPlay;
      if (btn.isPlay) { //定时器开启
                btn.isNewOpend=true;
                btn.css("background","#31e16d");
                $("#lfsenior").html("已开启!");
            timer=setInterval(start, 1000);
      }else{//定时器关闭
                clearInterval(timer);
                $("iframe").contents().find("iframe").contents().find("#video > div.vjs-control-bar > button").click();
                btn.css("background","red");
                $("#lfsenior").html("已关闭!");
      }
});

//播放函数
function play(video) {
      video.find("#video > button").click();
    var jy = video.find("#video > div.vjs-control-bar > div.vjs-volume-panel.vjs-control.vjs-volume-panel-vertical > button");
    if (jy.attr("title") != "取消静音") {
      jy.click()
    }
}

//下一章
function next_play() {
      //获取右边未完成的章节列表表现为orange橙色
    var lists=document.getElementsByClassName('roundpointStudentorange01 a002');
    //可能刷着刷着当前章节变绿了,先标记一下
    var flag=true;
    for(var i=0;i<lists.length-1;i++){//遍历,获取当前选中的元素,也有可能没有选中上面的列表
            var par=lists.parentNode;
            if (par.className=="currents") {
                  lists.parentNode.click();
                  flag=false;
                  break;
            }
    }
    if (flag==true) {
            lists.parentNode.click();
    }
}

function start() {

      //当前是否打开了视频页
      var dct=$(".currents");
      if (dct.title!="视频"&&btn.isNewOpend==true) {
            var tabtags=document.getElementsByClassName('tabtags').children;
            for(var i=0;i<tabtags.length;i++){
                if (tabtags.title=="视频") {
                  tabtags.click();
                  break;
                }
            }
      }

      //获取iframe
      var video = $("iframe").contents().find("iframe").contents();
      
      //如果正在加载
      var load = video.find("#loading");
      if (load.css("visibility") != "hidden") {
            return;
      }
      //获取当前进度
      var spans = video.find("#video > div.vjs-control-bar > div.vjs-progress-control.vjs-control > div").attr("aria-valuenow");
      var pesen = parseInt(spans);
      //获取任务点标记
      //其实就一张图片,通过图片的位置来判断是否完成,大概视频进度在84%左右就会判断任务完成
      //图片地址:https://mooc1-1.chaoxing.com/ananas/css/job-status.png
      //未完成:0% 0%; 完成:0px -24px;但是不能根据这个来进行判断是否下一章,网站会检测出异常,这里用于避免重复刷课.
      var targe=$("iframe").contents().find("#ext-gen1040");
      var positions=getComputedStyle(targe,null)['backgroundPosition'];
      
      //新打开的章节,视频任务已完成,自动下一章
      if (positions=="0px -24px"&&btn.isNewOpend==true) {
            btn.isNewOpend=true;
            next_play();
      
      //当前视频还没有完成
      }else if (pesen<95) {
                play(video);
                btn.isNewOpend=false;
      //当前进度达到92%,自动下一章,这里也可以改小一点只要不异常就可以
      }else if (pesen>=92) {
                btn.isNewOpend=true;
                next_play();
      }else{
                clearInterval(timer);
      }

      $("#lfsenior").html("自动模式已开启,本章进度:" + spans + "%");
}


如果能帮助你,请免费评分一波!

lking 发表于 2019-4-18 18:28

超星尔雅不可以自动下一个视频播放吗?刚刚试了下看完一个就不动了!!是我的操作有问题吗?望作者指点

yufei1 发表于 2020-9-2 17:39

.Net_破解 发表于 2019-4-18 16:07

老哥 你确定能用吗 。

hanshi 发表于 2019-4-18 16:24

感谢感谢

狮王 发表于 2019-4-18 17:04

感谢分享,虽然不知道能不能用

南枝的根 发表于 2019-4-18 17:14

谢谢老铁   拿走了

飞天蜗牛 发表于 2019-4-18 18:27

感谢楼主热心分享

flycloud19 发表于 2019-4-18 20:09

感谢楼主的分享!

i不存在的 发表于 2019-4-20 14:34

怎么关闭开发者工具

obeina 发表于 2019-4-20 17:42

i不存在的 发表于 2019-4-20 14:34
怎么关闭开发者工具

看红底黄字
页: [1] 2 3 4 5 6 7
查看完整版本: 知到智慧树和超星刷课JS脚本