Greasy Fork

来自缓存

Greasy Fork is available in English.

刷题脚本

播完自动切换到下一个视频的小脚本..

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         刷题脚本
// @namespace    https://hunau.web2.superchutou.com
// @version      0.4
// @description  播完自动切换到下一个视频的小脚本..
// @author       sean<[email protected]>
// @match        *://*.superchutou.com/#/video/*
// @icon
// @require      https://code.jquery.com/jquery-2.1.4.min.js
// @grant        GM_download
// @grant        GM_openInTab
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_xmlhttpRequest
// @grant        GM_addStyle
// @grant        unsafeWindow
// @grant        GM_setClipboard
// @grant        GM_getResourceURL
// @grant        GM_getResourceText
// @grant        GM_info
// @grant        GM_registerMenuCommand
// @grant        GM_cookie
// @license      MIT
// ==/UserScript==
(function() {
  'use strict';
  // 播放进度大于83%播放下一个
  var max_progress = 68; // 正整数
  //定时器
  var timer,timer2,timer3;
  //初始状态为暂停
  // var startstatus = 0;
  //次数
  var number = 0;
  var urls = [];//所有视频链接
  var videoList;

  function videoStatus(){
      var playStatus = document.querySelector("#CuPlayer > .pv-paused");
      var videoObj = document.querySelector('video');
      if(videoObj){
        if (videoObj.paused){// 暂停状态
          let sean = document.querySelector("#sean");
          sean.innerText = "刷课脚本已关闭";
          sean.style.color = "yellow";
          //停止脚本
          if(timer != null){
            clearInterval(timer);
            timer = null;
          }
        } else {
            let sean = document.querySelector("#sean");
            sean.innerText = "刷课脚本已开启";
            sean.style.color = "white";
            //开始脚本
            if(timer == null){
              timer = setInterval(start, 1000);
            }
        }
      }

      // var playBtn  = document.querySelector(".pv-controls > .pv-controls-left > .pv-playpause"); // 播放按钮
      // if((playStatus && startstatus ==1) ||
      //     (!playStatus && startstatus == 0)){
      //   playBtn.click();
      //   alert("禁用视频播放按钮,请点击上方红色按钮播放~")
      // }
  }

  function start(){
      if(number % 200 == 0){
            console.clear();
      }
      //获取进度条
      var pass = document.querySelector(".pv-progress-bg > .pv-progress-current > .pv-progress-current-bg");
      //判断播放进度是否为设置的最大进度值
      if(pass){
        let curUrl = window.location.href;
        let point = urls.indexOf(curUrl);
        number += 1;

        console.log("当前课程是位于第几个:" + point)
        if(point < 0){
          alert('未正确获取到所有课程信息,请刷新浏览器!')
        }

        let progress = parseInt(pass.style.width);
        if(progress > 0){
            let seanProgress = document.querySelector("#sean_progress");
            seanProgress.innerText = "当前课程播放进度为"+progress + "%(进度达到"+max_progress+"%将跳转到下一个视频)";
        }
        if(max_progress < progress){
            //切换下一个视频
          if(point < urls.length-1){
            let size = point+1
            progress = 0;
            let seanProgress = document.querySelector("#sean_progress");
            seanProgress.innerText = ""
            clearInterval(timer);
            timer = null;
            videoList[size].click();
            setTimeout(function (){
              let sean = document.querySelector("#sean");
              sean.click();
            },3000);
          }
        }
      }
      // console.log("执行第"+ number + "次");
  }

  function getAllUrl(){
    videoList = document.querySelectorAll(".ant-list a");
    for (let i = 0; i < videoList.length; i++) {
      urls[i] = videoList[i].href;
    }
    console.log(urls); // 所有课程信息
    // timer3 = setInterval(getCurPoint, 1000);
  }

  window.addEventListener('load', function() {
      if(!window.localStorage){
        alert('当前浏览器不支持localStorage对象,请升级浏览器或更换成谷歌浏览器~');
      }
      // 添加按钮
      var divEle = document.querySelector("#root > div > div.ant-row > div.ant-col.ant-col-19");
      var cutPagrName = divEle.querySelector("span")
      cutPagrName.setAttribute("id","web_name");
      // 样式一
      // var option = document.createElement("div");
      // //添加样式
      // option.style="color:DarkOrange;text-align:center;line-height:90px;font-size:15px;background-repeat: no-repeat; background-size: 100%; width: 100px; height: 100px;border-radius: 50px; position:fixed;right:60px;top:200px; z-index:999;"+
      //     "background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAYAAADo08FDAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAOJ0TSURBVHja7P3JjmTJuuj3/a1dnTcRkZlVu/Y+Z59zKV5oQJEAByQ0kSBBA72AIL2ORnocPYFGGgjQlCBAiRJxL8+9u6vKzIhw99VYr4HF2XoGpb7fsJCVGe7hvszs60z97/9P/+eGEEIIIYQQQgghhBBCCCGEEEKI/5+n5S0QQgghhBBCCCGEEEIIIYQQQogfgySAhRBCCCGEEEIIIYQQQgghhBDiByEJYCGEEEIIIYQQQgghhBBCCCGE+EFIAlgIIYQQQgghhBBCCCGEEEIIIX4QkgAWQgghhBBCCCGEEEIIIYQQQogfhCSAhRBCCCGEEEIIIYQQQgghhBDiByEJYCGEEEIIIYQQQgghhBBCCCGE+EFIAlgIIYQQQgghhBBCCCGEEEIIIX4QkgAWQgghhBBCCCGEEEIIIYQQQogfhCSAhRBCCCGEEEIIIYQQQgghhBDiByEJYCGEEEIIIYQQQgghhBBCCCGE+EFIAlgIIYQQQgghhBBCCCGEEEIIIX4QkgAWQgghhBBCCCGEEEIIIYQQQogfhCSAhRBCCCGEEEIIIYQQQgghhBDiByEJYCGEEEIIIYQQQgghhBBCCCGE+EFIAlgIIYQQQgghhBBCCCGEEEIIIX4QkgAWQgghhBBCCCGEEEIIIYQQQogfhCSAhRBCCCGEEEIIIYQQQgghhBDiByEJYCGEEEIIIYQQQgghhBBCCCGE+EFIAlgIIYQQQgghhBBCCCGEEEIIIX4QkgAWQgghhBBCCCGEEEIIIYQQQogfhCSAhRBCCCGEEEIIIYQQQgghhBDiByEJYCGEEEIIIYQQQgghhBBCCCGE+EFIAlgIIYQQQg) "
      // //添加点击事件
      // // option.setAttribute("onClick","StartOrStop()");
      // option.setAttribute("id","sean");
      // option.innerText = "点击启动脚本";
      // 样式二
      var prog = document.createElement("span");
      prog.style = "margin-left:10px;color:yellow";
      prog.setAttribute("id","sean_progress");
      divEle.appendChild(prog)
      var option = document.createElement("button");
      option.style= "margin-left:20px;border-radius: 50px;padding: 10px 20px;background-color: #e74c3c;color: #fff;cursor: pointer;border: none;"
      option.setAttribute("id","sean");
      var playStatus = document.querySelector("#CuPlayer > .pv-paused");
      option.innerText = "刷课脚本";
      //插入节点到页面
      divEle.appendChild(option)
      var desc = document.createElement("span");
      desc.style = "margin-left:10px;color:red";
      desc.setAttribute("id","sean_desc");
      desc.innerText = "自动播放下一条视频会有缓冲时间,请勿操作页面,可能会导致脚本暂停~";
      divEle.appendChild(desc)
      option.onclick = function() {
          //获取播放状态
          var playBtn = document.querySelector(".pv-controls > .pv-controls-left > .pv-playpause"); // 播放按钮
          playBtn.click();
      }
      // option.click();
      setTimeout(function(){
        getAllUrl();
        timer2 = setInterval(videoStatus, 3000);
      },5000)
  }, true);
})();