太保学习自动化流程

自动播放一组学习视频并处理新标签页播放

// ==UserScript==
// @name         太保学习自动化流程
// @namespace    http://tampermonkey.net/
// @version      0.0.2
// @description  自动播放一组学习视频并处理新标签页播放
// @author       yqqyyq
// @match        *://university.cpic.com.cn/*
// @grant        none
// @icon         https://university.cpic.com.cn/default/M00/02/22/FQrxb2DcHXGACOpZAAAWLHrJuBw186.png
// ==/UserScript==

(function () {
  'use strict';
  function openNextVideo() {
    var currentUrl = window.location.href;
    if (!currentUrl.includes("/#/study/subject/detail")) {
      return;
    }
    let videoDivs = document.querySelectorAll('.catalog-state-info .item.current-hover');
    for (var i = 0; i < videoDivs.length; i++) {
      const item = videoDivs[i]
      let sectionType = item.dataset.sectionType
      let innerText = item.innerText
      let playVideo = item.querySelector('.operation')
      if (sectionType == 10 && innerText.indexOf("100% 已完成") < 0) {
        playVideo.click()
      }
    }
  }

  function videoEnd() {
    //chrome://settings/content/sound
    var currentUrl = window.location.href;
    if (!currentUrl.includes("/#/study/course/detail")) {
        return;
    }
    const classList = document.querySelectorAll('.chapter-list-box')
    const video = document.querySelector('video');
    if (video&&classList.length===1) {
      video.addEventListener('ended', function () {
        const timer = setTimeout(() => {
          console.log('发送新窗口关闭的消息');
          window.opener.postMessage('video-ended', 'https://university.cpic.com.cn');
          console.log('关闭新窗口');
          window.close();
          clearTimeout(timer)
        }, 2000)
      });
    } else if (video&&classList.length > 1) {
      video.addEventListener('ended', function () {
        const timer = setTimeout(() => {
          const classList = document.querySelectorAll('.chapter-list-box')
          for (var i = 0; i < classList.length; i++) {
            if(classList[i].querySelector('.progress').innerText !== '100%'){
              classList[i].click();
              const timer = setTimeout(() => {
                location.reload();
                clearTimeout(timer);
              }, 2000)
              break;
            }
          }
          clearTimeout(timer)
        }, 2000)
      });
    }
  }

  window.addEventListener('message', function (event) {
    if (event.origin !== 'https://university.cpic.com.cn') {
      console.log('收到新窗口关闭的消息x');
      return;
    }
    if (event.data === 'video-ended') {
      console.log('收到新窗口关闭的消息');
      location.reload();
    }
  });

  // 当页面加载完毕时启动脚本
  window.addEventListener('load', function () {
    const timer = setTimeout(() => {
      openNextVideo()
      videoEnd()
      clearTimeout(timer)
    }, 3000)
  });

})();