凉山州专业技术人员继续教育刷课脚本

该油猴脚本用于 凉山州专业技术人员继续教育 的辅助看课,脚本功能如下:解除视频自动暂停限制、视频自动播放、自动切换右侧章节

// ==UserScript==
// @name         凉山州专业技术人员继续教育刷课脚本
// @namespace    https://jiaobenmiao.com/
// @version      2.0
// @description  该油猴脚本用于 凉山州专业技术人员继续教育 的辅助看课,脚本功能如下:解除视频自动暂停限制、视频自动播放、自动切换右侧章节
// @author       脚本喵
// @match        https://lsjjpx.com/*
// @run-at       document-start
// @icon         https://jiaobenmiao.com/img/logo2.jpg
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';


    // 存储所有事件监听器的全局对象
    const _eventListeners = new WeakMap();

    // 劫持addEventListener
    const _originalAdd = EventTarget.prototype.addEventListener;
    EventTarget.prototype.addEventListener = function (type, listener, options) {
        if (!_eventListeners.has(this)) {
            _eventListeners.set(this, {});
        }
        const listeners = _eventListeners.get(this);
        if (!listeners[type]) {
            listeners[type] = [];
        }
        listeners[type].push({ listener, options });
        return _originalAdd.call(this, type, listener, options);
    };

    // 劫持removeEventListener
    const _originalRemove = EventTarget.prototype.removeEventListener;
    EventTarget.prototype.removeEventListener = function (type, listener, options) {
        if (_eventListeners.has(this)) {
            const listeners = _eventListeners.get(this);
            if (listeners[type]) {
                listeners[type] = listeners[type].filter(
                    l => l.listener !== listener || l.options !== options
                );
            }
        }
        return _originalRemove.call(this, type, listener, options);
    };

    // 自定义getEventListeners方法
    window.getEventListeners = function (target) {
        return _eventListeners.get(target) || {};
    };
    setTimeout(function () {
        // 遍历并移除window的blur事件
        const listeners = window.getEventListeners(window).blur;
        console.log(listeners)
        if (listeners) {
            listeners.forEach(listener => {
                window.removeEventListener('blur', listener.listener);
            });
        }
    }, 3000)



    setInterval(function () {
        var video = document.querySelector("video")
        if (video && video.paused && !video.ended) {
            video.play()
        }

        if (video && video.ended) {
            var nowIndex
            for (let i = 0; i < document.querySelectorAll(".chapter-nav .chapter-item").length; i++) {
                var item = document.querySelectorAll(".chapter-nav .chapter-item")[i]
                if (item.innerHTML.indexOf("red-text") != -1) {
                    nowIndex = i
                    break
                }
            }

            if (nowIndex + 1 < document.querySelectorAll(".chapter-nav .chapter-item").length) {
                if (document.querySelectorAll(".chapter-nav .chapter-item")[nowIndex + 1].querySelector("span")) {
                    document.querySelectorAll(".chapter-nav .chapter-item")[nowIndex + 1].querySelector("span").click()
                }
                if (document.querySelectorAll(".chapter-nav .chapter-item")[nowIndex + 1].querySelector("a")) {
                    document.querySelectorAll(".chapter-nav .chapter-item")[nowIndex + 1].querySelector("a").click()
                }
            }
        }
    }, 3000)


})();