Greasy Fork

Greasy Fork is available in English.

niunep网课 定时切换课程 不暂停

https://www.niunep.com/的网课定时切换课程 不暂停

当前为 2023-02-09 提交的版本,查看 最新版本

// ==UserScript==
// @name         niunep网课 定时切换课程 不暂停
// @namespace    http://greasyfork.icu/
// @version      0.3.4
// @description  https://www.niunep.com/的网课定时切换课程 不暂停
// @author       test
// @match        *.niunep.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

//判断网页中视频是否学习完成
(function () {
  'use strict';
  if (window.location.href.includes('study/course/')) {
    console.log('课程学习页面');
    var timer_wk = setInterval(function () {
      if (document.querySelector("#content > div:nth-child(1) > div.content.drizzle-content > div > div.top.new-course-top > div > div > div.player-content.relative.new-play-content > div.anew-study-wrapper > div > div > div > div.anew-top > div.inline-block > div.anew-text") != null) {
        if (document.querySelector("#content > div:nth-child(1) > div.content.drizzle-content > div > div.top.new-course-top > div > div > div.player-content.relative.new-play-content > div.anew-study-wrapper > div > div > div > div.anew-top > div.inline-block > div.anew-text").textContent == '您已完成该课程的学习') {
          console.log('关闭当前页面');
          //GM_setValue("niunepniunepniunep1122niunep", "finish");
          setCookie("niunepniunepniunep1122niunep", "finish", 7);
          window.opener = null; window.open('', '_self'); window.close();
        }
      }
      if (getCookie("niunepniunepniunep1122niunep") == "termi") {
        setCookie("niunepniunepniunep1122niunep", "", 0);
        window.opener = null; window.open('', '_self'); window.close();
      }
    }, 10000);
  }
})();

function findStartLearn() {
  var bts = document.getElementsByClassName('item current-hover');
  var startLearn = [];
  for (var i = 0; i < bts.length; i++) {
    if (bts[i].attributes['data-section-type'].value == '10') {
      if (bts[i].children[2].children[2].children[0].textContent == '开始学习' || bts[i].children[2].children[2].children[0].textContent == '继续学习') {
        startLearn.push(bts[i]);
      }
    }
  }
  return startLearn;
}

function insertButton() {
  var d = document.createElement('div');
  d.setAttribute('type', 'text/css');
  d.innerHTML = '  ';
  document.getElementsByTagName('body')[0].appendChild(d);
  d.style.display = "flex"
  var timeT = document.createElement('div');
  var stateT = document.createElement('div');
  var testT = document.createElement('div');
  var startBut = document.createElement('button');
  d.appendChild(timeT);
  d.appendChild(stateT);
  d.appendChild(testT);
  d.appendChild(startBut);
  startBut.textContent = "开始刷";
  var learnlist = findStartLearn();
  var learnlistid = [];
  for (var i = 0; i < learnlist.length; i++) {
    learnlistid.push(learnlist[i].attributes["id"].value);
  }
  stateT.textContent = '找到了' + learnlist.length + '个学习条目' + '点击右侧按钮将每100分钟或播放完成自动点击下一条视频';
  var inglearnNum = 0;
  startBut.addEventListener('click', function () {
    this.disabled = true;
    learnlist = findStartLearn();
    //learnlist[inglearnNum].click();
    document.querySelector('#' + learnlistid[inglearnNum]).click();
    inglearnNum++;
    stateT.textContent = '<--剩余时间..  正在的等待第' + inglearnNum +
      learnlist[inglearnNum - 1].children[1].children[0].textContent + '  完成。'
    var timett = 100 * 60;
    var lasTime = parseInt(Date.parse(new Date()) / 1000);
    // ==/UserScript==     每次上网课的时间
    var timer_sec = setInterval(function () {
      var someKey = getCookie("niunepniunepniunep1122niunep");//GM_getValue("niunepniunepniunep1122niunep", null);
      if (((parseInt(Date.parse(new Date()) / 1000) - lasTime) > timett) || (someKey == "finish")) {
        //GM_setValue("niunepniunepniunep1122niunep", "0");
        setCookie("niunepniunepniunep1122niunep", "", 0);
        //learnlist[inglearnNum].click();
        document.querySelector('#' + learnlistid[inglearnNum]).click();
        inglearnNum++;
        stateT.textContent = '<--剩余时间..  正在的等待第' + inglearnNum + learnlist[inglearnNum - 1].children[1].children[0].textContent + '  完成。'
        lasTime = parseInt(Date.parse(new Date()) / 1000);
      }
      timeT.innerHTML = 's' + (timett - (parseInt(Date.parse(new Date()) / 1000) - lasTime)) + 's';

      if (inglearnNum == learnlist.length) {
        clearInterval(interval);
        stateT.textContent = '学习完毕';
      }
    }, 2000);
  })
}

if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
  setTimeout(() => insertButton(), 3000);
} else {
  document.addEventListener("DOMContentLoaded", function () {setTimeout(() => insertButton(), 3000)});
} 


(function () {
  'use strict';
  //判断网页中视频是否暂停,如果已经暂停,就重新播放
  var timer_wk = setInterval(function () {
    if (
      document.getElementsByClassName(
        "vjs-play-control vjs-control vjs-button vjs-paused"
      ).length == 1
    ) {
      document
        .getElementsByClassName(
          "vjs-play-control vjs-control vjs-button vjs-paused"
        )[0]
        .click();
    }
    //判断网页中是否出现了暂停学习的警告,如果有警告就关闭
    if (document.getElementsByClassName("alert-wrapper").lenght > 0) {
      if (document.getElementsByClassName("alert-wrapper")[0].children[2] != 0) {
        document.getElementsByClassName("alert-wrapper")[0].children[2].click();
      }
    }
  }, 15123);
})();

function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i].trim();
    if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
  }
  return "";
}

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  var expires = "expires=" + d.toGMTString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}