自主学习

自主学习 天天进步

// ==UserScript==
// @name         自主学习
// @namespace    https://www.jsu.edu.cn/
// @version      1.0
// @description  自主学习 天天进步
// @author       JSU
// @match        https://dangjian.jsu.edu.cn/web/pschool/video/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=254.17
// @grant        none
// @license      GNU GPLv3
// ==/UserScript==

(function () {
    'use strict';
    console.warn("智慧党建 自动学习 自主学习脚本 做新时代的好青年应该要自主学习")
    console.warn("请将控制台模式改为‘警告‘及以上级别,本插件会使用警告发布信息")
    // 判断当前是否在dangjian.jsu.edu.cn
    if (window.location.host !== 'dangjian.jsu.edu.cn') {
        console.warn('当前不在dangjian.jsu.edu.cn')
        return;
    }
    // 循环检测是否跳出窗口
    let timer = setInterval(() => {
        if (document.querySelector('.el-message-box')) {
            document.querySelector('.el-message-box').querySelector('.el-message-box__btns').querySelector('button').click()

        }
    }, 1000)

    // 将nodeList转换为数组
    let sleepTime = 3
    let isCheck = 0
    let now = 0
    let videoList = []
    let checkList = setInterval(() => {
        if (sleepTime > 0) {
            console.error(1)
            sleepTime--
            return
        }
        if (isCheck == 0) {
            videoList = Array.prototype.slice.call(
                document.querySelectorAll("#pane-1 > div.catalogue-wrapper > div.chapter-box > div.children-box > div.node-box")
            )
            let now = 0;
            for (let j = 0; j < videoList.length; j++) {
                // let name = document.querySelector('div.name').innerText
                if (videoList[j].querySelector('div.status-box.start')) {
                    now = j
                    break
                }
            }
            console.warn(now)
            console.warn(videoList)
            console.warn("Chrome 要求使用用户脚本播放视频时必须Mute")
            document.querySelector("#mplayer-media-wrapper > div.video-wrapper > video").setAttribute("mute",true)
            videoList[now].click()
            isCheck = 1
            return
        }
        if(document.querySelector("#app > div > div.main-box > div > div > div.resource-box > div.video-box > div > div.control-box > div.top-box > div.left-box > div.player-btn.button-box > div:nth-child(1)")){
            let noPlayBtn = document.querySelector("#app > div > div.main-box > div > div > div.resource-box > div.video-box > div > div.control-box > div.top-box > div.left-box > div.player-btn.button-box > div:nth-child(1)")
            if(noPlayBtn.style.display === ""){
                console.warn("视频已经停止播放了,继续播放!")
                noPlayBtn.click()
            }
        }
        while (now < videoList.length) {

            console.warn(`当前任务列表 ${now+1} / ${videoList.length}`)
            if (videoList[now].querySelector('div.status-box.start')) {
                let name = videoList[now].querySelector('div.name').innerText
                console.warn("正在播放" + name)
                break;
            } else if (videoList[now].querySelector('div.status-box.finish')) {
                let name = videoList[now].querySelector('div.name').innerText
                console.warn("已播放完成:" + name + "等待五秒")
                if(now < videoList.length){
                    now++
                    console.warn("Chrome 要求使用用户脚本播放视频时必须Mute")
                    document.querySelector("#mplayer-media-wrapper > div.video-wrapper > video").setAttribute("mute",true)
                    videoList[now].click()
                    sleepTime = 3
                }else{
                    console.warn("当前任务已完成!")
                    clearInterval(checkList)
                    break
                }
            } else if (videoList[now].querySelector('div.status-box')) {
                let name = videoList[now].querySelector('div.name').innerText
                console.warn("未播放:" + name + "等待五秒")
                console.warn("Chrome 要求使用用户脚本播放视频时必须Mute")
                document.querySelector("#mplayer-media-wrapper > div.video-wrapper > video").setAttribute("mute",true)
                videoList[now].click()
                sleepTime = 3
            }
        }

    }, 1000)
})();