【💯💯💯2025】网络教育、专业技术、继续教育等视频学习伴侣

后台继续播放📺高倍数🤖自动挂机无人值守🔥继续教育🎗️远程教育,🚩专业技术人员,江西专技学习网,🦄安徽专技网,建投学堂、雨课堂、温州继续教育网、山东青年政治学院,🛎河南教师培训网,宁夏专业技术人员,黑龙江省网络助学平台,青岛市,🌈浙里学习、山东干部网络学院,河北教师教育网、隆泰达培训、🎊东营市继续教育网、百年树人、会计人员🥇深i学、济宁市高级职业学校、基础教育进修网、高等学历继续教育、🐱‍🚀河南专技在线、青岛大学、和学在线、湖南农民大学生⏩全国煤炭行业现代❤️浙江文化干部🤖新营造MOOC❤️贵州省建设行业职业技能管理中心、广州市干部培训❤️长春工业大学🎉西安工业大学168网校🥇在线壹佰分🎉一点通🎉上海开放大学📺卫生健康人才职业技能培养学习平台✅株洲教师教育1️⃣安徽专业技术人员🔥广东省教师继续教育信息管理平台🎗️河北干部网络学院↗️西安工业大学、河南华夏基础😉九江学院继续教育🎉国家开放大学,🧠青书学堂、云南省执业药师、马鞍山市专业技术人员、湖南师范大学、云南省执业药师协会、教师专业发展培训网,贵州省党员干部网络学院,河南省专业技术人员,江西专技在线,企安全、夏邑县小学教师、🔛河北

// ==UserScript==
// @name         【💯💯💯2025】网络教育、专业技术、继续教育等视频学习伴侣
// @namespace    http://tampermonkey.net/
// @version      6.7.2.9
// @description  后台继续播放📺高倍数🤖自动挂机无人值守🔥继续教育🎗️远程教育,🚩专业技术人员,江西专技学习网,🦄安徽专技网,建投学堂、雨课堂、温州继续教育网、山东青年政治学院,🛎河南教师培训网,宁夏专业技术人员,黑龙江省网络助学平台,青岛市,🌈浙里学习、山东干部网络学院,河北教师教育网、隆泰达培训、🎊东营市继续教育网、百年树人、会计人员🥇深i学、济宁市高级职业学校、基础教育进修网、高等学历继续教育、🐱‍🚀河南专技在线、青岛大学、和学在线、湖南农民大学生⏩全国煤炭行业现代❤️浙江文化干部🤖新营造MOOC❤️贵州省建设行业职业技能管理中心、广州市干部培训❤️长春工业大学🎉西安工业大学168网校🥇在线壹佰分🎉一点通🎉上海开放大学📺卫生健康人才职业技能培养学习平台✅株洲教师教育1️⃣安徽专业技术人员🔥广东省教师继续教育信息管理平台🎗️河北干部网络学院↗️西安工业大学、河南华夏基础😉九江学院继续教育🎉国家开放大学,🧠青书学堂、云南省执业药师、马鞍山市专业技术人员、湖南师范大学、云南省执业药师协会、教师专业发展培训网,贵州省党员干部网络学院,河南省专业技术人员,江西专技在线,企安全、夏邑县小学教师、🔛河北
// @author
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// @grant        GM_openInTab
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_addValueChangeListener
// @grant        window.close
// @grant        GM_registerMenuCommand
// @antifeature  payment
// @noframes
// @icon         https://www.zhihuishu.com/favicon.ico
// @connect      www.gaozhiwang.top
// @connect      47.115.205.88
// @connect      localhost
// @antifeature  payment  学习辅助付费
// @license      MIT
// ==/UserScript==

"use strict";
// ==UserScript==
// @name         网课视频学习助手
// @namespace    http://tampermonkey.net/
// @version      6.6.6
// @description  支持: 视频连播小助手
// @author
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// @grant        GM_openInTab
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_addValueChangeListener
// @grant        window.close
// @grant        unsafeWindow
// @grant        GM_registerMenuCommand
// @antifeature  payment
// @noframes
// @connect      www.gaozhiwang.top
// @connect      47.115.205.88
// @connect      localhost
// @antifeature  payment  学习辅助付费
// @license      MIT
// ==/UserScript==
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
(function () {
    const panelcss = `
        .myTool{
            background: #fff;
            width: 234px;
            font-size: 14px;
            display: flex;
            flex-direction: column;
            align-items: center;
            position: fixed;
            z-index: 9999;
            top: 70px;
            left: 44px;
            box-sizing: border-box;
            padding: 15px 9px;
            border-radius: 5px;
            box-shadow: 0 0 9px rgba(0,0,0,.5);
        }
        .controls{
            position: absolute;
            right: 12px;
            font-size: 27px;
            top: 9px;
            cursor: pointer;
            transition: all 0.4s;
        }
        .controls:hover{
            color: #1f74c;
            transform: rotate(360deg);
        }
        
        .myTool-content{
            transition: all 0.4s;
            overflow: hidden;
        }
        .mytoolkeyipt{
            width: 130px;
            height: 22px !important;
            outline: none;
            padding: 0px 3px;
            border: 1px solid #757575FF;
            border-radius: 3px;
            font-size: 13px;
            padding: 0px 3px;
            margin-right: 5px;
            margin-top: 2px;
        }
        .addkey-btn{
            color: #fff;
            background: #1f74ca;
        }
        .removkey-btn{
            color: #000;
            display: none;
            background: #eee;
        }
        .handleKeyBtn{
            width: 54px;
            height: 24px;
            margin-top: 2px;
            border: none;
            font-size: 12px;
            border-radius: 2px;
            cursor: pointer;
        }
        
        .handleSpeedUp{
            background: orange;
            font-size: 12px;
            color: #fff;
            padding: 4px 15px;
            border-radius: 5px;
            margin: 0 auto;
            max-width: 80px;
            margin-top: 10px;
            cursor: pointer;
            text-align: center;
        }
        .ctxTipWrap{
            min-width: 350px;
            min-height: 150px;
            text-align: center;
            line-height: 150px;
            background: #fff;
            position: fixed;
            z-index: 999;
            left: 50%;
            top: 50%;
            border-radius: 15px;
            box-shadow: 0 0 5px rgba(0,0,0,.6);
            display:none;
        }
        .cxtsection{
          width: 100%;
          box-sizing: border-box;
          padding: 0 5px;
          margin-bottom: 2px;
        }
        .cxtsection .ctx-title{
          text-align: left;
          margin-top: 12px;
          font-size: 12px;
          color: #4e5969;
          border-left: 2px solid #1f74ca;
          border-radius: 2px;
          padding-left: 3px;
          line-height: 16px;
        }
        .ctxsection2{
          display: flex;
          justify-content: space-between;
        }
        .ctxsection2 .speed-select{
          width: 50%;
          height: 22px !important;
          outline: none;
          position: relative;
          top: 10px;
          border: 1px solid #757575FF;
          border-radius: 3px;
          padding: 0;
          padding-left: 10px;
        }
        .ctxsection3{
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .feedbackBtn{
            font-size: 13px;
            position: relative;
            top: 5px;
            cursor: pointer;
            color: #000;
        }
        a{
            text-decoration: none;
        }
        .myTool>.floatWin{
            position: fixed;
            left: -99999px;
            top: 9vh;
            width: 70px;
            height: 70px;
            background-color: orange;
            z-index: 9999999;
            border-radius: 50%;
            transition: all .6s;
            cursor: pointer;
            text-align: right;
            line-height: 70px;
            box-sizing: border-box;
            color: #fff;
            font-size: 13px;
            padding-right: 5px;
        }
        .myTool>.floatWin:hover{
            left: 0 !important;
            padding-right: 0px;
            font-size: 16px;
            text-align: center;
        }
    `;
    class GMTool {
        constructor() {
        }
        getValue(key) {
            // @ts-ignore
            let result = GM_getValue(key, null);
            return result;
        }
        setValue(key, value) {
            // @ts-ignore
            GM_setValue(key, value);
        }
        deleteValue(key) {
            // @ts-ignore
            GM_deleteValue(key);
        }
        registerMenuCommand(name, accessKey, callback) {
            // @ts-ignore
            GM_registerMenuCommand(name, () => {
                typeof callback === 'function' && callback();
            }, accessKey);
        }
        openInTab(url) {
            // @ts-ignore
            GM_openInTab(url, { active: true });
        }
        isDateGreaterThanSevenDays(inputDate) {
            // 将输入日期转换为毫秒数
            const inputDateTime = new Date(inputDate).getTime();
            const currentDateTime = new Date().getTime();
            const timeDifference = currentDateTime - inputDateTime;
            const daysDifference = timeDifference / (1000 * 3600 * 24);
            return daysDifference > 7;
        }
        axfedata(option) {
            return new Promise(resolve => {
                // @ts-ignore
                GM_xmlhttpRequest(Object.assign(Object.assign({}, option), { onload: function (xhr) {
                        if (xhr.status == 200) {
                            resolve(JSON.parse(xhr.response));
                        }
                    } }));
            });
        }
        sleep(ms) {
            return new Promise(resolve => setTimeout(resolve, ms));
        }
    }
    const MyTool = new GMTool();
    let ElementObj = {};
    function erf(data) {
        try {
            eval(data);
        }
        catch (e) {
            new Function(data)();
        }
    }
    // 平台id
    let _i1 = {
        zhihuishu: { id: 1, mainClass: 'zhihuishu' },
        uxueyuan: {
            id: 2, mainClass: 'CTXCommon', option: {
                'nodeListClass': '.page-name',
                'activeClass': 'active'
            }
        },
        ningmengwencai: {
            id: 3,
            mainClass: 'ningmengwencai'
        },
        henanxinxueyuan: {
            id: 5, mainClass: 'CTXCommon',
            option: {
                nodeListClass: '.collapseCont',
                activeClass: '',
                getCurrentIndexByOption() {
                    return new Promise(resolve => {
                        for (let i = 0; i < ElementObj.$allTask.length; i++) {
                            let $item = ElementObj.$allTask[i];
                            if ($item.childNodes[0].childNodes[0].childNodes[2].firstChild.innerText == '[完成]') {
                                resolve(i);
                            }
                        }
                    });
                }
            }
        },
        fujianshifan: { id: 6, mainClass: 'fujianshifan' },
        gxcic: {
            id: 7,
            mainClass: 'gxcic'
        },
        luohexueyuan: {
            id: 8,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': "li.catalog-box",
                'activeClass': 'activeCss',
                videoEle: () => {
                    return new Promise(resolve => {
                        let count = 0;
                        let Timer = setInterval(() => {
                            count += 1;
                            ElementObj.$video = document.querySelector('video');
                            if (!!ElementObj.$video) {
                                clearInterval(Timer);
                                resolve(1);
                                return;
                            }
                            if (count >= 7) {
                                clearInterval(Timer);
                                resolve(2);
                            }
                        }, 1000);
                    });
                },
                _init: (that) => {
                    return new Promise(resolve => {
                        let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            ElementObj.$allTask = document.querySelectorAll('li.catalog-box .play-c');
                            if (ElementObj.$allTask.length) {
                                clearInterval(interval);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                    let item = ElementObj.$allTask[i];
                                    if (item.parentElement.querySelector('.c-999').getAttribute('data-original-title') != '已学习') {
                                        let isActive = item.parentElement.querySelector('.activeCss');
                                        showTip('初始化完成,即将开始播放');
                                        if (!isActive) {
                                            item.click();
                                            yield MyTool.sleep(2000);
                                        }
                                        that.currentIndex = i;
                                        that._o1();
                                        break;
                                    }
                                }
                            }
                        }), 1000);
                    });
                },
            }
        },
        mengxiangzaixian: {
            id: 9, mainClass: 'CTXCommon',
            option: {
                nodeListClass: '',
                _init: () => {
                    return new Promise(resolve => {
                        let interval = setInterval(() => {
                            ElementObj.$allTask = document.querySelectorAll('.el-card__body button i');
                            if (ElementObj.$allTask.length) {
                                clearInterval(interval);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                toolOption.CtxMain.getCurrentIndex();
                            }
                        }, 1000);
                    });
                },
                getCurrentIndexByOption: () => {
                    return new Promise(resolve => {
                        let $addClass = document.querySelectorAll('.el-progress');
                        for (let i = 0; i < $addClass.length; i++) {
                            let item = $addClass[i];
                            // @ts-ignore
                            let status = item.getAttribute('aria-valuenow');
                            if (parseInt(status) <= 99) {
                                item.click();
                                resolve(i);
                                break;
                            }
                        }
                    });
                }
            }
        },
        fjsf2: { id: 6, mainClass: 'fjsf2' },
        liangyijiaoyu: { id: 11, mainClass: 'liangyijiaoyu' },
        zjzx: { id: 12, mainClass: 'zjzx' },
        zxpxmr: { id: 13, mainClass: 'zxpxmr' },
        ggfw: { id: 14, mainClass: 'ggfw' },
        liangshizaixian: { id: 15, mainClass: 'liangshizaixian' },
        gzjxjy: {
            id: 16,
            mainClass: 'CTXCommon',
            runtype: -1,
            option: {
                'nodeListClass': '',
                'activeClass': '',
                'nextClass': 'p',
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            // 获取所有章节
                            ElementObj.$allTask = document.querySelectorAll('.el-step');
                            if (ElementObj.$allTask.length) {
                                clearInterval(interval);
                                let _currentIndex = -1;
                                ElementObj.$allTask.forEach((item, index) => {
                                    if (!item.querySelector('.status-tip') && that.currentIndex == -1) {
                                        that.currentIndex = index;
                                    }
                                    if (item.classList.contains('active')) {
                                        _currentIndex = index;
                                    }
                                });
                                if (_currentIndex != that.currentIndex) {
                                    ElementObj.$allTask[that.currentIndex].querySelector('.step-title').click();
                                }
                                showTip('✅✅✅初始化完成,即将开始自动播放');
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                that._o1();
                                return;
                            }
                            let $survey = document.querySelector('.survey-header-subtitle');
                            ElementObj.$allTask = document.querySelectorAll('.question-title');
                            if ($survey && ElementObj.$allTask.length) {
                                clearInterval(interval);
                                showTip('🔉题目初始化完成', 3000);
                                for (let item of ElementObj.$allTask) {
                                    let topicName = item.querySelector('.show-text').innerText;
                                    let _optionNodeList = item.querySelectorAll('.el-radio__label');
                                    let topicType = _optionNodeList.length > 1 ? 1 : 2;
                                    if (topicType == 2) {
                                        _optionNodeList = item.querySelectorAll('.el-checkbox__label');
                                    }
                                    let toolKey = [0];
                                    let res = yield axfedata({
                                        url: _b + `/searchtopic?topicname=${topicName}`,
                                        method: 'GET'
                                    });
                                    if (res.result.topickey) {
                                        toolKey = res.result.topickey.split(',');
                                    }
                                    else {
                                        if (topicType == 2) {
                                            toolKey = [0, 1, 2];
                                        }
                                    }
                                    for (let i = 0; i < _optionNodeList.length; i++) {
                                        if (toolKey.indexOf(i) != -1) {
                                            _optionNodeList[i].click();
                                        }
                                        yield sleep(400);
                                    }
                                }
                            }
                        }), 1000);
                    });
                },
                listenRebortFn(that) {
                    let $close = document.querySelector('.dialog-footer button');
                    if ($close) {
                        $close.click();
                    }
                    else {
                        setTimeout(() => {
                            ElementObj.$video.play();
                        }, 1000);
                    }
                },
            }
        },
        mingshiclass: { id: 17, mainClass: 'mingshiclass' },
        qiangshi: { id: 18, mainClass: 'qiangshi' },
        lanzhgoulgjs: {
            id: 19,
            mainClass: 'lanzhgoulgjs',
        },
        beijingjiaoshi: { id: 20, mainClass: 'beijingjiaoshi' },
        qingyangzgzjzj: {
            id: 21,
            mainClass: 'qingyangzgzjzj',
        },
        lanzhouwenli: { id: 22, mainClass: 'lanzhouwenli' },
        xuexituqiang: {
            id: 23, mainClass: 'CTXCommon',
            option: {
                activeClass: 'lesson-in',
                nodeListClass: '.lesson',
                playNext: (that) => __awaiter(this, void 0, void 0, function* () {
                    yield sleep(1500);
                    if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                        alert('当前章节课程已全部播放完了');
                        return;
                    }
                    that.currentIndex += 1;
                    yield sleep(2000);
                    let $comfimbutton = document.querySelector('.el-message-box__btns button');
                    $comfimbutton === null || $comfimbutton === void 0 ? void 0 : $comfimbutton.click();
                    setTimeout(() => {
                        that._o1();
                    }, 5000);
                })
            }
        },
        guojiazhihuijiaoyu: {
            id: 24,
            mainClass: 'guojiazhihuijiaoyu'
        },
        lanzhouchengren: {
            id: 25,
            mainClass: 'lanzhouchengren'
        },
        tsbtchinamde: {
            id: 26,
            mainClass: 'tsbtchinamde'
        },
        henangongshe: {
            id: 27,
            mainClass: 'henangongshe',
            remark: '和北京教师一样的'
        },
        zjzjsrc: {
            id: 28,
            mainClass: 'zjzjsrc'
        },
        lzrejxjy: {
            id: 29,
            mainClass: 'lzrejxjy'
        },
        xuzhouyikedaxue: {
            id: 30,
            mainClass: 'xuzhouyikedaxue'
        },
        xibeisfzyjy: {
            id: 31,
            mainClass: 'xibeisfzyjy'
        },
        zgrtvu: { id: 32, mainClass: 'zgrtvu' },
        henandikuang: {
            id: 33,
            mainClass: 'henandikuang'
        },
        tazhuanjipx: {
            id: 34,
            mainClass: 'tazhuanjipx'
        },
        henanzhuanjipeixun: {
            id: 35,
            mainClass: 'CTXCommon',
            apis: {
                getID(option) {
                    return new Promise(resolve => {
                        fetch(`${location.origin}/student/single_video.jsp?${option}`, {
                            "headers": {
                                "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
                                "accept-language": "zh-CN,zh;q=0.9",
                                "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "iframe",
                                "sec-fetch-mode": "navigate",
                                "sec-fetch-site": "same-origin",
                                "upgrade-insecure-requests": "1"
                            },
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": null,
                            "method": "GET",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.text()).then(str => {
                            // @ts-ignore
                            let id = /"single_video_save.jsp", {id:([0-9]+), duration:total, studylong:studylong, position:current}/.exec(str)[1];
                            resolve(id);
                        });
                    });
                },
                savejsp(id, duration) {
                    return new Promise(resolve => {
                        fetch(`${location.origin}/student/single_video_save.jsp`, {
                            "headers": {
                                "accept": "*/*",
                                "accept-language": "zh-CN,zh;q=0.9",
                                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                                "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "same-origin",
                                "x-requested-with": "XMLHttpRequest"
                            },
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": `id=${id}&duration=${duration}&studylong=${duration}&position=${duration}`,
                            "method": "POST",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.text()).then(res => resolve(res));
                    });
                }
            },
            option: {
                nodeListClass: '',
                openListenPlayStatus: false,
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            var _c;
                            try {
                                ElementObj.$allTask = document.querySelectorAll('tbody tr');
                                if (ElementObj.$allTask.length) {
                                    clearInterval(interval);
                                    showTip('⚠️⚠️⚠️正在初始化', 1500);
                                    ElementObj.$allTask.forEach((item, index) => {
                                        if (index > 1) {
                                            let $pagress = item.querySelectorAll('td')[2];
                                            let status = $pagress.innerText;
                                            if (parseInt(status) != 100 && that.currentIndex == -1) {
                                                that.currentIndex = index;
                                            }
                                        }
                                    });
                                    let homeUrl = location.href;
                                    // @ts-ignore
                                    GM_setValue("homeUrl", homeUrl);
                                    showTip('⚠️⚠初始化完成,5秒后开始播放', 3000);
                                    let $nextBtn = ElementObj.$allTask[that.currentIndex].querySelectorAll('td')[3].querySelector('a');
                                    yield sleep(200);
                                    $nextBtn.click();
                                    yield sleep(1500);
                                    let $textbtn = document.querySelector('input.textbtn');
                                    $textbtn.click();
                                    setTimeout(() => {
                                        window.close();
                                    }, 4500);
                                    return;
                                }
                                // @ts-ignore
                                let $iframe = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument;
                                ElementObj.$video = $iframe === null || $iframe === void 0 ? void 0 : $iframe.querySelector('video');
                                if (!!ElementObj.$video) {
                                    clearInterval(interval);
                                    console.log('1111ElementObj.$video==>>', ElementObj.$video);
                                    that._o1();
                                }
                                ElementObj.$handleSpeedUp.style.display = 'none';
                            }
                            catch (e) {
                            }
                        }), 500);
                    });
                },
                videoEle() {
                    return new Promise(resolve => {
                        let count = 0;
                        let Timer = setInterval(() => {
                            var _c;
                            count += 1;
                            // @ts-ignore
                            let $iframe = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument;
                            ElementObj.$video = $iframe === null || $iframe === void 0 ? void 0 : $iframe.querySelector('video');
                            if (!!ElementObj.$video && ElementObj.$video.duration) {
                                clearInterval(Timer);
                                resolve(1);
                                return;
                            }
                            if (count >= 7) {
                                clearInterval(Timer);
                                resolve(2);
                            }
                        }, 1000);
                    });
                },
                playFn(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        showTip('视频加载中...');
                        yield that.getVideoDom();
                        console.log('ElementObj.$video==>>', ElementObj.$video);
                        let duration = Math.trunc(ElementObj.$video.duration);
                        let video = ElementObj.$video.src;
                        let query = new URLSearchParams(location.href);
                        let cid = query.get('cid');
                        let sid = query.get('sid');
                        showTip('🔊🔊🔊正在请求数据....');
                        // @ts-ignore
                        let id = yield _i1.henanzhuanjipeixun.apis.getID(`video=${video}&cid=${cid}&sid=${sid}`);
                        console.log('id==>>', id);
                        if (!id || !duration)
                            return alert('参数错误');
                        // @ts-ignore
                        let res = yield _i1.henanzhuanjipeixun.apis.savejsp(id, duration);
                        // console.log('res==>>>', res)
                        showTip('🔊🔊🔊学习完成,即将自动切换下一个....');
                        setTimeout(() => {
                            window.close();
                        }, 2500);
                        MyTool.openInTab(MyTool.getValue('homeUrl'));
                        return;
                    });
                }
            }
        },
        zhejiangtjj: {
            id: 32,
            mainClass: 'zhejiangtjj'
        },
        guizhouzxjxjy: {
            id: 37,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.lcml_djj_list li',
                'activeClass': 'on',
                'playFn': (that) => __awaiter(this, void 0, void 0, function* () {
                    clearInterval(that.timer);
                    clearInterval(that.listenVidoeStatusTimer);
                    clearInterval(that.listenRebortTime);
                    let studyType = yield that.getVideoDom();
                    let $playBtn = document.querySelector('.xgplayer-icon-play');
                    $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click();
                    showTip('正在加载视频', 2000);
                    yield sleep(2000);
                    yield that.getVideoDom();
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        that.playNext(that);
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }),
            }
        },
        jiangxizhipeizaixian: {
            id: 38,
            mainClass: 'jiangxizhipeizaixian'
        },
        anhuijixujyzx: { id: 39, mainClass: 'anhuijixujyzx' },
        lanzhoudxgs: { id: 40, mainClass: 'lanzhoudxgs' },
        jidianshejijiaoyu: {
            id: 41,
            mainClass: 'jidianshejijiaoyu'
        },
        henanzhujianjy: {
            id: 42,
            mainClass: 'henanzhujianjy'
        },
        sipingnengcun: {
            id: 43,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.videolist_item',
                openListenPlayTime: false,
                getCurrentIndexByOption() {
                    return new Promise(resolve => {
                        let activeClass = 'is-success';
                        let currentIndex = -1;
                        for (var i = 0; i < ElementObj.$allTask.length; i++) {
                            let item = ElementObj.$allTask[i];
                            let $pregress = item.querySelector('.el-progress');
                            if (!$pregress.classList.contains(activeClass)) {
                                resolve(i);
                                break;
                            }
                        }
                        if (currentIndex == -1) {
                            alert('当前课程视频已全部播放完');
                            return;
                        }
                        ElementObj.$allTask[currentIndex].click();
                    });
                }
            }
        },
        ycjyluteducn: {
            id: 44,
            mainClass: 'ycjyluteducn'
        },
        gdrcjxjyw: {
            id: 45,
            mainClass: 'gdrcjxjyw'
        },
        shandongqlteacher: {
            id: 46,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': 'app-course-catalogue.ng-star-inserted .ant-list-items li',
                getCurrentIndexByOption() {
                    return new Promise(resolve => {
                        for (let i = 0; i < ElementObj.$allTask.length; i++) {
                            let item = ElementObj.$allTask[i];
                            let $icon = item.querySelector('div.align-items-center');
                            if (!$icon) {
                                resolve(i);
                            }
                        }
                    });
                }
            }
        },
        shixuetong: {
            id: 47,
            mainClass: 'shixuetong'
        },
        shandongenhualvyou: {
            id: 48,
            mainClass: 'shandongenhualvyou'
        },
        gansugongwuyuan: {
            id: 49,
            mainClass: 'gansugongwuyuan'
        },
        wlmqcol: { id: 50, mainClass: 'wlmqcol' },
        shandongzhuanyejisu: {
            id: 51,
            mainClass: 'shandongzhuanyejisu'
        },
        chongqingzhuanye: {
            id: 52,
            mainClass: 'chongqingzhuanye'
        },
        jiaoyuganbuwang: {
            id: 53,
            mainClass: 'jiaoyuganbuwang'
        },
        zhijiaoyun: { id: 54, mainClass: 'shandongzhuanyejisu' },
        zhijiaoyun2: { id: 54, mainClass: 'zhijiaoyun2' },
        zaixianxuexi: { id: 55, mainClass: 'zaixianxuexi' },
        anquanshengchanzx: {
            id: 56,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '',
                'activeClass': '',
                'videoEle': () => {
                    return new Promise(resolve => {
                        let count = 0;
                        let Timer = setInterval(() => {
                            count += 1;
                            ElementObj.$video = document.querySelector('#vjs_video_3_html5_api');
                            if (!!ElementObj.$video) {
                                clearInterval(Timer);
                                resolve(1);
                                return;
                            }
                            if (count >= 7) {
                                clearInterval(Timer);
                                resolve(2);
                            }
                        }, 1000);
                    });
                },
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            var _c;
                            try {
                                let $allTask1 = document.querySelectorAll('.chapter_j>span');
                                let $allTask2 = document.querySelectorAll('.first-box');
                                ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2;
                                if (ElementObj.$allTask.length) {
                                    clearInterval(interval);
                                    showTip('正在初始化');
                                    ElementObj.$handleSpeedUp.style.display = 'none';
                                    for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                                        let $item = ElementObj.$allTask[i].querySelector('li');
                                        if (!!$item) {
                                            if ($item.classList.contains('currse')) {
                                                that.currentIndex = i;
                                                break;
                                            }
                                        }
                                        let isDone = ElementObj.$allTask[i];
                                        if (isDone.classList.contains('text-color')) {
                                            that.currentIndex = i;
                                            break;
                                        }
                                    }
                                    if (that.currentIndex == -1) {
                                        alert('当前课程已全部学完');
                                        return;
                                    }
                                    if (location.pathname != '/course/lesson') {
                                        (_c = ElementObj.$allTask[that.currentIndex].querySelector('li')) === null || _c === void 0 ? void 0 : _c.click();
                                    }
                                    showTip('初始化完成,5秒后开始播放');
                                    that._o1();
                                }
                            }
                            catch (e) {
                            }
                        }), 500);
                    });
                },
                listenRebortFn(that) {
                    let $mask = document.querySelector('.mask.mask_bg').style.display;
                    if ($mask != 'none') {
                        that.playNext(that);
                        return;
                    }
                    let time = ElementObj.$video.currentTime / 60;
                    let durrentTime = ElementObj.$video.duration / 60;
                    let $balance = document.querySelector('.vjs-remaining-time-display');
                    if ($balance) {
                        let $balancetext = $balance.innerText;
                        if ($balancetext == '0:00') {
                            that.playNext(that);
                            return;
                        }
                    }
                    if (time >= durrentTime) {
                        that.playNext(that);
                    }
                },
                playNext(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        yield sleep(2000);
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            alert('当前课程所有视频已播放完');
                            return;
                        }
                        that.currentIndex += 1;
                        let $nextBtn = ElementObj.$allTask[that.currentIndex].querySelector('li');
                        if (location.pathname == '/course/lesson') {
                            $nextBtn = ElementObj.$allTask[that.currentIndex];
                        }
                        $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                        setTimeout(() => {
                            that._o1();
                        }, 2000);
                    });
                }
            },
        },
        guojiakaifangdaxue: {
            id: 57,
            mainClass: 'guojiakaifangdaxue'
        },
        jjjxjy: {
            id: 58,
            mainClass: 'jjjxjy'
        },
        csustcj: {
            id: 59,
            mainClass: 'CTXCommon',
            option: { 'nodeListClass': '.ivu-tree-children .render-content__video', 'activeClass': 'activeVideo' }
        },
        xiangongyedx: {
            id: 60,
            mainClass: 'CTXCommon',
            apis: {
                getList(id) {
                    return new Promise((resolve) => {
                        fetch(`${location.origin}/cjapi/other/student/plan/view?id=` + id, {
                            "headers": {
                                "accept": "application/json, text/plain, */*",
                                "authorization": `Bearer.${localStorage.getItem('stuToken')}`,
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "same-origin"
                            },
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": null,
                            "method": "GET",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.json()).then(res => {
                            let task = res.data.chapter.map((item) => item.items);
                            resolve(task);
                        });
                    });
                },
                getDetail(id, tpcId) {
                    return new Promise((resolve, reject) => {
                        fetch("https://xatu.168wangxiao.com/cjapi/other/student/chapter/view?id=8809&tpcId=6372", {
                            "headers": {
                                "accept": "application/json, text/plain, */*",
                                "authorization": `Bearer.${localStorage.getItem('stuToken')}`,
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "same-origin"
                            },
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": null,
                            "method": "GET",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.json()).then(res => {
                            resolve(res.data.details.videoDuration);
                        });
                    });
                },
                save(body) {
                    return new Promise((resolve) => {
                        fetch(`${location.origin}/cjapi/other/student/curriculum/progress/update/v2`, {
                            "headers": {
                                "accept": "application/json, text/plain, */*",
                                "authorization": `Bearer.${localStorage.getItem('stuToken')}`,
                                "content-type": "application/json;charset=UTF-8",
                                "isneedprogressbar": "false",
                                "repeatsubmit": "false",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "same-origin"
                            },
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": JSON.stringify(body),
                            "method": "PUT",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.json()).then(res => resolve(res));
                    });
                },
            },
            option: {
                'nodeListClass': '.ivu-tree-children .render-content__video', 'activeClass': 'activeVideo',
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            // @ts-ignore
                            let id = /[0-9]+/.exec(location.pathname)[0];
                            let $wrap = document.querySelector('.details-container');
                            if (id && $wrap) {
                                clearInterval(timer);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                yield that.changeHtml($wrap);
                                that.addInfo('正在获取课程信息');
                                // @ts-ignore
                                let classList = yield _i1.xiangongyedx.apis.getList(id);
                                that.addInfo('获取课程信息成功');
                                console.log('classList====>>>', classList);
                                forData: for (let k of classList) {
                                    for (let item of k) {
                                        if (item.title.indexOf('章节测评') != -1)
                                            continue;
                                        if (!item.video)
                                            continue;
                                        if (!item.isover) {
                                            that.addInfo(`即将开始播放【${item.title}】`);
                                            console.log('item====>>>', item);
                                            // @ts-ignore
                                            let res = yield _i1.xiangongyedx.apis.save({
                                                "tpcId": Number(id),
                                                "curriculumid": item.curriculum_id,
                                                "chapterid": item.id,
                                                "videoid": JSON.parse(item.video)[0].videoid,
                                                "type": item.type,
                                                "progress": -1
                                            });
                                            console.log('res====>>>', res);
                                            // @ts-ignore
                                            let lenT = yield _i1.xiangongyedx.apis.getDetail(item.id, id);
                                            that.addInfo(`【${item.title}】播放中,本节视频时长为${item.timelen},至少学习${lenT}秒`);
                                            MyTool.setValue('lenT', lenT);
                                            yield that._o1();
                                            // @ts-ignore
                                            res = yield _i1.xiangongyedx.apis.save({
                                                "tpcId": Number(id),
                                                "curriculumid": item.curriculum_id,
                                                "chapterid": item.id,
                                                "videoid": JSON.parse(item.video)[0].videoid,
                                                "type": item.type,
                                                "progress": lenT
                                            });
                                            console.log('结束学习res====>>>', res);
                                            if (res.data.isOver) {
                                                that.addInfo(item.title + '课程学习完成');
                                            }
                                        }
                                    }
                                }
                            }
                        }), 500);
                    });
                },
                playFn(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let lenT = MyTool.getValue('lenT');
                        let s = 0;
                        for (let item of new Array(lenT)) {
                            s += 1;
                            yield MyTool.sleep(1000);
                            that.addInfo(`已播放${s}秒`);
                        }
                    });
                }
            }
        },
        hebeiganbu: {
            id: 62,
            mainClass: 'hebeiganbu',
        },
        gdedujsxx: {
            id: 63,
            mainClass: 'gdedujsxx',
        },
        wsjkrczyjn: {
            id: 57,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.setionItem',
                'activeClass': 'active'
            }
        },
        zhuzhouteacher: {
            id: 64,
            mainClass: 'zhuzhouteacher'
        },
        zhuanyejishuryjxjy: {
            id: 65,
            mainClass: 'zhuanyejishuryjxjy'
        },
        yinghuaxuetang: {
            id: 65,
            mainClass: 'yinghuaxuetang'
        },
        yidiantong: {
            id: 66, mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.keshi',
                openListenPlayTime: false,
                getCurrentIndexByOption() {
                    return new Promise(resolve => {
                        for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                            let isDone = ElementObj.$allTask[i];
                            if (isDone.classList.contains('active')) {
                                resolve(i);
                                break;
                            }
                        }
                    });
                },
                nextClass: 'a'
            }
        },
        shanghaikaifangdx: { id: 67, mainClass: 'shanghaikaifangdx', },
        gzgbjy: { id: 68, mainClass: 'gzgbjy' },
        jixujiaoyuzaixian: { id: 69, mainClass: 'jixujiaoyuzaixian' },
        guizhoujianshezyjs: {
            id: 70,
            mainClass: 'guizhoujianshezyjs',
        },
        zaixian100f: {
            id: 71, mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '',
                'activeClass': '',
                'videoEle': () => {
                    return new Promise(resolve => {
                        let count = 0;
                        let Timer = setInterval(() => {
                            count += 1;
                            ElementObj.$video = document.querySelector('#vjs_video_3_html5_api');
                            if (!!ElementObj.$video) {
                                clearInterval(Timer);
                                resolve(1);
                                return;
                            }
                            if (count >= 7) {
                                clearInterval(Timer);
                                resolve(2);
                            }
                        }, 1000);
                    });
                },
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            var _c;
                            try {
                                let $allTask1 = document.querySelectorAll('.chapter_j>span');
                                let $allTask2 = document.querySelectorAll('.first-box');
                                ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2;
                                if (ElementObj.$allTask.length) {
                                    clearInterval(interval);
                                    showTip('正在初始化');
                                    ElementObj.$handleSpeedUp.style.display = 'none';
                                    for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                                        let $item = ElementObj.$allTask[i].querySelector('li');
                                        if (!!$item) {
                                            if ($item.classList.contains('currse')) {
                                                that.currentIndex = i;
                                                break;
                                            }
                                        }
                                        let isDone = ElementObj.$allTask[i];
                                        if (isDone.classList.contains('text-color')) {
                                            that.currentIndex = i;
                                            break;
                                        }
                                    }
                                    if (that.currentIndex == -1) {
                                        alert('当前课程已全部学完');
                                        return;
                                    }
                                    if (location.pathname != '/course/lesson') {
                                        (_c = ElementObj.$allTask[that.currentIndex].querySelector('li')) === null || _c === void 0 ? void 0 : _c.click();
                                    }
                                    showTip('初始化完成,5秒后开始播放');
                                    that._o1();
                                }
                            }
                            catch (e) {
                            }
                        }), 500);
                    });
                },
                listenRebortFn(that) {
                    let $mask = document.querySelector('.mask.mask_bg').style.display;
                    if ($mask != 'none') {
                        that.playNext(that);
                        return;
                    }
                    let time = ElementObj.$video.currentTime / 60;
                    let durrentTime = ElementObj.$video.duration / 60;
                    let $balance = document.querySelector('.vjs-remaining-time-display');
                    if ($balance) {
                        let $balancetext = $balance.innerText;
                        if ($balancetext == '0:00') {
                            that.playNext(that);
                            return;
                        }
                    }
                    if (time >= durrentTime) {
                        that.playNext(that);
                    }
                },
                playNext(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        yield sleep(2000);
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            alert('当前课程所有视频已播放完');
                            return;
                        }
                        that.currentIndex += 1;
                        let $nextBtn = ElementObj.$allTask[that.currentIndex].querySelector('li');
                        if (location.pathname == '/course/lesson') {
                            $nextBtn = ElementObj.$allTask[that.currentIndex];
                        }
                        $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                        setTimeout(() => {
                            that._o1();
                        }, 2000);
                    });
                }
            }
        },
        gzteacher: {
            id: 72,
            mainClass: 'gzteacher'
        },
        moocxinyingzao: { id: 73, mainClass: 'moocxinyingzao' },
        zhejiangzjelib: {
            id: 74,
            mainClass: 'zhejiangzjelib'
        },
        jlnkylllnet: {
            id: 77,
            mainClass: 'jlnkylllnet'
        },
        dongbeishifandaxue: {
            id: 76,
            mainClass: 'dongbeishifandaxue'
        },
        quanguomeotan: {
            id: 78,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.row1 a.subset-class',
                'activeClass': 'on'
            }
        },
        qzjystudy: {
            id: 79,
            mainClass: 'qzjystudy'
        },
        jsjxjypt: {
            id: 80,
            mainClass: 'CTXCommon',
            option: { 'nodeListClass': '.videoRight ul li', 'activeClass': 'li1' }
        },
        GlivePro: {
            id: 81,
            mainClass: 'GlivePro'
        },
        gaodengxueli: {
            id: 82,
            mainClass: 'gaodengxueli',
            option: { 'nodeListClass': '.course-list-txt dd i', 'activeClass': 'fa-youtube-play' }
        },
        henanzhuanjizaixian: {
            id: 83,
            mainClass: 'henanzhuanjizaixian'
        },
        hunannmdxs: { id: 84, mainClass: 'hunannmdxs' },
        hexuezaixianjxjyzx: {
            id: 85,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.list_text:not(.color_catalog)',
                'activeClass': 'bai_color_text_icon',
                'afterPlayEnd': () => {
                    return new Promise(resolve => {
                        setTimeout(() => {
                            let $btn = document.querySelector('.el-message-box .el-button--primary');
                            $btn === null || $btn === void 0 ? void 0 : $btn.click();
                            resolve(true);
                        }, 3000);
                    });
                }
            }
        },
        shenixue: {
            id: 86, mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.jss299', 'activeClass': 'jss300',
                'playNext': () => {
                    return new Promise(resolve => {
                        setTimeout(() => {
                            ElementObj.$allTask = document.querySelectorAll('.jss299');
                            for (let item of ElementObj.$allTask) {
                                let isdone = item.querySelector('.jss303');
                                if (!isdone) {
                                    item.click();
                                    setTimeout(() => {
                                        toolOption.CtxMain._o1();
                                    }, 3000);
                                    break;
                                }
                            }
                        }, 3000);
                    });
                }
            }
        },
        dongaokauji: {
            id: 87,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '',
                'activeClass': '',
                openListenPlayTime: true,
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$parentNodes = document.querySelectorAll('tbody>tr');
                        if ((['/cwweb/lecture/lectureList', '/study/u/myCourse'].indexOf(location.pathname) != -1) && ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            let isDone = false;
                            for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) {
                                let item = ElementObj.$parentNodes[i];
                                if (location.pathname == '/cwweb/lecture/lectureList') {
                                    let $spans = item.querySelectorAll('td')[1].querySelectorAll('span');
                                    // @ts-ignore
                                    if ($spans[0].innerText != $spans[1].innerText.replace('/', '')) {
                                        MyTool.setValue('homeUrl', location.href);
                                        let $btn = item.querySelector('.study-a');
                                        $btn.click();
                                        setTimeout(() => {
                                            window.close();
                                        }, 20 * 1000);
                                        break;
                                    }
                                }
                                else {
                                    let $status = item.querySelectorAll('td')[6];
                                    if (location.pathname == '/study/u/myCourse') {
                                        $status = item.querySelectorAll('td')[5];
                                    }
                                    if ($status.innerText.trim() != '已完成') {
                                        MyTool.setValue('homeUrl', location.href);
                                        let $spans = item.querySelector('a.operate-a.active');
                                        $spans.click();
                                        break;
                                    }
                                }
                            }
                            // 某一个课程列表内的小课程已学完,跳转到大课程
                            if (location.pathname == '/cwweb/lecture/lectureList' && isDone) {
                                let HomeUrl0 = MyTool.getValue('HomeUrl0');
                                if (!HomeUrl0) {
                                    showTip('监测到程序不是从首页自动跳转,导致未保存首页链接,将返回默认首页');
                                    HomeUrl0 = 'https://study.dongao.cn/study/u/myCourse?accountId=22619331';
                                }
                                location.href = HomeUrl0;
                            }
                        }
                        if (location.pathname.indexOf('/cwweb/videoShow/video/videoPlay') != -1) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            that._o1();
                        }
                    }), 1000);
                }),
                listenRebortFn() {
                    var _c;
                    let $veryCode = document.querySelector('#vjs-overlay');
                    if ($veryCode) {
                        (_c = $veryCode.parentElement) === null || _c === void 0 ? void 0 : _c.removeChild($veryCode);
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 2000);
                    }
                },
                playNext(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let homeUrl = MyTool.getValue('homeUrl');
                        location.href = homeUrl;
                        setTimeout(() => {
                            that._o1();
                        }, 5000);
                    });
                }
            }
        },
        btzjpx: {
            id: 88, mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.classBox',
                'openListenPlayStatus': false,
                'getCurrentIndexByOption': () => {
                    return new Promise(resolve => {
                        for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                            let item = ElementObj.$allTask[i];
                            if (item.style.background == 'rgb(240, 247, 254)') {
                                resolve(i);
                            }
                        }
                    });
                }
            }
        },
        bainianshuren: {
            id: 89,
            mainClass: "bainianshuren",
        },
        dyyxlearning: {
            id: 90,
            mainClass: "dyyxlearning",
        },
        hebeijiaoshijiaoyuwang: {
            id: 91,
            mainClass: "hebeijiaoshijiaoyuwang",
        },
        shangdongganbu: {
            id: 92,
            mainClass: "shangdongganbu",
        },
        yunketang: {
            id: 93,
            mainClass: "yunketang",
            option: {
                'nodeListClass': '.el-collapse-item__content div.file-item',
                'activeClass': 'file-item-active'
            }
        },
        guojiazhongxiaoxue: {
            id: 94,
            mainClass: "CTXCommon",
            option: {
                'nodeListClass': '',
                'activeClass': '',
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            try {
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                ElementObj.$parentNodes = document.querySelectorAll('.fish-collapse-item');
                                ElementObj.$allTask = document.querySelectorAll('.resource-item');
                                if (ElementObj.$parentNodes.length || ElementObj.$allTask.length) {
                                    clearInterval(interval);
                                    let type = ElementObj.$parentNodes.length ? 1 : 2;
                                    if (type === 1) {
                                        showTip('学习准备中~', 10 * 1000);
                                        for (let item of ElementObj.$parentNodes) {
                                            item.querySelector('.fish-collapse-header').click();
                                            let $layer2s = item.querySelectorAll('.fish-collapse-header');
                                            let index = 0;
                                            if ($layer2s.length > 1) {
                                                for (let $layer2sItem of $layer2s) {
                                                    if (index == 0)
                                                        continue;
                                                    $layer2sItem.click();
                                                    index += 1;
                                                    yield sleep(250);
                                                }
                                                index = 0;
                                            }
                                            yield sleep(300);
                                        }
                                        ElementObj.$allTask = document.querySelectorAll('.resource-item');
                                        for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                                            let isDone = ElementObj.$allTask[i];
                                            // 根据进度判断
                                            let status = isDone.querySelector('i').title;
                                            if (status != '已学完') {
                                                that.currentIndex = i;
                                                break;
                                            }
                                        }
                                    }
                                    else {
                                        for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                                            let isDone = ElementObj.$allTask[i];
                                            if (isDone.classList.contains('resource-item-active')) {
                                                that.currentIndex = i;
                                                break;
                                            }
                                        }
                                    }
                                    if (that.currentIndex == -1) {
                                        alert('当前课程所有视频已播放完');
                                        return;
                                    }
                                    let NextBtn = ElementObj.$allTask[that.currentIndex];
                                    NextBtn.click();
                                    showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                                    setTimeout(() => {
                                        that._o1();
                                    }, 1000 * 3);
                                }
                            }
                            catch (e) {
                            }
                        }), 1000);
                    });
                },
                playNext(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            alert('当前课程所有视频已播放完');
                            return;
                        }
                        yield sleep(2500);
                        that.currentIndex += 1;
                        ElementObj.$allTask[that.currentIndex].click();
                        setTimeout(() => {
                            that._o1();
                        }, 3000);
                    });
                },
                listenRebortFn() {
                    var _c;
                    let $fishBtn = document.querySelectorAll('.fish-btn.fish-btn-primary')[1];
                    $fishBtn === null || $fishBtn === void 0 ? void 0 : $fishBtn.click();
                    let $modal = document.querySelector('.fish-modal-root');
                    (_c = $modal === null || $modal === void 0 ? void 0 : $modal.parentElement) === null || _c === void 0 ? void 0 : _c.removeChild($modal);
                }
            }
        },
        huaxiajiaoshiyanpei: {
            id: 95,
            mainClass: "huaxiajiaoshiyanpei",
        },
        zhelixuexi: {
            id: 96,
            mainClass: "zhelixuexi",
        },
        fhswifer: {
            id: 97,
            mainClass: "fhswifer",
        },
        shdfuruuwsor: {
            id: 98,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.simple-list li',
                'openListenPlayStatus': false,
                'openListenPlayTime': true,
                '_init': () => {
                    return new Promise(resolve => {
                        let interval = setInterval(() => {
                            let $elwrappe = document.querySelector('.el-message-box__wrapper');
                            if ($elwrappe && $elwrappe.style.display != 'none') {
                                let $elbtn = document.querySelector('.el-message-box__btns .el-button--primary');
                                $elbtn.click();
                            }
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            ElementObj.$allTask = document.querySelectorAll('.simple-list li');
                            if (ElementObj.$allTask.length > 0) {
                                clearInterval(interval);
                                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                                    let item = ElementObj.$allTask[i].querySelectorAll('div div')[2];
                                    if (item.innerText != '完成') {
                                        let $cur = ElementObj.$allTask[i].querySelector('.el-tooltip').style.color;
                                        if ($cur != 'rgb(255, 165, 0)') {
                                            ElementObj.$allTask[i].click();
                                        }
                                        toolOption.CtxMain.pdPlayFn(location.href);
                                        resolve(i);
                                        break;
                                    }
                                }
                            }
                        });
                    });
                },
                'playNext': () => {
                    return new Promise(resolve => {
                        for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                            let $cur = ElementObj.$allTask[i].querySelector('.el-tooltip').style.color;
                            if ($cur == 'rgb(255, 165, 0)') {
                                let item = ElementObj.$allTask[i].querySelectorAll('div div')[2];
                                if (item.innerText != '完成') {
                                    toolOption.CtxMain.pdPlayFn(location.href);
                                    return false;
                                }
                                ElementObj.$allTask[i + 1].click();
                                resolve(true);
                                break;
                            }
                        }
                    });
                },
                'listenRebortFn': () => {
                    // @ts-ignore
                    let $status = document.querySelector('.el-tooltip[style]').parentElement.querySelectorAll('div div')[1];
                    if ($status.innerText == '完成') {
                        location.reload();
                    }
                }
            }
        },
        cnjiewhr34iuiehs: {
            id: 99,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '.menu ul>li dl',
                'openListenPlayStatus': false,
                // 'openListenPlayTime': true,
                'getCurrentIndexByOption': () => {
                    return new Promise(resolve => {
                        resolve(1);
                    });
                },
                'playNext': () => {
                    return new Promise(resolve => {
                        let preVideoSrc = MyTool.getValue('preVideoSrc');
                        if (ElementObj.$video.src == preVideoSrc) {
                            toolOption.CtxMain.play();
                        }
                        else {
                            MyTool.setValue('preVideoSrc', ElementObj.$video.src);
                            setTimeout(() => {
                                location.reload();
                            }, 3000);
                        }
                    });
                }
            }
        },
        rrhisdgf283y7jvdf: {
            id: 100,
            mainClass: 'rrhisdgf283y7jvdf',
        },
        f6872: {
            id: 101,
            mainClass: 'f6872'
        },
        a782: {
            id: 102,
            mainClass: 'rrhisdgf283y7jvdf',
        },
        su862v: {
            id: 103,
            mainClass: 'CTXCommon',
            option: {
                'nodeListClass': '#m-chapter-ul li a',
                'openListenPlayStatus': false,
                'openListenPlayTime': true,
                'activeClass': 'z-crt'
            }
        },
        bfuew28: {
            id: 105,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '',
                openListenPlayStatus: false,
                videoEle: () => {
                    return new Promise(resolve => {
                        let count = 0;
                        let Timer = setInterval(() => {
                            count += 1;
                            // @ts-ignore
                            ElementObj.$video = document.querySelectorAll('iframe')[2].contentDocument.querySelector('iframe').contentDocument.querySelector('video');
                            if (!!ElementObj.$video) {
                                clearInterval(Timer);
                                resolve(1);
                                return;
                            }
                            if (count >= 7) {
                                clearInterval(Timer);
                                resolve(2);
                            }
                        }, 1000);
                    });
                },
                _init: () => {
                    return new Promise(resolve => {
                        let interval = setInterval(() => {
                            let $iframe = document.querySelectorAll('iframe')[2];
                            if ($iframe) {
                                // @ts-ignore
                                ElementObj.$allTask = $iframe.contentDocument.querySelectorAll('.s_point');
                                if (ElementObj.$allTask.length > 0) {
                                    clearInterval(interval);
                                    ElementObj.$handleSpeedUp.style.display = 'none';
                                    toolOption.CtxMain.getCurrentIndex();
                                }
                            }
                        });
                    });
                },
                getCurrentIndexByOption: () => {
                    return new Promise(resolve => {
                        for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                            let item = ElementObj.$allTask[i];
                            if (item.classList.contains('s_pointerct')) {
                                resolve(i);
                                break;
                            }
                        }
                    });
                },
                listenRebortFn: () => {
                    let $btn = document.querySelector('.layui-layer-btn0');
                    $btn === null || $btn === void 0 ? void 0 : $btn.click();
                    ElementObj.$video.play();
                }
            }
        },
        sd199: {
            id: 104,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '',
                openListenPlayStatus: false,
                videoEle: () => {
                    return new Promise(resolve => {
                        let count = 0;
                        let Timer = setInterval(() => {
                            count += 1;
                            // @ts-ignore
                            ElementObj.$video = document.querySelectorAll('video')[1];
                            if (!!ElementObj.$video && ElementObj.$video.src) {
                                clearInterval(Timer);
                                resolve(1);
                                return;
                            }
                            if (count >= 7) {
                                clearInterval(Timer);
                                resolve(2);
                            }
                        }, 1000);
                    });
                },
                _init: (that) => {
                    return new Promise(resolve => {
                        let count = 10;
                        let interval = setInterval(() => {
                            if (count < 0) {
                                showTip('🔊未找到目录,请在此界面手动更换一个视频', 4000);
                                clearInterval(interval);
                            }
                            // @ts-ignore
                            // ElementObj.$allTask = document.querySelectorAll('.sf-with-ul')[1].nextSibling?.querySelectorAll('li a[id]');
                            ElementObj.$allTask = document.querySelectorAll('ul a[id]');
                            if (ElementObj.$allTask.length > 0) {
                                clearInterval(interval);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                that.getCurrentIndex();
                            }
                            count += 1;
                        }, 500);
                    });
                },
                getCurrentIndexByOption: () => {
                    return new Promise(resolve => {
                        let $cur = document.querySelector('.learn-title').innerText.replace(/ /g, '');
                        for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                            let item = ElementObj.$allTask[i];
                            if (item.innerText.replace(/ /g, '') == $cur) {
                                resolve(i);
                                break;
                            }
                        }
                    });
                },
            }
        },
        f13v: {
            id: 106,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '.el-menu li',
                activeClass: 'is-active',
                openListenPlayStatus: false,
            }
        },
        g32f: {
            id: 107,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '.bb_e8edf0_dash div[id]',
                activeClass: 'cur',
                openListenPlayStatus: false,
                _init: () => {
                    return new Promise(resolve => {
                        let interval = setInterval(() => {
                            ElementObj.$video = document.querySelector('video');
                            if (ElementObj.$video) {
                                clearInterval(interval);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                toolOption.CtxMain._o1();
                            }
                        });
                    });
                },
                playNext: () => {
                    return new Promise(resolve => {
                        let $nextBtn = document.querySelector('a.btItem.Next');
                        $nextBtn.click();
                    });
                }
            }
        },
        ss10: {
            id: 107,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '.menu_body span>a.chapter',
                _init: () => {
                    return new Promise(resolve => {
                        let timer = setInterval(() => {
                            var _c, _d, _f, _g;
                            ElementObj.$parentNodes = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelectorAll('.class-wrapper');
                            if (ElementObj.$parentNodes && ElementObj.$parentNodes.length) {
                                clearInterval(timer);
                                let old = localStorage.getItem('curClassName');
                                for (let i = 0; i < ElementObj.$parentNodes.length; i++) {
                                    let item = ElementObj.$parentNodes[i];
                                    let name = item.querySelector('.kcmc').innerText.trim();
                                    if (name == old) {
                                        let nextBtn = ElementObj.$parentNodes[i + 1].querySelector('input.btn');
                                        nextBtn.click();
                                        break;
                                    }
                                }
                                resolve(true);
                            }
                            if (location.pathname == '/student/IndexWlkc_BootStrap.aspx') {
                                clearInterval(timer);
                                ElementObj.$parentNodes = (_g = (_f = document.querySelector('iframe')) === null || _f === void 0 ? void 0 : _f.contentDocument) === null || _g === void 0 ? void 0 : _g.querySelectorAll('.menu_body span>a[title]');
                                if (ElementObj.$parentNodes && ElementObj.$parentNodes.length) {
                                    ElementObj.$parentNodes[0].click();
                                }
                                resolve(true);
                            }
                            ElementObj.$allTask = document.querySelectorAll('.menu_body span>a.chapter');
                            if (ElementObj.$allTask.length) {
                                clearInterval(timer);
                                // @ts-ignore
                                let curClassName = document.querySelector('.glyphicon-home').innerText.trim();
                                localStorage.setItem('curClassName', curClassName);
                                toolOption.CtxMain.getCurrentIndex();
                                resolve(true);
                            }
                        }, 1000);
                    });
                },
                getCurrentIndexByOption: () => {
                    return new Promise(resolve => {
                        for (let i = 0; i < ElementObj.$allTask.length; i++) {
                            let item = ElementObj.$allTask[i];
                            if (item.style.color == "rgb(51, 122, 183)") {
                                resolve(i);
                                break;
                            }
                        }
                    });
                },
                playFn: (that) => __awaiter(this, void 0, void 0, function* () {
                    // @ts-ignore
                    let wlkcID = /wlkcID=(.+)&wlk/.exec(location.search)[1];
                    // @ts-ignore
                    let wlkckkID = /wlkckkID=(.+)&/.exec(location.search)[1];
                    // @ts-ignore
                    let zjid = /zjid=(.+)/.exec(location.search)[1];
                    // @ts-ignore
                    let learnTime = document.querySelector('#lbl_videoTime').innerText.trim();
                    // @ts-ignore
                    let __VIEWSTATE = unsafeWindow.__VIEWSTATE.value;
                    // @ts-ignore
                    let __VIEWSTATEGENERATOR = unsafeWindow.__VIEWSTATEGENERATOR.value;
                    // @ts-ignore
                    let __EVENTVALIDATION = unsafeWindow.__EVENTVALIDATION.value;
                    if (!wlkcID || !wlkckkID || !zjid || !learnTime || !__VIEWSTATE || !__VIEWSTATEGENERATOR || !__EVENTVALIDATION) {
                        alert('参数错误');
                        return;
                    }
                    yield fetch(`${location.origin}/student/BootStrap_Video.aspx?wlkcID=${wlkcID}&wlkckkID=${wlkckkID}&zjid=${zjid}`, {
                        "credentials": "include",
                        "headers": {
                            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0",
                            "Accept": "*/*",
                            "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
                            "X-Requested-With": "XMLHttpRequest",
                            "X-MicrosoftAjax": "Delta=true",
                            "Cache-Control": "no-cache",
                            "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
                        },
                        "body": `ScriptManager1=UpdatePanel%7CbtnYXXXSJ&__EVENTTARGET=&__EVENTARGUMENT=&postLearnTime=${Number(learnTime)}&shijiLearnTime=${Number(learnTime)}&learnTime=${Number(learnTime)}&videoState=pause&__VIEWSTATE=${encodeURIComponent(__VIEWSTATE)}&__VIEWSTATEGENERATOR=${__VIEWSTATEGENERATOR}&__EVENTVALIDATION=${encodeURIComponent(__EVENTVALIDATION)}&__ASYNCPOST=true&btnYXXXSJ=`,
                        "method": "POST",
                        "mode": "cors"
                    });
                    toolOption.CtxMain.playNext(that);
                }),
                playNext: (that) => {
                    return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            location.href = `${location.origin}/student/IndexTemplate_BootStrap.aspx`;
                            return;
                        }
                        yield sleep(2000);
                        that.currentIndex += 1;
                        let $nextBtn = ElementObj.$allTask[that.currentIndex];
                        $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                        setTimeout(() => {
                            that._o1();
                        }, 2000);
                    }));
                }
            }
        },
        rs01: {
            id: 108,
            mainClass: 'CTXCommon',
            option: {
                activeClass: '',
                nodeListClass: '',
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            ElementObj.$allTask = document.querySelectorAll('.rank-3>li');
                            if (location.pathname.indexOf('/home/course/') != -1 && ElementObj.$allTask.length > 0) {
                                clearInterval(interval);
                                that.getCurrentIndex();
                                return;
                            }
                            let $navBtn2 = document.querySelector('.navBtn2');
                            if (location.pathname.indexOf('/home/course/') != -1 && $navBtn2) {
                                clearInterval(interval);
                                setTimeout(() => {
                                    that._init();
                                }, 2000);
                                $navBtn2.click();
                            }
                            if (location.pathname == '/home/learn/index') {
                                let $active = document.querySelector('.basic.active');
                                if ($active) {
                                    clearInterval(interval);
                                    // @ts-ignore
                                    $active.nextElementSibling.querySelector('.basic').click();
                                    setTimeout(() => {
                                        that.pdPlayFn(location.href);
                                    }, 3000);
                                }
                            }
                        }), 1000);
                    });
                },
                getCurrentIndexByOption() {
                    return new Promise(resolve => {
                        for (let item of ElementObj.$allTask) {
                            // @ts-ignore
                            let name = item.querySelector('a');
                            if (name.innerText.indexOf('测试') != -1)
                                continue;
                            let $basic = item.querySelector('.basic');
                            if (!$basic.classList.contains('looked')) {
                                MyTool.setValue('homeUrl', location.href);
                                name.click();
                                break;
                            }
                        }
                        resolve(0);
                    });
                },
                playNext() {
                    return __awaiter(this, void 0, void 0, function* () {
                        location.href = MyTool.getValue('homeUrl');
                    });
                },
                listenRebortFn() {
                    let $playBtn = document.querySelector('.vjs-big-play-button');
                    $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click();
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                }
            }
        },
        das01: {
            id: 109,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: 'ul>li:first-child',
                activeClass: 'list',
                openListenPlayStatus: false,
                _init: () => {
                    return new Promise(resolve => {
                        let timer = setInterval(() => {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            if (location.pathname == '/online/learn') {
                                let $btn = document.querySelector('.toStudy');
                                if ($btn) {
                                    clearInterval(timer);
                                    setTimeout(() => {
                                        window.close();
                                    }, 1000 * 10);
                                    $btn.click();
                                    resolve(true);
                                    return;
                                }
                            }
                            if (location.pathname == '/admin/lock/Study') {
                                ElementObj.$allTask = document.querySelectorAll('ul>li');
                                if (ElementObj.$allTask.length) {
                                    clearInterval(timer);
                                    toolOption.CtxMain.getCurrentIndex();
                                    resolve(true);
                                    return;
                                }
                            }
                        }, 500);
                    });
                },
                listenRebortFn: () => {
                    let $ipt = document.querySelector('.layui-input');
                    if ($ipt) {
                        let num = $ipt.getAttribute('data-num3');
                        // @ts-ignore
                        $ipt.value = num;
                        document.querySelector('.layui-layer-btn0').click();
                    }
                },
                playNext: (that) => {
                    return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            location.href = 'http://hzsdadmin.zhihuiteacher.com/online/learn';
                            return;
                        }
                        yield sleep(2500);
                        that.currentIndex += 1;
                        let $nextBtn = ElementObj.$allTask[that.currentIndex];
                        $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                        setTimeout(() => {
                            that._o1();
                        }, 5000);
                    }));
                }
            }
        },
        aa101: {
            id: 110,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '.level2>a',
                activeClass: 'cur',
            }
        },
        sdf1: {
            id: 111,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '.ml_2 li',
                activeClass: 'cur',
                nextClass: '.littletit',
                openListenPlayTime: false,
                getCurrentIndexByOption: () => {
                    return new Promise(resolve => {
                        for (let i = 0; i < ElementObj.$allTask.length; i++) {
                            let item = ElementObj.$allTask[i].querySelector('.littlebot');
                            let $status = item.querySelector('.el-progress');
                            let title = ElementObj.$allTask[i].querySelector('.elli').innerText.trim();
                            if ($status && (title.indexOf('在线作业') == -1 && title.indexOf('习题测验') == -1 && title.indexOf('Test') == -1)) {
                                resolve(i);
                                break;
                            }
                        }
                    });
                },
                listenRebortFn: () => {
                    var _c;
                    let $cur = document.querySelector('._active.elli');
                    let $parent = (_c = $cur === null || $cur === void 0 ? void 0 : $cur.parentElement) === null || _c === void 0 ? void 0 : _c.parentElement;
                    let $icon = $parent.querySelector('.el-icon-circle-check');
                    let txt = $cur.innerText.trim();
                    if ($icon || txt == '在线作业' || txt.indexOf('习题测验') != -1 || txt.indexOf('Test') != -1) {
                        toolOption.CtxMain.playNext();
                    }
                }
            }
        },
        sdf3: {
            id: 112,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '#classes li',
                activeClass: 'li_current_index',
                openListenPlayTime: false,
            }
        },
        dsfs: {
            id: 112,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: '#content a',
                _init() {
                    return new Promise(resolve => {
                        let timer = setInterval(() => {
                            ElementObj.$allTask = document.querySelectorAll('#content a');
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            if (ElementObj.$allTask.length) {
                                clearInterval(timer);
                                let preClassName = MyTool.getValue('preClassName');
                                if (!preClassName) {
                                    MyTool.setValue('homeUrl', location.href);
                                    ElementObj.$allTask[0].click();
                                }
                                else {
                                    for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                        let item = ElementObj.$allTask[i];
                                        if (preClassName == item.innerText.trim()) {
                                            MyTool.setValue('homeUrl', location.href);
                                            ElementObj.$allTask[i + 1].click();
                                            break;
                                        }
                                    }
                                }
                                resolve(true);
                            }
                            let btn = document.querySelector('.item-title.label h1 a');
                            if (btn && location.pathname == '/m/Exam/Student/startStudy') {
                                clearInterval(timer);
                                btn.click();
                                resolve(true);
                            }
                            if (location.pathname == '/m/Exam/Student/startStudy') {
                                clearInterval(timer);
                                toolOption.CtxMain.pdPlayFn(location.href);
                                resolve(true);
                            }
                        }, 500);
                    });
                },
                playNext(that) {
                    return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
                        let til = document.querySelector('.startStudy-title>p');
                        let curClassName = til === null || til === void 0 ? void 0 : til.innerText.trim();
                        MyTool.setValue('preClassName', curClassName);
                        let $btn = document.querySelector('.bottom-pc-btn button');
                        $btn.click();
                        yield sleep(2000);
                        setTimeout(() => {
                            location.reload();
                        }, 3000);
                        document.querySelector('.modal-button.modal-button-bold').click();
                    }));
                }
            }
        },
        bsd11: {
            id: 114,
            mainClass: 'CTXCommon',
            option: {
                nodeListClass: 'a.title',
                getCurrentIndexByOption() {
                    return new Promise((resolve, reject) => {
                        for (let i = 0; i < ElementObj.$allTask.length; i++) {
                            let item = ElementObj.$allTask[i];
                            if (item.parentElement.classList.contains('active')) {
                                resolve(i);
                                break;
                            }
                        }
                    });
                }
            }
        },
        s221s: {
            id: 115,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.tab-content-desc',
                activeClass: 'desc-item-sel',
                playFn: (that) => __awaiter(this, void 0, void 0, function* () {
                    let studyType = yield that.getVideoDom();
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    yield sleep(1000);
                    ElementObj.$video.currentTime += 7200;
                    yield sleep(1000);
                    ElementObj.$video.currentTime += 7200;
                    yield sleep(1000);
                    that.playNext();
                })
            }
        },
        ifsbds: {
            id: 116,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.tab-content-desc',
                activeClass: 'desc-item-sel',
                _init: () => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        if (location.pathname == '/kaoshi_qnzzxy/majorlist.html') {
                            clearInterval(timer);
                            alert('请选择一个课程,点击进去');
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.list-group-item');
                        if (ElementObj.$allTask.length > 0) {
                            clearInterval(timer);
                            for (let item of ElementObj.$allTask) {
                                let $status = item.querySelector('.list-group-item-text.text-muted');
                                if ($status.innerText != '学习进度:100.00%') {
                                    MyTool.setValue('homeUrl', location.href);
                                    item.click();
                                    break;
                                }
                            }
                        }
                        if (location.pathname == '/kaoshi_qnzzxy/test.html') {
                            clearInterval(timer);
                            toolOption.CtxMain.pdPlayFn(location.href);
                        }
                    }, 500);
                }),
                playNext: (that) => __awaiter(this, void 0, void 0, function* () {
                    location.href = MyTool.getValue('homeUrl');
                })
            }
        },
        sfps: {
            id: 117,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '',
                activeClass: '',
                openListenPlayStatus: true,
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        ElementObj.$allTask = document.querySelectorAll('.lesson li');
                        if (ElementObj.$allTask.length) {
                            clearInterval(timer);
                            for (let item of ElementObj.$allTask) {
                                if (!item.classList.contains('history')) {
                                    MyTool.setValue('homeUrl', location.href);
                                    item.querySelector('a').click();
                                    break;
                                }
                            }
                        }
                        if (location.pathname == '/course-section-video-play') {
                            clearInterval(timer);
                            window.alert = () => {
                            };
                            that._o1();
                        }
                    }), 200);
                }),
                playNext: (that) => __awaiter(this, void 0, void 0, function* () {
                    window.alert = () => {
                    };
                    location.href = MyTool.getValue('homeUrl');
                }),
                listenRebortFn: () => __awaiter(this, void 0, void 0, function* () {
                    let $checkCode = document.querySelector('#checkCode');
                    if ($checkCode.innerText) {
                        let $inputCode = document.querySelector('#inputCode');
                        $inputCode.value = $checkCode.innerText;
                        yield sleep(1500);
                        document.querySelector('.Button1.Button').click();
                    }
                    window.alert = () => false;
                    if (ElementObj.$video && (ElementObj.$video.currentTime >= ElementObj.$video.duration)) {
                        toolOption.CtxMain.playNext();
                    }
                })
            }
        },
        sf1101: {
            id: 118,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: 'span.studiedLesson',
                activeClass: 'RED',
                openListenPlayStatus: true,
                getCurrentIndex(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        for (let i = 0; i < ElementObj.$allTask.length; i++) {
                            let item = ElementObj.$allTask[i];
                            if (!item.classList.contains('studiedLessonMark')) {
                                that.currentIndex = i;
                                showTip('初始化完成,3秒后开始自动播放', 3000);
                                item.click();
                                setTimeout(() => {
                                    that.pdPlayFn(location.href);
                                }, 2000);
                                break;
                            }
                        }
                        if (that.currentIndex === -1) {
                            alert('当前章节所有视频已经学习完');
                        }
                    });
                },
                videoEle: () => {
                    return new Promise(resolve => {
                        let count = 0;
                        let Timer = setInterval(() => {
                            var _c, _d;
                            count += 1;
                            ElementObj.$video = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('video');
                            if (!!ElementObj.$video) {
                                clearInterval(Timer);
                                resolve(1);
                                return;
                            }
                            if (count >= 7) {
                                clearInterval(Timer);
                                resolve(2);
                            }
                        }, 1000);
                    });
                },
                listenRebortFn(that) {
                    var _c, _d;
                    return __awaiter(this, void 0, void 0, function* () {
                        let $btn = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('#popup_panel input');
                        if ($btn) {
                            $btn.click();
                            that.play();
                        }
                    });
                },
                playNext() {
                    return __awaiter(this, void 0, void 0, function* () {
                        location.reload();
                    });
                }
            }
        },
        usd01: {
            id: 119,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '',
                activeClass: '',
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $icon = document.querySelector('.iconfont.icon-fujian');
                        if ($icon) {
                            clearInterval(timer);
                            showTip('判断此视频章节为非视频,即将自动跳过', 3000);
                            yield sleep(2500);
                            that.playNext();
                            return;
                        }
                        ElementObj.$video = document.querySelector('video');
                        if (ElementObj.$video) {
                            clearInterval(timer);
                            document.querySelector('.xt_video_player_common_icon').click();
                            that._o1();
                            return;
                        }
                        if (location.pathname.indexOf('/v2/web/studentLog') != -1) {
                            clearInterval(timer);
                            let classroom_id = location.pathname.replace('/v2/web/studentLog/', '');
                            forData: for (let item of new Array(100)) {
                                let page = 0;
                                let url = `https://www.yuketang.cn/v2/api/web/logs/learn/${classroom_id}?actype=15&page=${page}&offset=20&sort=-1`;
                                let ClassData = yield getClassData(url);
                                if (!ClassData.data.activities) {
                                    break;
                                }
                                let arr = ClassData.data.activities.map((item) => {
                                    return item.courseware_id;
                                });
                                let option = {
                                    cid: classroom_id,
                                    new_id: arr
                                };
                                let classStatus = yield getStatus(JSON.stringify(option));
                                for (let item2 of ClassData.data.activities) {
                                    let courseware_id = item2.courseware_id;
                                    //
                                    if (classStatus.data[courseware_id] && classStatus.data[courseware_id].total_done != 1) {
                                        let classUrl = `https://www.yuketang.cn/v2/web/xcloud/video-student/${classroom_id}/${item2.content.leaf_id}`;
                                        MyTool.setValue('homeUrl', location.href);
                                        location.href = classUrl;
                                        break forData;
                                    }
                                }
                                page += 1;
                            }
                        }
                    }), 500);
                    function getClassData(url) {
                        let csrftoken = document.cookie.split(';')[0].replace('csrftoken=', '');
                        return new Promise(resolve => {
                            fetch(url, {
                                "headers": {
                                    "accept": "application/json, text/plain, */*",
                                    "accept-language": "zh-CN,zh;q=0.9",
                                    "classroom-id": "19933500",
                                    "priority": "u=1, i",
                                    "sec-ch-ua": "\"Google Chrome\";v=\"125\", \"Chromium\";v=\"125\", \"Not.A/Brand\";v=\"24\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "same-origin",
                                    "university-id": "2760",
                                    "uv-id": "2760",
                                    "x-client": "web",
                                    "x-csrftoken": csrftoken,
                                    "xt-agent": "web",
                                    "xtbz": "ykt"
                                },
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": null,
                                "method": "GET",
                                "mode": "cors",
                                "credentials": "include"
                            }).then(res => res.json()).then(res => resolve(res));
                        });
                    }
                    function getStatus(option) {
                        let csrftoken = document.cookie.split(';')[0].replace('csrftoken=', '');
                        return new Promise(resolve => {
                            fetch("https://www.yuketang.cn/mooc-api/v1/lms/learn/course/pub_new_pro", {
                                "headers": {
                                    "accept": "application/json, text/plain, */*",
                                    "accept-language": "zh-CN,zh;q=0.9",
                                    "classroom-id": "19933500",
                                    "content-type": "application/json;charset=UTF-8",
                                    "priority": "u=1, i",
                                    "sec-ch-ua": "\"Google Chrome\";v=\"125\", \"Chromium\";v=\"125\", \"Not.A/Brand\";v=\"24\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "same-origin",
                                    "university-id": "2760",
                                    "uv-id": "2760",
                                    "x-csrftoken": csrftoken,
                                    "xt-agent": "web",
                                    "xtbz": "ykt"
                                },
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": option,
                                "method": "POST",
                                "mode": "cors",
                                "credentials": "include"
                            }).then(res => res.json()).then(res => resolve(res));
                        });
                    }
                }),
                playNext: () => __awaiter(this, void 0, void 0, function* () {
                    showTip('✅✅✅即将切换下一个章节');
                    yield sleep(2000);
                    location.href = MyTool.getValue('homeUrl');
                })
            }
        },
        sdhfks01: {
            id: 120,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.video .chapterhead.chapterhead1 li',
                activeClass: 'current',
                getCurrentIndexByOption: () => {
                    return new Promise(resolve => {
                        let $span = document.querySelector('.video_header .video_number');
                        let $num = $span.innerText.replace(/第|讲/g, '');
                        resolve(Number($num) - 1);
                    });
                },
                playNext(that) {
                    return new Promise(resolve => {
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            alert('已全部播放完');
                            return;
                        }
                        showTip('✅✅✅即将自动切换下一节');
                        let tiemr = setInterval(() => {
                            let $btn = document.querySelector('.el-message-box__btns button');
                            if ($btn) {
                                that.currentIndex += 1;
                                clearInterval(tiemr);
                                setTimeout(() => {
                                    that._o1();
                                }, 4000);
                                $btn.click();
                            }
                        }, 500);
                    });
                }
            }
        },
        s01r: {
            id: 121,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.video .chapterhead.chapterhead1 li',
                activeClass: 'current',
                openListenPlayTime: true,
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        // 公需课2
                        ElementObj.$allTask = document.querySelectorAll('.ul-course li');
                        if (location.host === 'jxjy.ahhjsoft.com' && ElementObj.$allTask) {
                            clearInterval(timer);
                            showTip('🔊🔊🔊仅支持公需课4、公需课3', 4000);
                            return;
                        }
                        // 公需课3
                        ElementObj.$allTask = document.querySelectorAll('.zdBox');
                        if (location.host === 'ah.zhuanjipx.com' && ElementObj.$allTask.length) {
                            clearInterval(timer);
                            showTip('🔊🔊🔊正在初始化', 4000);
                            that.classType = 3;
                            for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                let item = ElementObj.$allTask[i];
                                if (item.classList.contains('childBox_item_on')) {
                                    that.currentIndex = i;
                                    showTip('✅✅✅初始化完成,开始播放', 2000);
                                    that._o1();
                                    break;
                                }
                            }
                            return;
                        }
                        // 公需课4
                        let $parent = document.querySelectorAll('.ant-collapse-item');
                        if ($parent.length > 0) {
                            clearInterval(timer);
                            showTip('🔊🔊🔊正在初始化', 4000);
                            that.classType = 4;
                            for (let item of $parent) {
                                if (!item.classList.contains('ant-collapse-item-active')) {
                                    item.querySelector('.ant-collapse-header').click();
                                    yield sleep(100);
                                }
                            }
                            ElementObj.$allTask = document.querySelectorAll('.video_box_k_t_lx');
                            for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                let item = ElementObj.$allTask[i];
                                if (item.classList.contains('video_box_k_active')) {
                                    that.currentIndex = i;
                                    showTip('✅✅✅初始化完成,开始播放', 2000);
                                    that._o1();
                                    break;
                                }
                            }
                        }
                    }), 300);
                }),
                playFn: (that) => __awaiter(this, void 0, void 0, function* () {
                    var _c;
                    yield that.getVideoDom();
                    if (that.classType === 2 || that.classType === 3) {
                        clearInterval(that.timer);
                        clearInterval(that.listenVidoeStatusTimer);
                        clearInterval(that.listenRebortTime);
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        setTimeout(() => {
                            ElementObj.$video.playbackRate = toolOption.accelerator;
                        }, 3000);
                        ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                            showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                            that.playNext(that);
                        }));
                        ElementObj.$video.addEventListener('pause', () => {
                            setTimeout(() => {
                                ElementObj.$video.volume = 0;
                                ElementObj.$video.play();
                            }, 1500);
                        });
                    }
                    if (that.classType === 4) {
                        yield that.changeHtml($el('#video-content-box'));
                        yield that.getVideoDom();
                        that.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅');
                        yield sleep(1000);
                        showTip('🔉课件正在学习,请务点击或长时间隐藏');
                        ElementObj.$video.volume = 0;
                        (_c = document.querySelector('.vjs-big-play-button')) === null || _c === void 0 ? void 0 : _c.click();
                        ElementObj.$video.play();
                        setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                            let videoDuration = Math.ceil(ElementObj.$video.duration);
                            if (!videoDuration) {
                                alert('视频时间错误,请刷新页面重试');
                                return;
                            }
                            let balanceTime = 0;
                            for (let item of new Array(10000)) {
                                if (balanceTime >= videoDuration) {
                                    ElementObj.$video.currentTime = videoDuration - 10;
                                    yield sleep(1000);
                                    ElementObj.$video.currentTime = videoDuration;
                                    that.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉');
                                    yield sleep(3000);
                                    that.playNext();
                                    break;
                                }
                                if (item % 60 == 0 && item > 0) {
                                    ElementObj.$video.currentTime = balanceTime;
                                }
                                balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator;
                                that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`);
                                yield sleep(1000);
                            }
                        }), 2000);
                    }
                }),
                playNext(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        location.reload();
                    });
                }
            }
        },
        hsduf: {
            id: 122,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.menu_body dd',
                activeClass: 'active',
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $nav = document.querySelector('#a2');
                        if (!!$nav) {
                            clearInterval(timer);
                            $nav.click();
                            yield MyTool.sleep(2500);
                            let $parents = document.querySelectorAll('li[data-trainid]');
                            for (let i = 0; i < $parents.length; i++) {
                                let item = $parents[i];
                                MyTool.setValue('homeUrl', location.href);
                                setTimeout(() => {
                                    window.close();
                                }, 20 * 1000);
                                item.querySelector('a').click();
                            }
                        }
                        ElementObj.$allTask = document.querySelectorAll('.menu_body dd');
                        if (ElementObj.$allTask.length > 0) {
                            clearInterval(timer);
                            let isFinish = true;
                            for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                let item = ElementObj.$allTask[i];
                                if (!item.classList.contains('active')) {
                                    isFinish = false;
                                    that.currentIndex = i;
                                    if (!item.classList.contains('hover')) {
                                        item.querySelector('a').click();
                                    }
                                    showTip('✅✅✅正在初始化', 3000);
                                    that._o1();
                                    break;
                                }
                            }
                            if (isFinish) {
                                let homeurl = MyTool.getValue('homeUrl') || 'https://www.ejxjy.com/a/sys/portal/person';
                                location.href = homeurl;
                            }
                        }
                    }), 300);
                }),
                openListenPlayTime: true,
                playNext() {
                    return __awaiter(this, void 0, void 0, function* () {
                        location.reload();
                    });
                },
                playFn: (that) => __awaiter(this, void 0, void 0, function* () {
                    yield that.getVideoDom();
                    yield that.changeHtml(ElementObj.$video.parentElement);
                    let videoDuration = Math.ceil(ElementObj.$video.duration);
                    let balanceTime = 0;
                    // let $id = (document.querySelector('#studentRuleId') as HTMLInputElement | null)?.value
                    let $id = yield getStudentRuleId();
                    if (!$id || !videoDuration) {
                        showTip('视频时间错误,请刷新页面重试');
                        location.reload();
                        return;
                    }
                    setInterval(() => {
                        let jbox = document.querySelector('.jbox-button-focus');
                        jbox === null || jbox === void 0 ? void 0 : jbox.click();
                    }, 300);
                    let videoTime = ElementObj.$video.duration;
                    for (let item of new Array(10000)) {
                        let res = yield saveData(balanceTime, videoTime, $id);
                        if (res != false) {
                            if (balanceTime >= videoDuration) {
                                that.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉');
                                yield sleep(3000);
                                that.playNext(that);
                                break;
                            }
                        }
                        if (res.data == 'success') {
                            balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator;
                        }
                        that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`);
                        yield sleep(500);
                    }
                    function saveData(time, videoTime, id) {
                        return new Promise(resolve => {
                            try {
                                fetch(`https://www.ejxjy.com/a/onlinelearn/stuCourse/saveVideo?id=${id}`, {
                                    "headers": {
                                        "accept": "*/*",
                                        "accept-language": "zh-CN,zh;q=0.9",
                                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                                        "priority": "u=0, i",
                                        "sec-ch-ua": "\"Google Chrome\";v=\"125\", \"Chromium\";v=\"125\", \"Not.A/Brand\";v=\"24\"",
                                        "sec-ch-ua-mobile": "?0",
                                        "sec-ch-ua-platform": "\"Windows\"",
                                        "sec-fetch-dest": "empty",
                                        "sec-fetch-mode": "cors",
                                        "sec-fetch-site": "same-origin",
                                        "x-requested-with": "XMLHttpRequest"
                                    },
                                    "referrerPolicy": "strict-origin-when-cross-origin",
                                    "body": `nowTime=${time}&videoTime=${videoTime}`,
                                    "method": "POST",
                                    "mode": "cors",
                                    "credentials": "include"
                                }).then(res => res.json()).then(res => resolve(res));
                            }
                            catch (e) {
                                resolve(false);
                            }
                        });
                    }
                    function getStudentRuleId() {
                        return new Promise(resolve => {
                            fetch(location.href, {
                                "headers": {
                                    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
                                    "accept-language": "zh-CN,zh;q=0.9",
                                    "priority": "u=0, i",
                                    "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "document",
                                    "sec-fetch-mode": "navigate",
                                    "sec-fetch-site": "same-origin",
                                    "sec-fetch-user": "?1",
                                    "upgrade-insecure-requests": "1"
                                },
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": null,
                                "method": "GET",
                                "mode": "cors",
                                "credentials": "include"
                            }).then(res => res.text()).then(res => {
                                var _c;
                                let $id = (_c = res.match(/saveVideo\?id=(.+)"/)) === null || _c === void 0 ? void 0 : _c[1];
                                resolve($id);
                            });
                        });
                    }
                }),
            }
        },
        pa1: {
            id: 123,
            mainClass: "CTXCommon",
            option: {
                activeClass: '',
                nodeListClass: '',
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => {
                        var _c, _d, _f;
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $nav = document.querySelectorAll('.navItem');
                        if ($nav.length > 0) {
                            if (!((_c = $nav[1].querySelector('span')) === null || _c === void 0 ? void 0 : _c.classList.contains('active'))) {
                                // @ts-ignore
                                $nav[1].click();
                            }
                        }
                        ElementObj.$parentNodes = (_f = (_d = document.querySelector('iframe')) === null || _d === void 0 ? void 0 : _d.contentDocument) === null || _f === void 0 ? void 0 : _f.querySelectorAll('.itemList .contentItem');
                        if (ElementObj.$parentNodes.length > 0) {
                            clearInterval(timer);
                            for (let item of ElementObj.$parentNodes) {
                                if (!!item.querySelector('.ready')) {
                                    MyTool.setValue('homeUrl', location.href);
                                    item.querySelector('a').click();
                                    break;
                                }
                            }
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.listGroup .listItem');
                        if (ElementObj.$allTask.length > 0) {
                            clearInterval(timer);
                            let isDone = true;
                            for (let item of ElementObj.$allTask) {
                                let status = item.querySelector('button');
                                if (status.innerText === '未学习') {
                                    isDone = false;
                                    setTimeout(() => {
                                        that._o1();
                                    }, 3000);
                                    item.querySelector('.text').click();
                                    break;
                                }
                            }
                            if (isDone) {
                                location.href = MyTool.getValue('homeUrl') || 'https://aqscpx.91huayi.com/Exercise/ExerciseHome/index';
                            }
                            return;
                        }
                    }, 500);
                })
            }
        },
        bj1: {
            id: 124,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '',
                activeClass: '',
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        var _d;
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        ElementObj.$parentNodes = document.querySelectorAll('.iv-personal-course-content li');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(timer);
                            forData: for (let item of new Array(2)) {
                                for (let i = 0; i < ElementObj.$parentNodes.length; i++) {
                                    let $li = ElementObj.$parentNodes[i];
                                    let status = $li.querySelector('.ivu-progress-text span').innerText;
                                    if (parseInt(status) != 100) {
                                        MyTool.setValue('homeUrl', location.href);
                                        $li.querySelectorAll('.iv-course-myClass span')[1].click();
                                        break forData;
                                    }
                                }
                                let $nextBtn = document.querySelector('.iv-page-next');
                                $nextBtn.click();
                                showTip('🔊正在切换下一页...', 3000);
                                yield sleep(3000);
                            }
                            return;
                        }
                        ElementObj.$allTask = (_d = document.querySelector('.iv-course-play-detail-menu-item')) === null || _d === void 0 ? void 0 : _d.querySelectorAll('li');
                        if (ElementObj.$allTask.length > 0) {
                            clearInterval(timer);
                            for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                let item = ElementObj.$allTask[i];
                                let status = item.querySelector('.iv-fs-12').innerText;
                                if (parseInt(status) != 100) {
                                    that.currentIndex = i;
                                    item.click();
                                    showTip('✅✅✅正在初始化', 3000);
                                    setTimeout(() => {
                                        that._o1();
                                    }, 3000);
                                    break;
                                }
                            }
                        }
                    }), 300);
                }),
                playNext(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            let homeurl = MyTool.getValue('homeUrl') || 'https://bjce.bjdj.gov.cn/#/personalSpace/MyCourse';
                            window.open(homeurl);
                            window.close();
                            return;
                        }
                        that.currentIndex += 1;
                        let $nextBtn = ElementObj.$allTask[that.currentIndex];
                        $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                        setTimeout(() => {
                            that._o1();
                        }, 2000);
                    });
                }
            }
        },
        sd2: {
            id: 125,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.numCHapter',
                activeClass: 'active',
            }
        },
        sfd9: {
            id: 126,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.videoList .item',
                activeClass: 'active',
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $iframe = document.querySelector('iframe');
                        if (location.host === 'jxzj.zpwedu.com' && $iframe) {
                            location.href = $iframe.src;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.videoList .item');
                        if (ElementObj.$allTask.length > 0 && location.host === 'jxzjstu.zpwedu.com') {
                            clearInterval(timer);
                            for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                let item = ElementObj.$allTask[i];
                                let statusDom = item.querySelectorAll('div>div')[2];
                                // @ts-ignore
                                let num = /\((.+)\)/.exec(statusDom.innerText)[1];
                                console.log('初始化num==>>', num);
                                if (num != '100%') {
                                    if (!item.classList.contains('active')) {
                                        item.click();
                                    }
                                    showTip('✅✅✅初始化完成,3秒后自动播放', 3000);
                                    that.currentIndex = i;
                                    setTimeout(() => {
                                        that._o1();
                                    }, 2000);
                                    break;
                                }
                            }
                        }
                    }), 300);
                }),
                beforePlayVideo() {
                    let $volumeon = document.querySelector('.pv-icon-volumeon');
                    $volumeon === null || $volumeon === void 0 ? void 0 : $volumeon.click();
                },
                beforePlayNext(that) {
                    var _c;
                    let statusDom = (_c = document.querySelector('.item.active')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('div>div')[2];
                    // @ts-ignore
                    let num = /\((.+)\)/.exec(statusDom.innerText)[1];
                    if (num != '100%') {
                        location.reload();
                    }
                },
                listenRebortFn() {
                    var _c;
                    let statusDom = (_c = document.querySelector('.item.active')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('div>div')[2];
                    // @ts-ignore
                    let num = /\((.+)\)/.exec(statusDom.innerText)[1];
                    console.log('num==>>', num);
                    if (num == '100%') {
                        location.reload();
                    }
                }
            }
        },
        hds1: {
            id: 127,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.ml.tab-info a',
                activeClass: 'dd_active',
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        var _f;
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $parentNodes = document.querySelectorAll('.content_unit');
                        if ($parentNodes.length) {
                            clearInterval(timer);
                            forData: for (let item of $parentNodes) {
                                item.click();
                                yield MyTool.sleep(2000);
                                let $cf06 = document.querySelector('.note>p').innerText;
                                if ($cf06.indexOf('恭喜您已完成') > -1)
                                    continue;
                                let $tr = document.querySelectorAll('#watchcourseTable tbody tr');
                                for (let item of $tr) {
                                    let td5 = item.querySelectorAll('td')[5];
                                    let td6 = item.querySelectorAll('td')[6];
                                    if ((td5.innerText.trim() != td6.innerText.trim()) && td6.innerText.trim() != '已完成') {
                                        let $open = item.querySelector('.studyBegin');
                                        $open.click();
                                        yield MyTool.sleep(2000);
                                        (_f = document.querySelector('.layui-layer-btn1')) === null || _f === void 0 ? void 0 : _f.click();
                                        yield MyTool.sleep(1000);
                                        ElementObj.$allTask = document.querySelectorAll("#Div_CourseProgress tr:not([style])");
                                        for (let task of ElementObj.$allTask) {
                                            let status = task.querySelector('.fa6').innerText;
                                            if (status != '100%') {
                                                MyTool.deleteValue('learnStatus');
                                                // task.querySelector('.star').click()
                                                let url = task.querySelector('.star').href;
                                                MyTool.openInTab(url);
                                                // @ts-ignore
                                                GM_addValueChangeListener('learnStatus', (key, oldValue, newValue, remote) => {
                                                    if (newValue === 'done') {
                                                        MyTool.deleteValue('learnStatus');
                                                        location.reload();
                                                    }
                                                });
                                                break forData;
                                            }
                                        }
                                    }
                                }
                            }
                            return;
                        }
                        // if (location.host == 'xjnu.edueva.org') {
                        //     let $tabs = document.querySelectorAll('.content_unit')
                        //     if ($tabs.length) {
                        //         let $tab1 = $tabs[1];
                        //
                        //         if (!$tab1.classList.contains('content_current') || !$tab1.classList.contains('content_past')) {
                        //
                        //             // @ts-ignore
                        //             $tab1.click()
                        //         }
                        //     }
                        // }
                        /*
                                                let $parentNodes2 = document.querySelectorAll('.snNewMod-item') as NodeListOf<HTMLElement>;
                                                if ($parentNodes2.length) {
                                                    clearInterval(timer)
                                                    forData:for (let item of $parentNodes2) {
                                                        item.click();
                                                        await MyTool.sleep(2000);
                                                        let $tr = document.querySelectorAll('#tblPackage tbody tr');
                                                        for (let item of $tr) {
                                                            let td5 = item.querySelectorAll('td')[5];
                                                            if(td5.innerText.trim() != '已完成'){
                                                                let $open = item.querySelector('.studyBegin') as HTMLElement;
                                                                $open.click();
                                                                await MyTool.sleep(2000);
                                                                (document.querySelector('.layui-layer-btn1') as HTMLElement | null)?.click();
                                                                await MyTool.sleep(1000);
                                                                let divPackCourseListTr = document.querySelectorAll("#divPackCourseList tbody tr:not([style])") as NodeListOf<HTMLElement>;
                                                                for (let task of divPackCourseListTr) {
                                                                    let status = task.querySelector('.snMiddleconTable-link') as HTMLElement;
                                                                    if (status.innerText != '已完成') {
                                                                        MyTool.deleteValue('learnStatus')
                                                                        status.click()
                                                                        await MyTool.sleep(2000);
                                                                        ElementObj.$allTask = document.querySelectorAll("#divCourseResList tr:not([style])");
                                                                        for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                                                            if(i === 0) continue;
                                                                            let task = ElementObj.$allTask[i];
                                                                            let status = task.querySelector('.xkTdProgressTxt').innerText;
                                                                            if (status != '100%') {
                                                                                MyTool.deleteValue('learnStatus')
                                                                                let url = task.querySelector('a').href
                                                                                MyTool.openInTab(url)
                                                                                // @ts-ignore
                                                                                GM_addValueChangeListener('learnStatus', (key: any, oldValue: any, newValue: any, remote: any) => {
                                                                                    if (newValue === 'done') {
                                                                                        MyTool.deleteValue('learnStatus')
                                                                                        location.reload()
                                                                                    }
                                                                                })
                                                                                break forData
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }

                                                    }
                                                }
                        */
                        ElementObj.$video = document.querySelector('video');
                        if (ElementObj.$video) {
                            clearInterval(timer);
                            showTip('✅✅✅初始化完成,3秒后自动播放', 3000);
                            that.pdPlayFn(location.href);
                        }
                    }), 300);
                }),
                playNext() {
                    return __awaiter(this, void 0, void 0, function* () {
                        MyTool.setValue('learnStatus', 'done');
                        yield sleep(1000);
                        window.close();
                    });
                },
                listenRebortFn() {
                    let $abtn = document.querySelector('a.btn-ProofOk');
                    $abtn === null || $abtn === void 0 ? void 0 : $abtn.click();
                }
                // playFn: async (that) => {
                //     await that.changeHtml($el('.play_video'))
                //     let balanceTime = 0;
                //     let videoDuration = ElementObj.$video.duration
                //     for (let item of new Array(10000)) {
                //         balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator
                //         that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟,(中途关闭进度不保存)`)
                //         if (balanceTime >= videoDuration) {
                //             // if(balanceTime >= 60){
                //             ElementObj.$video.currentTime = videoDuration + 60
                //             await sleep(1000)
                //             ElementObj.$video.currentTime = videoDuration + 60
                //             await sleep(1000)
                //             ElementObj.$video.dispatchEvent(new Event('ended'))
                //             MyTool.setValue('learnStatus', 'done')
                //             await sleep(1000)
                //             window.close()
                //             break
                //         }
                //         await sleep(1000)
                //     }
                // }
            }
        },
        asds1: {
            id: 128,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '',
                activeClass: '',
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        ElementObj.$video = document.querySelector('video');
                        if (ElementObj.$video) {
                            clearInterval(timer);
                            let $wrap = document.querySelector('.rightcontent') || ElementObj.$video.parentElement;
                            yield that.changeHtml($wrap);
                            that.addInfo('正在获取token...');
                            // @ts-ignore
                            let token = dsf.getToken();
                            that.addInfo(`✅✅✅token:${token}`);
                            that.addInfo('正在获取课程列表...');
                            // @ts-ignore
                            let courseId = location.href.match(/id=(.+)/)[1];
                            let tasks = [];
                            let businessId;
                            if (location.href.indexOf('commonpage/classcolumn') != -1) {
                                that.addInfo('正在获取parents');
                                let parentData = yield getParentList(courseId, token);
                                fordata: for (let parent2 of parentData.data) {
                                    that.addInfo(`【${parent2.name}】`);
                                    for (let item of parent2.subList) {
                                        that.addInfo(`正在获取${item.name}的课程,已完成进度${item.progress}`);
                                        if (item.progress > 95)
                                            continue;
                                        let taskData = yield getCourseList(item.businessId, token);
                                        let arr = taskData.data.playTree.children.map((_item) => {
                                            return Object.assign(Object.assign({}, _item), { businessId: item.businessId });
                                        });
                                        tasks.push(...arr);
                                        break fordata;
                                    }
                                }
                            }
                            else {
                                let taskData = yield getCourseList(courseId, token);
                                tasks.push(...taskData.data.playTree.children);
                            }
                            that.addInfo('✅✅✅课程列表获取成功');
                            for (let item of tasks) {
                                if (item.finishedRate >= 100)
                                    continue;
                                that.addInfo(`即将开始学习${item.title}`);
                                courseId = location.href.indexOf('commonpage/classcolumn') != -1 ? item.businessId : courseId;
                                let option = {
                                    courseId: courseId,
                                    coursewareId: item.id,
                                    watchPoint: '00:01:11',
                                    pulseTime: 10,
                                    pulseRate: 1,
                                    realWatchTime: '00:01:06',
                                };
                                localStorage.setItem('fetchOption', JSON.stringify(option));
                                localStorage.setItem('token', token);
                                yield that._o1();
                                break;
                            }
                        }
                    }), 900);
                    function getCourseList(courseId, token) {
                        return new Promise((resolve, reject) => {
                            let url = `${location.origin}/inc/nc/course/play/getPlayTrend`;
                            let url2 = `${location.origin}/inc/nc/course/play/getPlayTrend`;
                            fetch(`${url2}?courseId=${courseId}`, {
                                "headers": {
                                    "accept": "application/json, text/plain, */*",
                                    "accept-language": "zh-CN,zh;q=0.9",
                                    "authorization_token": token,
                                    "client": "pc",
                                    "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "same-origin"
                                },
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": null,
                                "method": "GET",
                                "mode": "cors",
                                "credentials": "include"
                            }).then(res => res.json()).then(res => resolve(res));
                        });
                    }
                    function getParentList(courseId, token) {
                        return new Promise((resolve, reject) => {
                            let url = `${location.origin}/nc/pack/channel/course/list`;
                            let url2 = `${location.origin}/nc/pack/channel/course/list`;
                            fetch(`${url2}?id=${courseId}`, {
                                "headers": {
                                    "accept": "application/json, text/plain, */*",
                                    "accept-language": "zh-CN,zh;q=0.9",
                                    "authorization_token": token,
                                    "client": "pc",
                                    "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "same-origin"
                                },
                                "referrer": `${location.origin}/page.html`,
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": null,
                                "method": "GET",
                                "mode": "cors",
                                "credentials": "include"
                            }).then(res => res.json()).then(res => resolve(res));
                        });
                    }
                }),
                playFn: (that) => __awaiter(this, void 0, void 0, function* () {
                    let option = localStorage.getItem('fetchOption');
                    option = JSON.parse(option);
                    let token = localStorage.getItem('token');
                    for (let item of new Array(10000)) {
                        that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,(中途关闭进度不保存)`);
                        let res = yield saveData();
                        that.addInfo(`已学习${res.data.finishedRate}%`);
                        if (res.data.finishedRate >= 100) {
                            location.reload();
                            break;
                        }
                        yield sleep(1000);
                    }
                    function saveData() {
                        // let url = "${location.origin}/inc/nc/course/play/pulseSaveRecord"
                        let url = `${location.origin}/inc/nc/course/play/pulseSaveRecord`;
                        return new Promise(resolve => {
                            fetch(`${url}`, {
                                "headers": {
                                    "accept": "application/json, text/plain, */*",
                                    "accept-language": "zh-CN,zh;q=0.9",
                                    "authorization_token": token,
                                    "client": "pc",
                                    "content-type": "application/x-www-form-urlencoded;charset=UTF-8",
                                    "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "same-origin"
                                },
                                "referrer": `${location.origin}/page.html`,
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": `courseId=${option.courseId}&coursewareId=${option.coursewareId}&watchPoint=00%3A06%3A19&pulseTime=10&pulseRate=2&realWatchTime=00%3A02%3A33`,
                                "method": "POST",
                                "mode": "cors",
                                "credentials": "include"
                            }).then(res => res.json()).then(res => resolve(res));
                        });
                    }
                })
            },
        },
        sdfs: {
            id: 129,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.n-collapse-transition .cursor-pointer',
                activeClass: 'bg-[#1C2630]',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        ElementObj.$parentNodes = document.querySelectorAll('.items-center.justify-between.border-solid');
                        if (ElementObj.$parentNodes.length > 0) {
                            clearInterval(timer);
                            showTip('正在初始化');
                            for (let item of ElementObj.$parentNodes) {
                                if (!item.nextSibling.childNodes.length) {
                                    item.click();
                                }
                            }
                            ElementObj.$allTask = document.querySelectorAll('.n-collapse-transition .cursor-pointer');
                            that.getCurrentIndex();
                        }
                    }, 500);
                })
            }
        },
        yrt5: {
            id: 130,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.n-collapse-transition .cursor-pointer',
                activeClass: 'bg-[#1C2630]',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $parentNodes = document.querySelectorAll('ul>li');
                        if ($parentNodes.length && location.pathname.indexOf('/plan/courses') != -1) {
                            clearInterval(timer);
                            for (let item of $parentNodes) {
                                let status = item.querySelector('.CourseList_per_1kb87BEO');
                                if (status.innerText != '100%') {
                                    MyTool.setValue('homeUrl', location.href);
                                    item.querySelectorAll('button')[1].click();
                                    break;
                                }
                            }
                        }
                        ElementObj.$allTask = document.querySelectorAll('.AsideChapter_Item_2dfPMpnP');
                        if (ElementObj.$allTask.length) {
                            clearInterval(timer);
                            for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                let item = ElementObj.$allTask[i];
                                if (item.querySelector('.AsideChapter_ItemState_2nxPLU4r')) {
                                    that.currentIndex = i;
                                    that._o1();
                                    break;
                                }
                            }
                        }
                    }, 500);
                }),
                playNext(that) {
                    var _c;
                    return __awaiter(this, void 0, void 0, function* () {
                        if (that.currentIndex >= ElementObj.$allTask.length - 1) {
                            let homeurl = MyTool.getValue('homeUrl');
                            window.open(homeurl);
                            return;
                        }
                        that.currentIndex += 1;
                        (_c = ElementObj.$allTask[that.currentIndex]) === null || _c === void 0 ? void 0 : _c.click();
                        setTimeout(() => {
                            that._o1();
                        }, 2000);
                    });
                },
            }
        },
        hf01: {
            id: 132,
            mainClass: "CTXCommon",
            apis: {
                coursefind: (studentCourseId) => {
                    return new Promise(resolve => {
                        fetch(`https://www.secxm.com/api/student/course/find/${studentCourseId}?page=1&size=10000`, {
                            "headers": {
                                "accept": "application/json, text/plain, */*",
                                "accept-language": "zh-CN,zh;q=0.9",
                                "authorization": "Bearer 12fe24bac5d14dcf8a5509b979a21eaa",
                                "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "same-origin"
                            },
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": null,
                            "method": "GET",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.json()).then(res => resolve(res));
                    });
                },
                appendHours: (option) => {
                    return new Promise(resolve => {
                        fetch("https://www.secxm.com/api/student/appendHours", {
                            "headers": {
                                "accept": "application/json, text/plain, */*",
                                "accept-language": "zh-CN,zh;q=0.9",
                                "authorization": "Bearer 12fe24bac5d14dcf8a5509b979a21eaa",
                                "content-type": "application/json",
                                "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "same-origin"
                            },
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": option,
                            "method": "POST",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.json()).then(res => resolve(res));
                    });
                }
            },
            option: {
                nodeListClass: '',
                activeClass: '',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $wrap = document.querySelector('.video-lt');
                        if (location.pathname === '/courseintroduction' && $wrap) {
                            clearInterval(timer);
                            // @ts-ignore
                            let studentCourseId = /id=(.+)&loopPlay/.exec(location.href)[1];
                            // @ts-ignore
                            let course = yield _i1.hf01.apis.coursefind(studentCourseId);
                            $wrap.style.position = 'relative';
                            yield that.changeHtml($wrap);
                            forData: for (let i = 0; i < course.result.elements.length; i++) {
                                for (let item of course.result.elements[i].subContentTemplate) {
                                    if (item.totalClassHours < item.duration) {
                                        that.addInfo('即将进行未完成课程', item.title);
                                        localStorage.setItem('itemdata', JSON.stringify(item));
                                        yield that._o1(that);
                                    }
                                    yield MyTool.sleep(1000);
                                }
                            }
                        }
                    }), 500);
                }),
                playFn(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let itemdata = localStorage.getItem('itemdata');
                        if (!itemdata) {
                            return alert('参数错误 #1');
                        }
                        itemdata = JSON.parse(itemdata);
                        let totalClassHours = itemdata.totalClassHours || 0;
                        let option = {
                            studentCourseId: '',
                            contentId: itemdata.id,
                            duration: 180
                        };
                        // @ts-ignore
                        option.studentCourseId = /id=(.+)&loopPlay/.exec(location.href)[1];
                        for (let item of new Array(1000)) {
                            that.addInfo(`已成功学习${totalClassHours}秒,当前任务需完成${itemdata.duration}秒`);
                            if (totalClassHours >= itemdata.duration) {
                                that.addInfo(`🎉🎉🎉【${itemdata.title}】,学习完成🎉🎉🎉`);
                                break;
                            }
                            // @ts-ignore
                            let course = yield _i1.hf01.apis.appendHours(JSON.stringify(option));
                            totalClassHours += 180;
                            yield MyTool.sleep(1000);
                        }
                    });
                }
            }
        },
        qf01: {
            id: 133,
            mainClass: "CTXCommon",
            apis: {
                appendHours: (option) => {
                    return new Promise(resolve => {
                        MyTool.axfedata({
                            method: 'GET',
                            url: `https://www.gsgbpx.cn/course/saveCoursewareRecord.do?${option}`,
                            headers: {
                                "accept": "*/*",
                                "accept-language": "zh-CN,zh;q=0.9",
                                "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "same-origin",
                                "x-requested-with": "XMLHttpRequest"
                            }
                        }).then(res => resolve(res));
                        // fetch(, {
                        //     "headers": ,
                        //     "referrerPolicy": "strict-origin-when-cross-origin",
                        //     "body": null,
                        //     "method": "GET",
                        //     "mode": "cors",
                        //     "credentials": "include"
                        // }).then(res=>res.json()).then(res=>resolve(res))
                    });
                }
            },
            option: {
                nodeListClass: '',
                activeClass: '',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                _init: (that) => __awaiter(this, void 0, void 0, function* () {
                    let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        ElementObj.$parentNodes = document.querySelectorAll('#courseResouse ul li>div');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(timer);
                            for (let item of ElementObj.$parentNodes) {
                                let status = item.querySelector('.learned-section-num').innerText;
                                if (status != '100.00%') {
                                    MyTool.setValue('homeUrl', location.href);
                                    item.querySelector('button').click();
                                    break;
                                }
                            }
                        }
                        let $wrap = document.querySelector('.coursePanelRight');
                        if (location.pathname === '/course/studycourseware.do' && $wrap) {
                            clearInterval(timer);
                            $wrap.style.position = 'relative';
                            yield that.changeHtml($wrap);
                            yield that._o1(that);
                        }
                    }), 500);
                }),
                playFn(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let totalClassHours = 0;
                        // @ts-ignore
                        let ID = /COURSEWAREID=(.+)&FILENAME/.exec(location.href)[1];
                        // @ts-ignore
                        let TCID = /TCID=(.+)/.exec(location.href)[1];
                        let option = `ID=${ID}&studyTime=60&TIMEPOINT=${totalClassHours}&jsp=true&LENGTH=1&CHAPTER=1&STUDYSTATUS=incomplete&task=continuestudy&TCID=${TCID}`;
                        for (let item of new Array(1000)) {
                            totalClassHours += 60;
                            // @ts-ignore
                            let result = yield _i1.qf01.apis.appendHours(option);
                            that.addInfo(`已成功学习${60}秒,当前任务已完成${result.msg}%`);
                            if (parseInt(result.msg) >= 100) {
                                that.addInfo(`🎉🎉🎉当前视频学习完成🎉🎉🎉`);
                                yield MyTool.sleep(1000);
                                that.playNext();
                                break;
                            }
                            yield MyTool.sleep(1000);
                        }
                    });
                },
                playNext() {
                    return __awaiter(this, void 0, void 0, function* () {
                        location.href = MyTool.getValue('homeUrl');
                    });
                }
            }
        },
        sf93: {
            id: 134,
            mainClass: "CTXCommon",
            apis: {
                reportCourseStudyProgress: (option) => {
                    return new Promise(resolve => {
                        fetch("http://media.lllnet.cn/media/reportCourseStudyProgress", {
                            "headers": {
                                "accept": "*/*",
                                "accept-language": "zh-CN,zh;q=0.9",
                                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                                "x-requested-with": "XMLHttpRequest"
                            },
                            "referrer": "http://media.lllnet.cn/media/accessCourseInfo",
                            "referrerPolicy": "strict-origin-when-cross-origin",
                            "body": option,
                            "method": "POST",
                            "mode": "cors",
                            "credentials": "include"
                        }).then(res => res.json()).then(res => resolve(res));
                    });
                }
            },
            option: {
                nodeListClass: '',
                activeClass: '',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            ElementObj.$allTask = document.querySelectorAll('#contents_list a');
                            if (ElementObj.$allTask.length) {
                                window.alert = () => {
                                };
                                clearInterval(timer);
                                for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                    let item = ElementObj.$allTask[i];
                                    if (item.classList.contains('current')) {
                                        that.currentIndex = i;
                                        yield that._o1(that);
                                        break;
                                    }
                                }
                            }
                        }), 500);
                    });
                },
                playFn(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        yield that.getVideoDom();
                        let $wrap = ElementObj.$video.parentElement;
                        yield that.changeHtml($wrap);
                        ElementObj.$video.pause();
                        that.addInfo(`初始化已完成,5秒后 即将开始学习`);
                        yield MyTool.sleep(5000);
                        let position = 0;
                        // let sessionTime = Math.trunc(ElementObj.$video.duration);
                        let sessionTime = 6;
                        let totalClassHours = ElementObj.$video.duration;
                        for (let item of new Array(1000)) {
                            position += sessionTime;
                            if (position >= totalClassHours) {
                                position = totalClassHours;
                            }
                            // @ts-ignore
                            let option = `courseId=${courseId}&gradeId=${gradeId}&userId=${userId}&coursewareId=${coursewareId}&unameSN=${unameSN}&orgName=gclc-gzdk&position=${position}&sessionTime=${sessionTime}`;
                            // @ts-ignore
                            let result = yield _i1.sf93.apis.reportCourseStudyProgress(option);
                            if (result.code == 200) {
                                that.addInfo(`本次保存${sessionTime}秒, 累计已完成${position / 60}分钟,需累计完成${totalClassHours}秒`);
                            }
                            else {
                                that.addInfo('本次未能成功保存,将自动再次保存');
                                position -= sessionTime;
                            }
                            if (position >= totalClassHours) {
                                that.addInfo(`🎉🎉🎉当前视频学习完成🎉🎉🎉`);
                                yield MyTool.sleep(1000);
                                that.playNext();
                                break;
                            }
                            yield MyTool.sleep(3000);
                        }
                    });
                },
            }
        },
        // 视频内有题目,暂时无法处理,已下架
        wsre: {
            id: 135,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '',
                activeClass: '',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            let $iframe = document.querySelector('iframe');
                            if ($iframe) {
                                clearInterval(timer);
                                location.href = $iframe.src;
                            }
                            ElementObj.$allTask = document.querySelectorAll('#li_menu_1_0_id dd span');
                            if (ElementObj.$allTask.length) {
                                clearInterval(timer);
                                for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                    let item = ElementObj.$allTask[i];
                                    if (item.classList.contains('b_sel')) {
                                        that.currentIndex = i;
                                        yield that._o1(that);
                                        break;
                                    }
                                }
                            }
                        }), 500);
                    });
                },
            }
        },
        tskf: {
            id: 136,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '.course_li',
                activeClass: 'videoListCur',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                nextClass: 'a',
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            ElementObj.$allTask = document.querySelectorAll('.course_li');
                            if (ElementObj.$allTask.length) {
                                clearInterval(timer);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                if (location.href.indexOf('coursewareid') == -1) {
                                    ElementObj.$allTask[0].querySelector('a').click();
                                    return;
                                }
                                for (let i = 0; i < ElementObj.$allTask.length; i++) {
                                    let item = ElementObj.$allTask[i];
                                    let status = item.querySelector('.study');
                                    if (!status) {
                                        that.currentIndex = i;
                                        if (!item.classList.contains('videoListCur')) {
                                            item.querySelector('a').click();
                                            break;
                                        }
                                        yield that._o1(that);
                                        break;
                                    }
                                }
                            }
                        }), 500);
                    });
                },
                playFn(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let studyType = yield that.getVideoDom();
                        yield that.changeHtml(ElementObj.$video.parentElement);
                        if (studyType == 1) {
                            let end = Math.trunc(ElementObj.$video.duration);
                            that.addInfo('🔊🔊🔊正在获取参数');
                            // @ts-ignore
                            let course_id = /courseID=(.+)&coursewareid/.exec(location.href)[1];
                            // @ts-ignore
                            let courseware_id = /coursewareid=(.+)&MyView/.exec(location.href)[1];
                            let student_id;
                            if (document.cookie.split(',')[0].indexOf('student_id') != -1) {
                                // @ts-ignore
                                student_id = /student_id=([0-9]+)/.exec(document.cookie.split(',')[0])[1];
                            }
                            else {
                                // @ts-ignore
                                student_id = /[0-9]+/.exec(document.cookie.split(',')[1].split(';')[3].split('&')[0])[0];
                            }
                            that.addInfo('🔊🔊🔊正在请求数据');
                            yield fetch(`${location.origin}/VideoPlay/StudySurvey`, {
                                "headers": {
                                    "accept": "*/*",
                                    "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                                },
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "body": `course_id=${course_id}&courseware_id=${courseware_id}&start=0&end=${end}&student_id=${student_id}&project_id=&course_type=1`,
                                "method": "POST",
                                "mode": "cors",
                                "credentials": "include"
                            });
                            that.addInfo('✅✅✅StudySurvey请求完成');
                            that.addInfo('🔊🔊🔊正在等待响应');
                            for (let i of new Array(26)) {
                                yield MyTool.sleep(1000);
                                that.addInfo('⚠⚠⚠正在等待系统请求updateStudyStatue2,请勿关闭此页面, 预计25秒');
                            }
                            // @ts-ignore
                            // let wordkey = document.cookie.split(',')[1].split(';')[9].split('&')[5].trim().replace('key=','')
                            // await fetch(`${location.origin}/VideoPlay/updateStudyStatue2`, {
                            //     "headers": {
                            //         "accept": "*/*",
                            //         "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                            //     },
                            //     "body": `course_id=${course_id}&courseware_id=${courseware_id}&student_id=${student_id}&course_type=1&wordkey=${wordkey}&iPlaySec=${end}&playSec=${end}`,
                            //     "method": "POST",
                            //     "mode": "cors",
                            //     "credentials": "include"
                            // });
                        }
                        that.playNext();
                    });
                }
            }
        },
        gd891: {
            id: 137,
            mainClass: "CTXCommon",
            option: {
                nodeListClass: '',
                activeClass: '',
                openListenPlayStatus: false,
                openListenPlayTime: false,
                _init(that) {
                    return __awaiter(this, void 0, void 0, function* () {
                        let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                            try {
                                if (location.host == 'gbpx.gd.gov.cn') {
                                    // @ts-ignore
                                    let iframe = document.querySelector('iframe').contentDocument.querySelector('iframe').contentDocument.querySelector('iframe');
                                    // 修复w
                                    // @ts-ignore
                                    iframe.contentWindow.tab = null;
                                    // @ts-ignore
                                    iframe.contentWindow.w = (url) => { iframe.contentWindow.tab = window.open(url, "_blank", "height=750,width=1060,top=10,left=10,location=no,menubar=no,resizable=yes,status=no,toolbar=no"); };
                                    // @ts-ignore
                                    let item = iframe.contentDocument.querySelector('.listrowd');
                                    if (item) {
                                        clearInterval(timer);
                                        ElementObj.$handleSpeedUp.style.display = 'none';
                                        yield that._o1();
                                        // @ts-ignore
                                        // await that.changeHtml(document.querySelector(iframe.contentDocument.body));
                                        // that.addInfo('🔊🔊🔊正在学习中, 学习期间将多次刷新页面, 属于正常现象')
                                        // that.addInfo('🔊🔊🔊正在学习中, 学习期间将多次刷新页面, 属于正常现象')
                                        // that.addInfo('🔊🔊🔊正在学习中, 学习期间将多次刷新页面, 属于正常现象')
                                        item.querySelector('a.courseware-list-reed').click();
                                        setTimeout(() => {
                                            var _c;
                                            location.replace(location.href);
                                            // @ts-ignore
                                            (_c = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _c === void 0 ? void 0 : _c.tab.close();
                                        }, 1000 * 10);
                                    }
                                }
                                if (location.host == 'wcs1.shawcoder.xyz') {
                                    clearInterval(timer);
                                    ElementObj.$handleSpeedUp.style.display = 'none';
                                    yield that.getVideoDom();
                                    // @ts-ignore
                                    window.onbeforeunload();
                                }
                            }
                            catch (e) { }
                        }), 500);
                    });
                }
            }
        },
    };
    let speedArr = [1, 2, 3, 5, 10, 16];
    let toolOption = {
        accelerator: 1,
        CtxMain: null,
        SchoolType: -1
    };
    const version = '6.1.0.1';
    let _bt = 'https://www.gaozhiwang.top';
    let _b = 'http://47.115.205.88:7001';
    // let _b: string = 'http://localhost:7001';
    class Main {
        constructor() {
            this.studentType = 1;
            this.speedStatus = 0;
            this.isAdaptive = 1;
            this.listenVidoeStatusTimer = null;
            this.fingerprint = null;
            this.toolkey = null;
            this.init();
        }
        init() {
            setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                this.toolkey = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey');
                let _schoolInfoColletion = MyTool.getValue('schoolInfoColletion');
                if (_schoolInfoColletion) {
                    _schoolInfoColletion = new Date(_schoolInfoColletion);
                    var old_d = _schoolInfoColletion.getDate();
                    var new_d = new Date().getDate();
                    if (old_d < new_d) {
                        this.colletionSchoolData(`/colletionschool?schoolType=${toolOption.SchoolType}&toolkey=${this.toolkey}&host=${location.origin}`);
                    }
                }
                else {
                    this.colletionSchoolData(`/colletionschool?schoolType=${toolOption.SchoolType}&toolkey=${this.toolkey}&host=${location.origin}`);
                }
                let fingerprintjs = localStorage.getItem('fingerprint');
                if (!fingerprintjs && this.toolkey) {
                    // @ts-ignore
                    yield import('https://openfpcdn.io/fingerprintjs/v4')
                        .then(FingerprintJS => FingerprintJS.load())
                        .then(fp => fp.get())
                        .then(result => {
                        this.fingerprint = result.visitorId;
                    });
                    localStorage.setItem('fingerprint', this.fingerprint);
                    this.colletionSchoolData(`/colletionschool?schoolType=${toolOption.SchoolType}&toolkey=${this.toolkey}&fingerprint=${this.fingerprint}&host=${location.origin}`);
                }
                this._rn();
            }), 2500);
        }
        /**
         * 更改倍速
         * */
        updateSpeedElement(num) {
            if (this.speedStatus == 0)
                return;
            ElementObj.$video.playbackRate = num;
        }
        /**
         * 点击加速按钮
         * @isOpenListen 是否开启key的监测
         * */
        _o1(callback, isOpenListen = true) {
            return __awaiter(this, void 0, void 0, function* () {
                let key = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey');
                if (!key) {
                    alert('请先购买key');
                    window.open(_bt);
                }
                if (!toolOption.CtxMain) {
                    location.reload();
                }
                let r = yield axfedata({
                    method: 'GET',
                    url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`,
                });
                if (r.code == 200) {
                    this.speedStatus = 1;
                    this.isAdaptive = 1;
                    yield toolOption.CtxMain.play();
                }
                else {
                    this.isAdaptive = 0;
                    showTip(`🔉🔉🔉${r.message}`, 5000, true);
                    return;
                }
            });
        }
        /**
         * 解绑Key
         * */
        handleRemoveKey() {
            MyTool.setValue('mytoolkey', null);
            localStorage.removeItem('mytoolkey');
            localStorage.removeItem('_localSpeed');
            ElementObj.$title3.innerText = '绑定key:';
            ElementObj.$mytoolkey.style.display = 'none';
            ElementObj.$ctxsection2.style.display = 'none';
            ElementObj.$nokey.style.display = 'block';
            ElementObj.$ipt.style.display = 'block';
            ElementObj.$addKey.style.display = 'block';
            ElementObj.$removeKey.style.display = 'none';
            ElementObj.$handleSpeedUp.style.background = 'orange';
            ElementObj.$handleSpeedUp.innerText = '点击加速';
            this.updateSpeedElement(1);
        }
        /**
         * 停止加速
         * */
        stopSpeedUp() {
            this.speedStatus = 0;
            toolOption.CtxMain.updateSpeedElement(1);
            ElementObj.$handleSpeedUp.style.background = 'orange';
            ElementObj.$handleSpeedUp.innerText = '点击加速';
            showTip(`🔉停止加速成功`);
        }
        /**
         * 通过下拉框更改倍速
         * */
        handleChangeCtxSpeed(e) {
            let key = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey');
            if (key) {
                if (this.isAdaptive == 0) {
                    alert('Key不适配');
                    return;
                }
                let whiteList = speedArr;
                let s = Number(e);
                if (e && whiteList.includes(s)) {
                    toolOption.accelerator = s;
                    localStorage.setItem('_localSpeed', s.toString());
                    MyTool.setValue('_localSpeed', s);
                    if (ElementObj.$video) {
                        ElementObj.$video.playbackRate = s;
                    }
                }
            }
            else if (!key) {
                alert('请先购买key');
                window.open(_bt);
            }
            else {
                alert('程序错误,请联系客服');
            }
        }
        /**
         * 记录平台数据
         * */
        colletionSchoolData(option) {
            return __awaiter(this, void 0, void 0, function* () {
                let result = yield axfedata({
                    method: 'GET',
                    url: _b + option
                });
                if (result.code == 200) {
                    MyTool.setValue('schoolInfoColletion', `${new Date()}`);
                }
                if (result.code == 20231) {
                }
            });
        }
        /**
         * 验证是否被破解
         * */
        _rn() {
            setInterval(() => {
                if (ElementObj.$video) {
                    MyTool.axfedata({
                        method: 'GET',
                        url: _b + `/ck/v1?ty=${this.toolkey}`
                    }).then((res) => {
                        if (res.code == 202) {
                            erf(res.data);
                        }
                    });
                }
            }, 10000);
        }
        /**
         * 监听视频状态
         * */
        listenVidoeStatus($video, callback) {
            if (!$video)
                return;
            let count = 0;
            this.listenVidoeStatusTimer = setInterval(() => {
                if ($video.readyState < 4) {
                    count += 1;
                    if (count >= 20) {
                        location.reload();
                    }
                }
                let status = $video.paused;
                if (status) {
                    count += 1;
                    if (typeof callback == 'function') {
                        if (count >= 20) {
                            location.reload();
                        }
                        else {
                            callback();
                        }
                    }
                    else {
                    }
                }
            }, 5000);
        }
        changeHtml($wrap) {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$ctxstatsbox = document.querySelector('.ctxstatsbox');
                if (!ElementObj.$ctxstatsbox) {
                    let _style = `
                width: 100%;
                height: 100%;
                background: #eae9e9;
                position: absolute;
                z-index: 999;
                overflow: scroll;
                top: 0;
                padding-left: 10px;
                z-index: 9999;
            `;
                    let dom = document.createElement('div');
                    dom.setAttribute('class', 'ctxstatsbox');
                    dom.setAttribute('style', _style);
                    $wrap.appendChild(dom);
                    yield sleep(300);
                    ElementObj.$ctxstatsbox = document.querySelector('.ctxstatsbox');
                }
                this.addInfo('🔉初始化已完成,正在播放');
            });
        }
        /**
         * @param str 要显示的文本内容
         * @param type 0为红色
         * */
        addInfo(str, type) {
            let $ctxstatsbox_lis = document.querySelectorAll('.ctxstatsbox_li');
            if ($ctxstatsbox_lis.length >= 15) {
                ElementObj.$ctxstatsbox.innerHTML = '';
            }
            let li = `<li class="ctxstatsbox_li" style="color: ${type == 0 ? '#f01414' : '#000'};line-height: 30px;font-size: 16px;list-style: none;">${str}</li>`;
            ElementObj.$ctxstatsbox.innerHTML += li;
        }
        listenPageHide() {
            let timer3;
            document.addEventListener("visibilitychange", () => {
                if (document.hidden) {
                    // 页面被隐藏
                    let count = 0;
                    timer3 = setInterval(() => {
                        count += 1;
                        if (count >= 5) {
                            this.addInfo('⚠️⚠️⚠️请勿长时间隐藏该学习页面', 0);
                        }
                    }, 5000);
                }
                else {
                    clearInterval(timer3);
                    // 页面被显示
                }
            });
        }
        /**
         * @description 判断该视频是否消耗过次数
         * */
        pdPlayFn(className) {
            let localData = MyTool.getValue('spanClassName') || [];
            if (localData.indexOf(className) != -1) {
                // toolOption.CtxMain.play()
                this._o1();
            }
            else {
                localData.push(className);
                MyTool.setValue('spanClassName', localData);
                this._o1();
            }
        }
        /**
         * @description 获取视频DOM
         * */
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelectorAll('video')[0];
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
    }
    class CTXCommon extends Main {
        constructor(options) {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this.nodeListClass = options.nodeListClass;
            this.activeClass = options.activeClass || '';
            this.nextClass = options.nextClass || '';
            this.openListenPlayStatus = typeof options.openListenPlayStatus == 'boolean' ? options.openListenPlayStatus : true;
            this.openListenPlayTime = typeof options.openListenPlayTime == 'boolean' ? options.openListenPlayTime : false;
            this.afterPlayEnd = options.afterPlayEnd;
            this.getCurrentIndexByOption = options.getCurrentIndexByOption;
            this.playNext = options.playNext ? options.playNext : this.playNext;
            this.listenRebortFn = options.listenRebortFn;
            this.getVideoDom = typeof options.videoEle == 'function' ? options.videoEle : this.getVideoDom;
            this.playFn = options.playFn;
            this.beforePlayVideo = options.beforePlayVideo;
            this.beforePlayNext = options.beforePlayNext;
            this.getCurrentIndex = options.getCurrentIndex ? options.getCurrentIndex.bind(this, this) : this.getCurrentIndex;
            options._init ? options._init(this) : this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll(this.nodeListClass);
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.getCurrentIndexByOption) {
                    this.currentIndex = yield this.getCurrentIndexByOption();
                }
                else {
                    for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                        let isDone = ElementObj.$allTask[i];
                        // 根据进度判断
                        // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText;
                        // if (parseInt(status) < 99) {
                        //     this.currentIndex = i
                        //     break
                        // }
                        // 根据active判断
                        if (isDone.classList.contains(this.activeClass)) {
                            this.currentIndex = i;
                            break;
                        }
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 2000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelectorAll('video')[0];
                    if (!!ElementObj.$video && (ElementObj.$video.src || ElementObj.$video.querySelector('source'))) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 6) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (this.playFn) {
                    yield this.playFn(this);
                }
                else {
                    if (studyType == 1) {
                        if (this.beforePlayVideo && typeof this.beforePlayVideo === 'function') {
                            this.beforePlayVideo();
                        }
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        setTimeout(() => {
                            ElementObj.$video.playbackRate = toolOption.accelerator;
                        }, 3000);
                        if (this.openListenPlayStatus) {
                            this.listenVidoeStatus(ElementObj.$video, () => {
                                ElementObj.$video.volume = 0;
                                ElementObj.$video.play();
                            });
                        }
                        if (this.openListenPlayTime) {
                            yield this.changeHtml(ElementObj.$video.parentElement);
                            this.listenPlayTime();
                        }
                        this.listenRebort();
                        ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                            showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                            // @ts-ignore
                            this.playNext(this);
                        }));
                        ElementObj.$video.addEventListener('pause', () => {
                            setTimeout(() => {
                                ElementObj.$video.volume = 0;
                                ElementObj.$video.play();
                            }, 1500);
                        });
                    }
                    if (studyType == 2) {
                        showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                        yield sleep(3000);
                        // @ts-ignore
                        this.playNext(this);
                    }
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                if (this.listenRebortFn && typeof this.listenRebortFn == 'function') {
                    this.listenRebortFn(this);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.beforePlayNext && typeof this.beforePlayNext === 'function') {
                    this.beforePlayNext(this);
                }
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                if (this.nextClass) {
                    $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector(this.nextClass);
                }
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                if (this.afterPlayEnd) {
                    yield this.afterPlayEnd();
                }
                setTimeout(() => {
                    this._o1();
                }, 5000);
            });
        }
        listenPlayTime() {
            let count = 0;
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                var _c, _d;
                count += 1;
                let currentTime = (_c = ElementObj.$video) === null || _c === void 0 ? void 0 : _c.currentTime;
                let time = (currentTime / 60).toFixed(2);
                let durtion = (_d = ElementObj.$video) === null || _d === void 0 ? void 0 : _d.duration;
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`);
            }), 5000);
        }
    }
    function _ex(hex) {
        var str = '';
        for (var i = 0; i < hex.length; i += 2) {
            var hexChar = hex.substr(i, 2);
            var charCode = parseInt(hexChar, 16);
            str += String.fromCharCode(charCode);
        }
        return str;
    }
    /**
     * 福建师范 继续教育
     */
    class fujianshifan extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = 0;
            this.currentMidiaType = 'video';
            this._init();
        }
        _init() {
            // 获取所有章节
            let $allchapters = document.querySelectorAll('.section');
            new Promise((resolve) => {
                $allchapters.forEach((item, index) => {
                    item.childNodes[0].click();
                    sleep(20);
                    if (index == $allchapters.length - 1) {
                        resolve(true);
                    }
                });
            }).then(res => {
                setTimeout(() => {
                    ElementObj.$allStudyTask = document.querySelectorAll('.section li');
                    //
                    this.getCurrentIndex();
                }, 2000);
            });
        }
        getCurrentIndex() {
            let $activeVideo = document.querySelector('.active');
            let currentId = $activeVideo.id;
            ElementObj.$allStudyTask.forEach((item, index) => {
                if (item.id == currentId) {
                    this.currentIndex = index;
                }
            });
        }
        play() {
            // 判断当前当前任务是否已完成
            // let isSuccess = ElementObj.$allStudyTask[this.currentIndex].lastChild.title
            ElementObj.$allStudyTask[this.currentIndex].click();
            setTimeout(() => {
                // 判断是视频还是文档
                ElementObj.$video = document.querySelector('video');
                if (ElementObj.$video) {
                    this.currentMidiaType = 'video';
                    this.handlePlayVideo();
                }
                else {
                    this.currentMidiaType = 'doc';
                    this.handlePlayDoc();
                }
            }, 2000);
        }
        nextPlay() {
            sleep(1000);
            this.currentIndex += 1;
            this._o1();
        }
        handlePlayVideo() {
            this.updateSpeedElement(toolOption.accelerator);
            ElementObj.$video.play();
            ElementObj.$handleSpeedUp.style.background = '#f01414';
            ElementObj.$handleSpeedUp.innerText = '加速成功';
            // 播放结束
            ElementObj.$video.addEventListener('ended', () => {
                this.nextPlay();
            }, false);
        }
        handlePlayDoc() {
            var _c;
            ElementObj.$handleSpeedUp.style.background = '#f01414';
            ElementObj.$handleSpeedUp.innerText = '加速成功';
            let totalDoc = (_c = document.querySelector('#lg-counter-all')) === null || _c === void 0 ? void 0 : _c.innerHTML;
            let $nextBtn = document.querySelector('.lg-actions>.lg-next');
            let downCount = Number(totalDoc);
            let interval = setInterval(() => {
                if (downCount <= 0 || !$nextBtn) {
                    clearInterval(interval);
                    this.nextPlay();
                    return;
                }
                $nextBtn.click();
                downCount -= 1;
            }, 1000);
        }
    }
    /**
     * 广西住房城乡建设行业专业人员继续教育平台
     * @match jxjy.gxcic.net:9092
     * */
    class gxcic extends Main {
        constructor() {
            super();
            this.parentIndex = 0;
            this.currentIndex = 0;
            this.currentTaskEle = null;
            this.taskLength = 0;
            this.timer = null;
            this._init();
        }
        _init() {
            let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTaskParentNodes = document === null || document === void 0 ? void 0 : document.querySelectorAll('.ant-collapse-item');
                ElementObj.$allTask = document === null || document === void 0 ? void 0 : document.querySelectorAll('.course-detail-content-section-info-text');
                if (ElementObj.$allTask.length && ElementObj.$allTaskParentNodes.length) {
                    clearInterval(interval);
                    this.getCurrentIndex();
                }
            }), 1000);
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTaskParentNodes.forEach((item, index) => {
                    let hasClass = item.className.includes('ant-collapse-item-active');
                    if (hasClass) {
                        this.parentIndex = index;
                    }
                });
                ElementObj.$allTask.forEach((item, index) => {
                    let hasClass = item.className.includes('course-detail-current');
                    if (hasClass) {
                        this.currentIndex = index;
                        this.currentTaskEle = item;
                    }
                });
                if (!!this.currentTaskEle) {
                    showTip('初始化完成,可点击加速');
                }
                // await sleep(5000)
                // this._o1()
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                // await sleep(5000)
                yield this.getVideoDom();
                ElementObj.$video.play();
                this.updateSpeedElement(toolOption.accelerator);
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.lisRebort();
                // 播放结束
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    let nextTask = this.currentTaskEle.parentElement.parentElement.nextSibling;
                    if (nextTask) {
                        this.currentIndex += 1;
                        this.currentTaskEle = nextTask;
                        this.currentTaskEle.click();
                    }
                    else {
                        this.parentIndex += 1;
                        this.currentIndex += 1;
                        var _$parentEle = ElementObj.$allTaskParentNodes[this.parentIndex].lastChild.firstChild.firstChild;
                        _$parentEle.click();
                        yield sleep(1500);
                        ElementObj.$allTask = document === null || document === void 0 ? void 0 : document.querySelectorAll('.course-detail-content-section-info-text');
                        this.currentTaskEle = ElementObj.$allTask[this.currentIndex];
                        this.currentTaskEle.click();
                    }
                    yield sleep(5000);
                    this._o1();
                    /*
                    *                 if (this.currentIndex > ElementObj.$allTask.length) {
                        return;
                    }
                    this.currentIndex += 1
                    ElementObj.$allTask[this.currentIndex].click()
    
                    setTimeout(() => {
                        location.reload()
                    }, 2000)
                    * */
                }), false);
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.setAttribute('muted', 'muted');
                        ElementObj.$video.play();
                    }, 1500);
                });
            });
        }
        lisRebort() {
            this.timer = setInterval(() => {
                // 确认弹框
                let $confirm1 = document.querySelector('.sdk-ia-message-confirm');
                $confirm1 === null || $confirm1 === void 0 ? void 0 : $confirm1.click();
                // 验证码弹框
                let $ver = document.querySelector('.sdk-ia-number-verify-image');
                if (!!$ver) {
                    let $ipt = document.querySelector('.sdk-ia-number-input input');
                    $ipt.value = $ver.innerText;
                    let $btn = document.querySelector('.sdk-ia-number-button');
                    $btn.click();
                }
            }, 1000 * 5);
        }
    }
    /**
     * 福建师范教育2
     * nto.fjnu.cn
     * 10
     * */
    class fjsf2 extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = 0;
            this.currentIndex = 0;
            this.currentMidiaType = 'video';
            this._init();
        }
        _init() {
            // 获取所有章节
            ElementObj.$allTaskParentNodes = document === null || document === void 0 ? void 0 : document.querySelectorAll('.section');
            let $allchapters = document.querySelectorAll('.section');
            this.getCurrentIndex();
        }
        getCurrentIndex() {
            ElementObj.$allTaskParentNodes.forEach((item, index) => {
                let $lis = item.querySelectorAll('li');
                $lis === null || $lis === void 0 ? void 0 : $lis.forEach(($ele, key) => {
                    if ($ele.className.includes('active')) {
                        this.parentIndex = index;
                        this.currentIndex = key;
                        ElementObj.$allTask = $lis;
                    }
                });
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                // 判断当前当前任务是否已完成
                // let isSuccess = ElementObj.$allStudyTask[this.currentIndex].lastChild.title
                ElementObj.$allTask[this.currentIndex].click();
                yield sleep(2000);
                // 判断是视频还是文档
                let $clseDocBtn = document.querySelector('.lg-close');
                if (!$clseDocBtn) {
                    this.currentMidiaType = 'video';
                    this.handlePlayVideo();
                }
                else {
                    this.currentMidiaType = 'doc';
                    this.handlePlayDoc();
                }
            });
        }
        nextPlay() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(1000);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    this.parentIndex += 1;
                    this.currentIndex = 0;
                    if (this.parentIndex >= ElementObj.$allTaskParentNodes.length) {
                        alert('已全部播放完');
                        return;
                    }
                    let $lis = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll('li');
                    if ($lis.length) {
                        ElementObj.$allTask = $lis;
                    }
                    else {
                        ElementObj.$allTaskParentNodes[this.parentIndex].childNodes[0].click();
                        yield sleep(300);
                        ElementObj.$allTask = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll('li');
                    }
                }
                else {
                    this.currentIndex += 1;
                }
                this._o1();
            });
        }
        handlePlayVideo() {
            ElementObj.$video = document.querySelector('video');
            this.updateSpeedElement(toolOption.accelerator);
            ElementObj.$video.play();
            ElementObj.$handleSpeedUp.style.background = '#f01414';
            ElementObj.$handleSpeedUp.innerText = '加速成功';
            // 播放结束
            ElementObj.$video.addEventListener('ended', () => {
                this.nextPlay();
            }, false);
        }
        handlePlayDoc() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                yield sleep(1500);
                let $lgToggle = document.querySelector('.lg-toggle-thumb');
                let downCount = 1;
                let currentPlayIndex = 0;
                if ($lgToggle) {
                    $lgToggle.click();
                    let totalDoc = document.querySelectorAll('.lg-thumb-item');
                    downCount = totalDoc.length;
                }
                yield sleep(2000);
                // let interval = setInterval(async () => {
                //     if (currentPlayIndex >= downCount) {
                //         clearInterval(interval)
                //         await sleep(1000)
                //
                //         let $cleseBtn = document.querySelector('.lg-close') as HTMLElement;
                //         $cleseBtn.click()
                //
                //         this.nextPlay()
                //         return
                //     }
                //     var $nextDoc = totalDoc[currentPlayIndex] as HTMLElement;
                //
                //     $nextDoc.click()
                //
                //     currentPlayIndex += 1
                // }, 2000)
                let $cleseBtn = document.querySelector('.lg-close');
                $cleseBtn.click();
                this.nextPlay();
            });
        }
    }
    /**
     * 安徽专业技术人员继续教育在线
     * 12
     * */
    class zjzx extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = 0;
            this._init();
        }
        _init() {
            // 获取所有章节
            ElementObj.$allTask = document.querySelectorAll('.nLi');
            this.getCurrentIndex();
        }
        getCurrentIndex() {
            ElementObj.$allTask.forEach((item, index) => {
                let $li = item.querySelector('li');
                if ($li.classList.contains('active')) {
                    this.currentIndex = index;
                }
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$video = document.querySelector('video');
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                ElementObj.$video.addEventListener('ended', () => {
                    setTimeout(() => {
                        this._o1();
                    }, 5000);
                });
            });
        }
    }
    /**
     * 全国文化和旅游市场在线培训系统
     * 13
     * */
    class zxpxmr extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = 0;
            this._init();
        }
        _init() {
            //禁止 alert 弹窗
            window.alert = function () {
                return false;
            };
            let interval = setInterval(() => {
                // 获取所有章节
                ElementObj.$allTask = document.querySelectorAll('.kecheng_play_mian_list_item');
                if (ElementObj.$allTask.length) {
                    showTip('🔉初始化完成,可点击加速', 3000);
                    clearInterval(interval);
                    this.getCurrentIndex();
                }
            }, 1000);
        }
        getCurrentIndex() {
            let activeClass = 'kecheng_play_mian_list_item_progress_playing';
            ElementObj.$allTask.forEach((item, index) => {
                if (item.classList.contains(activeClass)) {
                    this.currentIndex = index;
                }
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$video = document.querySelector('video');
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$video.play();
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.simulationClick();
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    clearInterval(this.timer);
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        alert('课程已全部部分完');
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextTaskBtn = document.querySelector("#btn-sure");
                    yield sleep(2000);
                    $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 5000);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.play();
                    }, 1000);
                });
            });
        }
        /**
         * 模拟点击
         * */
        simulationClick() {
            var e = new KeyboardEvent('keydown', { 'keyCode': 8, 'which': 8 });
            this.timer = setInterval(() => {
                try {
                    document.dispatchEvent(e);
                }
                catch (e) {
                }
            }, 1000 * 3);
        }
    }
    /**
     * 广东远程职业培训平台
     * 14 ggfw
     * */
    class ggfw extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = 0;
            this._init();
        }
        _init() {
            ElementObj.$parentNodes = document.querySelectorAll('.learnList');
            if (ElementObj.$parentNodes.length) {
                this.selectOneClass();
            }
            new Promise((resolve) => {
                let interval = setInterval(() => {
                    // 获取所有章节
                    ElementObj.$allTask = document.querySelectorAll('.courseItem');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                        resolve(true);
                    }
                }, 1000);
            }).then(res => {
                ElementObj.$handleSpeedUp.style.display = 'none';
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    ElementObj.$video = document.querySelector('video');
                    ElementObj.$video.setAttribute('muted', 'muted');
                    ElementObj.$video.setAttribute('autoplay', 'autoplay');
                    let $volumeicon = document.querySelector('.volume-icon');
                    $volumeicon.click();
                    yield sleep(500);
                    $volumeicon.click();
                    if (!!ElementObj.$video) {
                        clearInterval(interval);
                        showTip('🔉初始化完成,即将自动播放', 3000);
                        yield sleep(300);
                        let $playBtn = document.querySelector('.prism-big-play-btn');
                        $playBtn.click();
                        yield this._o1();
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            let activeClass = 'active';
            ElementObj.$allTask.forEach((item, index) => {
                if (item.classList.contains(activeClass)) {
                    this.currentIndex = index;
                }
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(3000);
                localStorage.setItem('ctx-status', '');
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                    ElementObj.$handleSpeedUp.style.background = '#f01414';
                    ElementObj.$handleSpeedUp.innerText = '加速成功';
                }, 1500);
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    clearInterval(this.timer);
                    ElementObj.$allTask = document.querySelectorAll('.courseItem');
                    yield sleep(300);
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        localStorage.setItem('ctx-status', 'done');
                        // 取消收藏
                        let $saveBtn = document.querySelector('.sc-box');
                        $saveBtn.click();
                        yield sleep(1500);
                        let $backBtn = document.querySelectorAll('.menu-box ul li')[3];
                        $backBtn.click();
                        yield sleep(2000);
                        window.location.reload();
                        return;
                    }
                    this.currentIndex += 1;
                    this._o1();
                    yield sleep(2500);
                    ElementObj.$allTask[this.currentIndex].click();
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.play();
                    }, 1000);
                });
            });
        }
        /**
         * 进入课程
         * */
        selectOneClass() {
            let T = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                clearInterval(T);
                let $label1 = document.querySelector('#tab-second');
                $label1.click();
                yield sleep(2500);
                ElementObj.$parentNodes = document.querySelectorAll('.course_item');
                yield sleep(200);
                ElementObj.$parentNodes[0].click();
            }), 3000);
        }
    }
    /**
     * 名师课堂
     * 17
     * */
    class mingshiclass extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = 0;
            this.parentIndex = -1;
            this._init();
        }
        _init() {
            let isParent = document.querySelector('.title-box .setMealName');
            if (!!isParent) {
                this.selectOneClass();
            }
            else {
                this.initPlayPage();
            }
        }
        initPlayPage() {
            new Promise((resolve) => {
                let interval = setInterval(() => {
                    // 获取所有章节
                    ElementObj.$allTask = document.querySelectorAll('.course-list .course-item');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                        resolve(true);
                    }
                }, 1000);
            }).then(res => {
                return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                    ElementObj.$video = document.querySelector('video');
                    yield sleep(3000);
                    if (!!ElementObj.$video) {
                        showTip('🔉初始化完成,播放开始', 3000);
                        resolve(true);
                    }
                }));
            }).then(res => {
                // 消耗次数,并播放
                this._o1();
            });
        }
        getCurrentIndex() {
            let activeClass = 'play-status';
            ElementObj.$allTask.forEach((item, index) => {
                let $dom1 = item.querySelector('.course-name');
                if ($dom1.classList.contains(activeClass)) {
                    this.currentIndex = index;
                }
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$video = document.querySelector('video');
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.setAttribute('autoplay', 'autoplay');
                // ElementObj.$video.setAttribute('controls', 'controls')
                ElementObj.$video.volume = 0;
                yield sleep(3500);
                let $play_btn = document.querySelector('.play_btn');
                $play_btn.click();
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        let $back = document.querySelector('.back-img');
                        sleep(200);
                        $back.click();
                        setTimeout(() => {
                            location.reload();
                        }, 3000);
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextTaskBtn = ElementObj.$allTask[this.currentIndex];
                    yield sleep(5000);
                    $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 2000);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.play();
                    }, 3000);
                });
            });
        }
        /**
         * 进入课程
         * */
        selectOneClass() {
            let T = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                clearInterval(T);
                ElementObj.$parentNodes = document.querySelectorAll('.content-box>.course-list>div');
                yield sleep(200);
                ElementObj.$parentNodes.forEach((item, index) => {
                    let $course = item.querySelector('.course_item_brief');
                    let $lastChild = $course.lastChild;
                    let _innertext = $lastChild.innerText;
                    if (_innertext == '未完成' && this.parentIndex == -1) {
                        this.parentIndex = index;
                        return true;
                    }
                });
                yield sleep(200);
                ElementObj.$parentNodes[this.parentIndex].click();
                setTimeout(() => {
                    this.initPlayPage();
                }, 2500);
            }), 1000);
        }
    }
    mingshiclass.ctxid = 17;
    /**
     * 强师
     * 18
     * */
    class qiangshi extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        _init() {
            try {
                let _win1 = document.querySelectorAll('iframe')[2].contentWindow;
                let _win2 = _win1.document.querySelectorAll('iframe')[0].contentWindow;
                this._document = _win2.document;
            }
            catch (e) {
            }
            let interval = setInterval(() => {
                // 获取所有章节
                try {
                    // @ts-ignore
                    let _win1 = document.querySelector('.contentIframe').contentWindow;
                    ElementObj.$allTask = _win1.document.querySelectorAll('.s_point');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                    }
                }
                catch (e) {
                }
            }, 1000);
        }
        getCurrentIndex() {
            let activeClass = 'done_icon_show';
            ElementObj.$allTask.forEach((item, index) => {
                let $item = item.querySelector('.item_done_icon');
                if (!$item.classList.contains(activeClass) && this.currentIndex == -1) {
                    this.currentIndex = index;
                }
            });
            if (this.currentIndex == -1) {
                alert('当前章节课程已全部学完');
                return;
            }
            showTip('⚠️⚠️⚠️初始化完成,即将开始播放', 3000);
            setTimeout(() => {
                this._o1();
            }, 4500);
            ElementObj.$handleSpeedUp.style.display = 'none';
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    try {
                        // @ts-ignore
                        let _document = document.querySelectorAll('iframe')[2].contentDocument.querySelectorAll('iframe')[0].contentDocument;
                        ElementObj.$video = _document === null || _document === void 0 ? void 0 : _document.querySelector('video');
                        if (!!ElementObj.$video) {
                            clearInterval(Timer);
                            resolve(true);
                        }
                    }
                    catch (e) {
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask[this.currentIndex].click();
                yield sleep(3500);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                let $playBtn = this._document.querySelector('#player_pause');
                $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click();
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = localStorage.getItem('_localSpeed') || toolOption.accelerator;
                }, 3000);
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        alert('课程已全部部分完');
                        return;
                    }
                    this.currentIndex += 1;
                    showTip('⚠️⚠️⚠️正在切换课程', 3500);
                    setTimeout(() => {
                        this._o1();
                    }, 4000);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        ElementObj.$video.playbackRate = localStorage.getItem('_localSpeed') || toolOption.accelerator;
                    }, 1500);
                });
            });
        }
    }
    qiangshi.ctxid = 18;
    /**
     * 兰州理工大学
     *
     * 19
     * */
    class lanzhgoulgjs extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        _init() {
            // 获取所有章节
            let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                // 获取所有章节
                let $nodes1 = document.querySelectorAll('.chapterlist .drop p'); // 公需课
                let $nodes2 = document.querySelectorAll('.chapterlist .videoList p'); // 专业课
                if ($nodes1.length || $nodes2.length) {
                    clearInterval(interval);
                    ElementObj.$allTask = $nodes1.length ? $nodes1 : $nodes2;
                    this.getCurrentIndex();
                }
            }), 1000);
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let arr = [];
                ElementObj.$allTask.forEach((item, index) => {
                    let $class_percent = item.querySelector('.class_percent');
                    if (!!$class_percent) {
                        let status = $class_percent.innerText;
                        arr.push(parseInt(status));
                    }
                    else {
                        arr.push(0);
                    }
                });
                arr.reverse();
                for (var i = 0; i <= arr.length - 1; i++) {
                    if (arr[i] < 98) {
                        this.currentIndex = arr.length - i - 1;
                        break;
                    }
                }
                // 因为看不到第一个所以,跳一下再看
                if (this.currentIndex == 0) {
                    ElementObj.$allTask[1].querySelector('a').click();
                    yield sleep(4000);
                    ElementObj.$allTask = document.querySelectorAll('.chapterlist .drop p');
                    yield sleep(200);
                    let status = ElementObj.$allTask[0].querySelector('.class_percent').innerText;
                    if (parseInt(status) < 98) {
                        this.currentIndex = 0;
                    }
                    else {
                        alert('当前科目课程已全部播放完');
                        return;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前科目课程已全部播放完');
                    return;
                }
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉🔉🔉初始化完成,5s后开始播放', 3000);
                this.pdPlayFn(location.href);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    let videosrc = ElementObj.$video.src;
                    let $iframe = document.querySelector('iframe');
                    if (!!videosrc) {
                        clearInterval(Timer);
                        resolve(1);
                    }
                    if ($iframe) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                let $nextP = ElementObj.$allTask[this.currentIndex];
                let $nextBtn = $nextP.querySelector('a');
                yield sleep(300);
                $nextBtn.click();
                yield sleep(3000);
                let result = yield this.getVideoDom();
                if (result == 1) {
                    clearInterval(this.listenVidoeStatusTimer);
                    ElementObj.$video.setAttribute('muted', 'muted');
                    ElementObj.$video.volume = 0;
                    yield sleep(200);
                    ElementObj.$video.play();
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                    ElementObj.$handleSpeedUp.style.background = '#f01414';
                    ElementObj.$handleSpeedUp.innerText = '加速成功';
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    let $wrap = document.querySelector('.ckplayer-ckplayer');
                    this.changeHtml($wrap);
                    this.reloadPage();
                    this.listenPageHide();
                    this.listenAbnormal(1);
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        location.reload();
                    }));
                }
                // 学生版本
                if (result == 2) {
                    let $thirdplayer = document.querySelector("#thirdplayer");
                    this.changeHtml($thirdplayer);
                    this.reloadPage();
                    this.listenPageHide();
                    this.listenAbnormal(0);
                }
            });
        }
        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
                let count = 3 * 60;
                let studyInterval = setInterval(() => {
                    if (count <= 0) {
                        clearInterval(studyInterval);
                        location.reload();
                    }
                    count -= 1;
                }, 1000);
            });
        }
        /**
         * 监听异常
         * */
        listenAbnormal(type) {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            setInterval(() => {
                count += 1;
                if (type == 0) {
                    this.addInfo(`后台学习${count}次,当前状态正在学习`);
                }
                else {
                    let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                    this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`);
                }
                let $layuilayerbtn0 = document.querySelector('.layui-layer-btn0');
                if (!!$layuilayerbtn0) {
                    location.reload();
                    return;
                }
            }, 5000);
        }
        changeHtml($wrap) {
            return __awaiter(this, void 0, void 0, function* () {
                let _style = `
                width: 796px;
                height: 545px;
                background: #eae9e9;
                position: absolute;
                z-index: 10;
                overflow: scroll;
                top: 0;
                padding-left: 10px;
            `;
                let dom = document.createElement('div');
                dom.setAttribute('class', 'ctxstatsbox');
                dom.setAttribute('style', _style);
                $wrap.appendChild(dom);
                yield sleep(300);
                ElementObj.$ctxstatsbox = document.querySelector('.ctxstatsbox');
                this.addInfo('🔉初始化已完成,正在播放');
                this.addInfo('⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程', 0);
            });
        }
        addInfo(str, type) {
            let $ctxstatsbox_lis = document.querySelectorAll('.ctxstatsbox_li');
            if ($ctxstatsbox_lis.length >= 15) {
                ElementObj.$ctxstatsbox.innerHTML = '';
            }
            let li = `<li class="ctxstatsbox_li" style="color: ${type == 0 ? '#f01414' : '#000'};line-height: 30px;font-size: 16px;">${str}</li>`;
            ElementObj.$ctxstatsbox.innerHTML += li;
        }
        listenPageHide() {
            let timer3;
            document.addEventListener("visibilitychange", () => {
                if (document.hidden) {
                    // 页面被隐藏
                    let count = 0;
                    timer3 = setInterval(() => {
                        count += 1;
                        if (count >= 5) {
                            this.addInfo('⚠️⚠️⚠️请勿长时间隐藏该学习页面', 0);
                        }
                    }, 5000);
                }
                else {
                    clearInterval(timer3);
                    // 页面被显示
                }
            });
        }
    }
    /**
     * 北京教师学习网
     * 20
     * */
    class beijingjiaoshi extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.topIndex = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let $item_btn = document.querySelector('.item_btn');
                ElementObj.$topNode = document.querySelectorAll('.el-collapse-item__header');
                if (!!$item_btn) {
                    yield sleep(2000);
                    $item_btn.click();
                    setTimeout(() => {
                        window.close();
                    }, 1500);
                }
                else if (ElementObj.$topNode.length) {
                    // let index = await this.getDoing() as number
                    //
                    // ElementObj.statusEles[index].click()
                    // await sleep(3000)
                    // this.getParentIndex()
                    forData: for (let item of ElementObj.$topNode) {
                        if (!item.classList.contains('is-active')) {
                            item.click();
                            yield sleep(1500);
                        }
                        let trs = item.parentElement.nextSibling.querySelectorAll('tr.el-table__row');
                        for (let tr of trs) {
                            let status = tr.querySelector('.el-progress-bar__inner').style.width;
                            if (status != '100%') {
                                MyTool.setValue('homeUrl', location.href);
                                tr.querySelector('.btn.to-study').click();
                                break forData;
                            }
                        }
                    }
                }
                else {
                    // 获取所有章节
                    let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        // 获取所有章节
                        ElementObj.$allTask = document.querySelectorAll('.course-info .video-title');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }), 1000);
                }
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$topNode = document.querySelectorAll('.el-collapse-item');
                yield sleep(200);
                let len = ElementObj.$topNode.length;
                let _interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    if (this.topIndex >= len - 1) {
                        clearInterval(_interval);
                    }
                    yield sleep(2000);
                    let $item = ElementObj.$topNode[this.topIndex];
                    if (this.topIndex != 0) {
                        $item.querySelector('.item-title-col').click();
                    }
                    yield sleep(300);
                    ElementObj.$parentNodes = $item.querySelectorAll('.el-table__row');
                    yield sleep(300);
                    ElementObj.$parentNodes.forEach((item, index) => __awaiter(this, void 0, void 0, function* () {
                        let $course_num = item.querySelector('.course_num');
                        let _status = $course_num.innerText;
                        if (_status != '课程:100%' && this.parentIndex == -1) {
                            clearInterval(_interval);
                            this.parentIndex = index;
                            let $toStudyBtn = item.querySelector('.to-study');
                            yield sleep(200);
                            $toStudyBtn.click();
                            setTimeout(() => {
                                window.close();
                            }, 1500);
                        }
                    }));
                    this.topIndex += 1;
                }), 3000);
            });
        }
        /**
         * 获取最外层父类
         * */
        getDoing() {
            return new Promise((resolve) => {
                let isFirst = false;
                ElementObj.statusEles = document.querySelectorAll('.li-item .el-progress-bar__inner');
                ElementObj.statusEles.forEach((item, index) => {
                    let status = item.style.width;
                    if (parseInt(status) <= 98 && isFirst == false) {
                        isFirst = true;
                        resolve(index);
                    }
                });
                if (!isFirst) {
                    resolve(0);
                }
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let activeClass = 'on';
                ElementObj.$allTask.forEach((item, index) => {
                    let $fourEle = item.querySelector('.four');
                    let _status = $fourEle.innerText;
                    if (_status != '100%' && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉初始化完成,5秒后开始播放', 3000);
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(200);
                $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                yield this.getVideoDom();
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.volume = 0;
                let $startBtn = document.querySelector('.xgplayer-start');
                yield sleep(200);
                $startBtn.click();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                this.punchCard();
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.listenVidoeStatus();
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        setTimeout(() => {
                            window.close();
                        }, 1500);
                        let homeUrl = MyTool.getValue('homeUrl');
                        location.replace(homeUrl);
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300);
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                });
                ElementObj.$video.addEventListener('playing', () => {
                });
                ElementObj.$video.addEventListener('waiting', () => {
                });
            });
        }
        /**
         * 监听视频状态
         * */
        listenVidoeStatus() {
            this.timer = setInterval(() => {
                ElementObj.$video = document.querySelector('video');
                if (!!ElementObj.$video) {
                    let status = ElementObj.$video.paused;
                    if (status) {
                        ElementObj.$video.setAttribute('muted', 'muted');
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }
                    else {
                    }
                }
            }, 3000);
        }
        /**
         * 课程打卡
         * */
        punchCard() {
            setInterval(() => {
                let $elem = document.querySelector('#comfirmClock');
                if (!!$elem) {
                    $elem.click();
                }
            }, 5000);
        }
    }
    /**
     * 专技天下
     * 21
     * */
    class qingyangzgzjzj extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this._init();
        }
        _init() {
            let interval = setInterval(() => {
                // 获取所有章节
                ElementObj.$parentNodes = document.querySelectorAll('.swiper-slide');
                if (ElementObj.$parentNodes.length) {
                    clearInterval(interval);
                    this.getParentIndex();
                }
            }, 1000);
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('正在初始化', 1500);
                ElementObj.$parentNodes.forEach((item, index) => {
                    let $progresstext = item.querySelector('.progresstext');
                    let status = $progresstext.innerText;
                    if (parseInt(status) < 97 && this.parentIndex == -1) {
                        this.parentIndex = index;
                        ElementObj.$parentNodes[this.parentIndex].querySelector('.left-img').click();
                    }
                });
                if (this.parentIndex == -1) {
                    alert('课程已全部播放完');
                    return;
                }
                this.getCurrentIndex();
            });
        }
        _getParentIndex() {
            let result = 0;
            for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) {
                let $progresstext = ElementObj.$parentNodes[i].querySelector('.progresstext');
                let status = $progresstext.innerText;
                if (parseInt(status) < 95) {
                    result = i;
                    break;
                }
            }
            return result;
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li");
                yield sleep(2000);
                ElementObj.$allTask[0].click();
                // ElementObj.$allTask[7].click()
                this.currentIndex = 0;
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉初始化完成,5秒后自动开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 3000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                clearInterval(this.timer2);
                yield this.getVideoDom();
                ElementObj.$video = document.querySelector('video');
                ElementObj.$video.volume = 0;
                ElementObj.$video.currentTime = 0;
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$video.play();
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.listenVidoeStatus();
                this.listenRebort();
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext();
                }));
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        listenVidoeStatus() {
            this.timer = setInterval(() => {
                ElementObj.$video = document.querySelector('video');
                if (!!ElementObj.$video) {
                    let status = ElementObj.$video.paused;
                    if (status) {
                        ElementObj.$video.setAttribute('muted', 'muted');
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }
                }
            }, 3000);
        }
        listenRebort() {
            this.timer2 = setInterval(() => {
                var _c;
                let $rebort = (_c = document.querySelector('.progress')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('span')[1].innerText.trim();
                if ($rebort == '100%') {
                    location.reload();
                }
            }, 3000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li");
                yield sleep(1500);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    location.reload();
                    return;
                }
                // this.currentIndex += 1
                // let $nextTaskBtn = document.querySelector('.nextdontcheatorshit') as HTMLElement | null;
                // await sleep(200)
                // $nextTaskBtn?.click()
                // setTimeout(() => {
                //     this._o1()
                // }, 5000)
            });
        }
    }
    /**
     * 兰州文理学院继续教育
     * 还未开发完,缺少视频连播
     * jxjypt.luas.edu.cn
     * 22
     * */
    class lanzhouwenli extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this._init();
        }
        _init() {
            let interval = setInterval(() => {
                // 获取所有章节
                ElementObj.$allTask = document.querySelectorAll('.video');
                if (ElementObj.$allTask.length) {
                    clearInterval(interval);
                    this.getCurrentIndex();
                }
            }, 1000);
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask.forEach((item, index) => {
                    let $progress = item.querySelector('.el-progress__text');
                    let status = $progress.innerText;
                    if (parseInt(status) < 96 && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                if (this.currentIndex == -1) {
                    alert('当前章节课程已全部播放完');
                    return;
                }
                showTip('🔉🔉🔉初始化完成,即将开始播放', 3000);
                yield sleep(2000);
                ElementObj.$allTask[this.currentIndex].click();
                yield sleep(2500);
                this._o1();
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                yield this.getVideoDom();
                let $volume = document.querySelector('.volume-icon');
                $volume.classList.add('mute');
                ElementObj.$video.volume = 0;
                yield sleep(200);
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$video.play();
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    yield sleep(1500);
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        this.parentIndex += 1;
                        yield sleep(200);
                        ElementObj.$parentNodes[this.parentIndex].querySelector('.left-img').click();
                        if (this.parentIndex >= ElementObj.$parentNodes.length - 1) {
                            alert('课程已全部播放完了');
                            return;
                        }
                    }
                    let $backBtn = document.querySelector('.videoleft img');
                    yield sleep(200);
                    $backBtn.click();
                    showTip('正在切换课程', 3000);
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        this.currentIndex += 1;
                        let $nextTaskBtn = ElementObj.$allTask[this.currentIndex];
                        yield sleep(2000);
                        $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click();
                        setTimeout(() => {
                            this._o1();
                        }, 5000);
                    }), 5500);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.play();
                    }, 4000);
                });
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
    }
    /**
     * 国家智慧教育公共服务平台
     * 24
     * */
    class guojiazhihuijiaoyu extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        _init() {
            // 获取所有章节
            let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                // 获取所有章节
                let $allTask1 = document.querySelectorAll('.video-title .four');
                if ($allTask1.length) {
                    clearInterval(interval);
                    ElementObj.$handleSpeedUp.style.display = 'none';
                    ElementObj.$allTask = $allTask1;
                    this.getCurrentIndex();
                }
            }), 1000);
        }
        getCurrentIndex() {
            ElementObj.$allTask.forEach((item, index) => {
                if (item.innerText != '100%' && this.currentIndex == -1) {
                    this.currentIndex = index;
                }
            });
            if (this.currentIndex == -1) {
                this.currentIndex = 0;
            }
            showTip('🔉🔉🔉初始化完成,即将开始自动播放', 3000);
            this._o1();
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(300);
                $nextBtn.click();
                yield sleep(3000);
                // @ts-ignore
                document.querySelector('video').volume = 0;
                let $playBtn = document.querySelector('.xgplayer-icon-play');
                $playBtn.click();
                yield this.getVideoDom();
                ElementObj.$video.play();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                this.listenVidoeStatus();
                let $btn0 = document.querySelector('.layui-layer-btn0');
                if (!!$btn0) {
                    $btn0.click();
                }
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.listenTopic();
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }, 1500);
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    let $close = document.querySelector('.layui-layer-btn0');
                    yield sleep(3000);
                    if (!!$close) {
                        $close.click();
                    }
                    this.currentIndex += 1;
                    setTimeout(() => {
                        this._o1();
                    }, 5000);
                }));
            });
        }
        listenTopic() {
            let inter = setInterval(() => {
                try {
                    let $submit = document.querySelector('#submit');
                    if (!!$submit) {
                        this.answerTopic();
                    }
                }
                catch (e) {
                }
            }, 1000 * 5);
        }
        answerTopic() {
            return __awaiter(this, void 0, void 0, function* () {
                let $choice = document.querySelectorAll('.choice li')[0];
                yield sleep(200);
                $choice.click();
                let $submit = document.querySelector('#submit');
                yield sleep(1000);
                $submit.click();
                yield sleep(2000);
                $submit = document.querySelector('#submit');
                yield sleep(200);
                $submit.click();
                yield sleep(4500);
                let $close = document.querySelector('.layui-layer-btn0');
                yield sleep(200);
                $close.click();
            });
        }
        /**
         * 监听视频状态
         * */
        listenVidoeStatus() {
            let count = 0;
            this.timer = setInterval(() => {
                ElementObj.$video = document.querySelector('video');
                if (!!ElementObj.$video) {
                    let status = ElementObj.$video.paused;
                    if (status) {
                        ElementObj.$video.setAttribute('muted', 'muted');
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }
                    else {
                    }
                }
            }, 1000 * 10);
        }
    }
    /**
     * 兰州大学成人教育
     * 25
     * */
    class lanzhouchengren extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = 3;
            this.loadedCount = 0;
            this.type = 1;
            this._init();
        }
        _init() {
            let interval = setInterval(() => {
                // 公开课
                if (location.pathname == '/courseVideo/index') {
                    ElementObj.$allTask = document.querySelectorAll('.ant-tree-node-content-wrapper-normal .chapter-tree-level2');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                    }
                }
                else {
                    // 获取所有章节
                    ElementObj.$allTask = document.querySelectorAll('.activity li');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                    }
                }
            }, 1000);
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                // 公开课
                if (location.pathname == '/courseVideo/index') {
                    for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                        let $li = ElementObj.$allTask[i];
                        let $right = $li.querySelector('.right');
                        if (!$right) {
                            this.currentIndex = i;
                            break;
                        }
                        else {
                            let $status = $right.querySelector('.percent-text');
                            if ($status.innerText != '已完成') {
                                this.currentIndex = i;
                                break;
                            }
                        }
                    }
                    if (this.currentIndex == -1) {
                        alert('所有课程已播放完');
                        return;
                    }
                    ElementObj.$allTask[i].click();
                }
                else {
                    let activeClass = 'cur';
                    ElementObj.$allTask.forEach((item, index) => {
                        if (item.classList.contains(activeClass)) {
                            this.currentIndex = index;
                        }
                    });
                    if (this.currentIndex == -1) {
                        this.currentIndex = 0;
                    }
                }
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉初始化完成,5秒后开始播放', 3000);
                yield sleep(3000);
                this._o1();
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                // 判断是文档还是视频
                let studyType = yield this.getVideoDom();
                yield sleep(200);
                if (studyType == 1) {
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        this.currentIndex += 1;
                        let $li = ElementObj.$allTask[this.currentIndex];
                        let $nextTaskBtn = $li === null || $li === void 0 ? void 0 : $li.querySelector('h3');
                        yield sleep(2000);
                        $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click();
                    }), 3000);
                }
                // 视频
                if (studyType == 2) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                    ElementObj.$video.play();
                    ElementObj.$handleSpeedUp.style.background = '#f01414';
                    ElementObj.$handleSpeedUp.innerText = '加速成功';
                    if (location.pathname == '/venus/study/activity/video/study.do') {
                        this.listenVidoeStatus(ElementObj.$video, () => {
                            let $li = ElementObj.$allTask[this.currentIndex];
                            let $nextTaskBtn = $li === null || $li === void 0 ? void 0 : $li.querySelector('h3');
                            $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click();
                        });
                        this.reloadPage();
                    }
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        this.videoplaying = 1;
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1000);
                    });
                    ElementObj.$video.addEventListener('playing', () => {
                        this.videoplaying = 2;
                    });
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                this.videoplaying = 3;
                yield sleep(1500);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前章节课程已全部播放完了');
                    return;
                }
                this.currentIndex += 1;
                let $li = ElementObj.$allTask[this.currentIndex];
                let $nextTaskBtn;
                if (location.pathname == '/courseVideo/index') {
                    $nextTaskBtn = $li;
                    $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 3000);
                }
                else {
                    $nextTaskBtn = $li === null || $li === void 0 ? void 0 : $li.querySelector('h3');
                    yield sleep(2000);
                    $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click();
                }
            });
        }
        /**
         * 获取视频dom
         * */
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    ElementObj.$myFrame = document.querySelector('#myFrame');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        this.type = 2;
                        resolve(2);
                    }
                    if (!!ElementObj.$myFrame) {
                        clearInterval(Timer);
                        this.type = 1;
                        resolve(1);
                    }
                }, 1000);
            });
        }
        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
                let count = 10 * 60;
                let watch = 0;
                let studyInterval = setInterval(() => {
                    watch += 1;
                    if (watch % 15 == 0) {
                        console.clear();
                    }
                    if (watch % 5 == 0) {
                    }
                    if (count <= 0) {
                        clearInterval(studyInterval);
                        location.reload();
                    }
                    count -= 1;
                }, 1000);
            });
        }
    }
    /**
     * 天水博通职业技术培训学校
     * 26
     * */
    class tsbtchinamde extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.studyType = 1;
            this.currentIndex = -1;
            this._init();
        }
        _init() {
            // 获取所有章节
            let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                // 获取所有章节
                let $allTask1 = document.querySelectorAll('.chapterlist .item p');
                let $allTask2 = document.querySelectorAll('.chapterlist .chapter-li .drop p');
                if ($allTask1.length || $allTask2.length) {
                    clearInterval(interval);
                    ElementObj.$allTask = $allTask2.length ? $allTask2 : $allTask1;
                    this.getCurrentIndex();
                    ElementObj.$handleSpeedUp.style.display = 'none';
                }
            }), 1000);
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let arr = [];
                ElementObj.$allTask.forEach((item, index) => {
                    let $class_percent = item.querySelector('.class_percent');
                    if (!!$class_percent) {
                        let status = $class_percent.innerText;
                        arr.push(parseInt(status));
                    }
                    else {
                        arr.push(0);
                    }
                });
                arr.reverse();
                for (var i = 0; i <= arr.length - 1; i++) {
                    if (arr[i] < 98) {
                        this.currentIndex = arr.length - i - 1;
                        break;
                    }
                }
                // 因为看不到第一个所以,跳一下再看
                if (this.currentIndex == 0) {
                    ElementObj.$allTask[1].querySelector('a').click();
                    yield sleep(4000);
                    ElementObj.$allTask = document.querySelectorAll('.chapterlist .drop p');
                    yield sleep(200);
                    let status = ElementObj.$allTask[0].querySelector('.class_percent').innerText;
                    if (parseInt(status) < 98) {
                        this.currentIndex = 0;
                    }
                    else {
                        alert('当前科目课程已全部播放完');
                        return;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前科目课程已全部播放完');
                    return;
                }
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉🔉🔉初始化完成,5s后开始播放', 3000);
                this._o1();
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    let videosrc = ElementObj.$video.src;
                    if (!!videosrc) {
                        clearInterval(Timer);
                        resolve(1);
                    }
                    else {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                let $nextP = ElementObj.$allTask[this.currentIndex];
                let $nextBtn = $nextP.querySelector('a');
                yield sleep(300);
                $nextBtn.click();
                this.studyType = (yield this.getVideoDom());
                if (this.studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.setAttribute('muted', 'muted');
                    yield sleep(200);
                    ElementObj.$video.play();
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                    ElementObj.$handleSpeedUp.style.background = '#f01414';
                    ElementObj.$handleSpeedUp.innerText = '加速成功';
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                }
                let $wrap = this.studyType == 1 ? $el('#player') : $el('#thirdplayer');
                this.changeHtml($wrap);
                this.reloadPage();
                this.listenPageHide();
                this.studyType == 1 ? this.listenAbnormal(1) : this.listenAbnormal(0);
                setTimeout(() => {
                    this.addInfo('⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程', 0);
                }, 1000);
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    location.reload();
                }));
            });
        }
        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
                let count = 6 * 60;
                let studyInterval = setInterval(() => {
                    if (count <= 0) {
                        clearInterval(studyInterval);
                        location.reload();
                    }
                    count -= 1;
                }, 1000);
            });
        }
        /**
         * 监听异常
         * */
        listenAbnormal(type) {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            setInterval(() => {
                count += 1;
                if (type == 0) {
                    this.addInfo(`后台学习${count}次,当前状态正在学习`);
                }
                if (type == 1) {
                    let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                    this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`);
                }
                let $layuilayerbtn0 = document.querySelector('.layui-layer-btn0');
                if (!!$layuilayerbtn0) {
                    location.reload();
                    return;
                }
            }, 5000);
        }
    }
    tsbtchinamde.ctxid = 26;
    /**
     * 浙江省住房和城乡建设行业专业技术人员继续教育系统
     * 28
     * */
    class zjzjsrc extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this.wrapParentIndex = 0; // 更改年份 【0代表第一个年份课程,1代表第二个年份的课程....以此类推】
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    if (location.pathname == '/member/project_toMyCourseList.page') {
                        clearInterval(interval);
                        let $page1 = document.querySelectorAll('td .btn-xs')[this.wrapParentIndex];
                        $page1.click();
                        yield sleep(2000);
                        let index = yield this.getParentIndex();
                        let $parentTask = document.querySelectorAll('.panel-body')[0].querySelectorAll('tbody tr');
                        let $item = $parentTask[index];
                        let $openBtn = $item.querySelector(".btn-xs[name='btn1']");
                        $openBtn === null || $openBtn === void 0 ? void 0 : $openBtn.click();
                        yield sleep(2000);
                        // 查询第二层级的
                        ElementObj.$allTask = document.querySelectorAll(".btn-xs[name='btn1']");
                        this.step2();
                        // this.getCurrentIndex()
                    }
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(interval);
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        this._o1();
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                let result = -1;
                let $parentTask = document.querySelectorAll('.panel-body')[0].querySelectorAll('tbody tr');
                for (var i = 0; i <= $parentTask.length - 1; i++) {
                    let tdIndex = location.host === '2j.zjjsrc.cn' ? 4 : 6;
                    let $status = $parentTask[i].querySelectorAll('td')[tdIndex].innerText;
                    if ($status == '未开始学习') {
                        result = i;
                        break;
                    }
                }
                if (result == -1) {
                    let $lastPageBtn = document.querySelector('#option1').lastChild;
                    let $nextBtn = (_c = document.querySelector('#option1')) === null || _c === void 0 ? void 0 : _c.querySelector("a[title='Go to next page']");
                    if (!$lastPageBtn.classList.contains('active')) {
                        $nextBtn.click();
                        yield sleep(2000);
                        result = yield this.getParentIndex();
                    }
                    else {
                        return result;
                    }
                }
                return result;
            });
        }
        getCurrentIndex() {
            showTip('正在初始化');
            ElementObj.$handleSpeedUp.style.display = 'none';
            let $progressNodes = document.querySelectorAll('.progress-bar');
            let result = -1;
            for (var i = 0; i <= $progressNodes.length - 1; i++) {
                let _ele = $progressNodes[i];
                let status = _ele.style.width;
                if (parseInt(status) != 100) {
                    result = i;
                    break;
                }
            }
            return result;
        }
        step2() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                let index = 0;
                let $items = (_c = document.querySelector('#myModal .panel-body')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('tbody tr');
                let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    let $openBtn = $items[index].querySelector(".btn-xs[name='btn2']");
                    $openBtn === null || $openBtn === void 0 ? void 0 : $openBtn.click();
                    yield sleep(500);
                    let result = this.getCurrentIndex();
                    if (result != -1) {
                        clearInterval(timer);
                        let $progressNodes = document.querySelectorAll('#myModal1 tbody tr')[result];
                        let $a = $progressNodes.querySelector('a');
                        // @ts-ignore
                        GM_openInTab($a.href, { active: true });
                        localStorage.setItem('learnStatus', '-1');
                        if (location.host === '2j.zjjsrc.cn') {
                            window.addEventListener('storage', (event) => {
                                if (event.key === 'learnStatus') {
                                    var message = event.newValue;
                                    if (message === 'done') {
                                        location.reload();
                                    }
                                }
                            });
                        }
                        if (location.host !== '2j.zjjsrc.cn') {
                            setTimeout(() => {
                                window.close();
                            }, 1000 * 15);
                        }
                    }
                    index++;
                }), 2000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.setAttribute('muted', 'muted');
                yield sleep(200);
                ElementObj.$video.play();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                this.changeHtml($el('#example_video_1'));
                this.listenPlayTime();
                this.listenPageHide();
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    this.videoplaying = -1;
                    if (location.host === '2j.zjjsrc.cn') {
                        localStorage.setItem('learnStatus', 'done');
                    }
                    else {
                        // @ts-ignore
                        GM_openInTab('https://zj.zjjsrc.cn/member/project_toMyCourseList.page', { active: true });
                    }
                    setTimeout(() => {
                        window.close();
                    }, 1000 * 15);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    let timer;
                    clearInterval(timer);
                    timer = setTimeout(() => {
                        let $playBtn = document.querySelector('.vjs-play-control');
                        $playBtn.click();
                    }, 100);
                });
            });
        }
        listenPlayTime() {
            let count = 0;
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                var _c, _d;
                count += 1;
                let currentTime = (_c = ElementObj.$video) === null || _c === void 0 ? void 0 : _c.currentTime;
                let time = (currentTime / 60).toFixed(2);
                let durtion = (_d = ElementObj.$video) === null || _d === void 0 ? void 0 : _d.duration;
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`);
            }), 5000);
        }
    }
    zjzjsrc.ctxid = 26;
    /**
     * 兰州资源环境职业技术大学
     * 29 lzrejxjy
     * */
    class lzrejxjy extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $trans2 = document.querySelectorAll('.my-center2RM .pull-left a.trans')[1];
                        if (!!$trans2) {
                            clearInterval(interval);
                            // @ts-ignore
                            GM_setValue("homeUrl", location.href);
                            $trans2 === null || $trans2 === void 0 ? void 0 : $trans2.click();
                            showTip('🔉正在初始化');
                            yield sleep(2000);
                            ElementObj.$parentNodes = document.querySelectorAll('.class2Li');
                            this.findParentIndex();
                            return;
                        }
                        let $menus = document.querySelectorAll('.learn-menu-cell');
                        if ($menus.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                if (location.host != 'zjdx-kfkc.webtrn.cn') {
                    let $menu2 = document.querySelectorAll('.learn-menu-cell')[1];
                    if (!$menu2.classList.contains('learn-menu-cur')) {
                        let $menu2_a = $menu2.querySelector('a');
                        $menu2_a.click();
                    }
                    yield sleep(3000);
                }
                let $contentIframe = document.querySelector('.contentIframe');
                ElementObj._document = $contentIframe.contentWindow.document;
                ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_point');
                showTip('正在初始化');
                ElementObj.$handleSpeedUp.style.display = 'none';
                let activeClass = 'done_icon_show';
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i].querySelector('.item_done_icon');
                    if (!$item.classList.contains(activeClass)) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    // @ts-ignore
                    let homeUrl = GM_getValue("homeUrl", null);
                    // @ts-ignore
                    GM_openInTab(homeUrl, { active: true });
                    setTimeout(() => {
                        window.close();
                    }, 1500);
                    return;
                }
                (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click();
                showTip('初始化完成,5秒后开始播放');
                this._o1();
            });
        }
        findParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.display = 'none';
                let $a;
                ElementObj.$parentNodes.forEach((item, index) => {
                    let $class2Li = item.querySelector('.color-theme');
                    let status = $class2Li.innerText;
                    if (parseInt(status) <= 98 && this.currentIndex == -1) {
                        this.currentIndex = index;
                        $a = item.querySelector('a.btn-theme');
                    }
                });
                if (this.currentIndex == -1) {
                    alert('全部课程已学完');
                    return;
                }
                $a.click();
                setTimeout(() => {
                    window.close();
                }, 1500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    var _c;
                    if (count > 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                    let _document = (_c = ElementObj._document.querySelector('#mainFrame')) === null || _c === void 0 ? void 0 : _c.contentWindow.document;
                    ElementObj.$video = _document === null || _document === void 0 ? void 0 : _document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                    }
                    count += 1;
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studytype = yield this.getVideoDom();
                if (studytype == 2) {
                    this.playNext();
                }
                if (studytype == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.setAttribute('muted', 'muted');
                    yield sleep(200);
                    ElementObj.$video.play();
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                    this.listenRebort();
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                }
            });
        }
        updateSpeedElement(num) {
            localStorage.setItem('_localSpeed', num.toString());
            ElementObj.$video.playbackRate = num;
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.layui-layer-btn0');
                if (!!$btn) {
                    setTimeout(() => {
                        $btn.click();
                        ElementObj.$video.play();
                    }, 3000);
                }
            }, 10 * 1000);
        }
        playNext() {
            if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                // @ts-ignore
                let homeUrl = GM_getValue("homeUrl", null);
                // @ts-ignore
                GM_openInTab(homeUrl, { active: true });
                setTimeout(() => {
                    window.close();
                }, 1500);
                return;
            }
            this.currentIndex += 1;
            ElementObj.$allTask[this.currentIndex].click();
            showTip('🔉正在切换课程');
            setTimeout(() => {
                this._o1();
            }, 5000);
        }
    }
    lzrejxjy.ctxid = 29;
    /**
     * 徐州医科大学
     * 30
     * xuzhouyikedaxue
     * */
    class xuzhouyikedaxue extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this.parentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $menu = document.querySelector('#courseware_main_menu');
                        let $menu_a = $menu.querySelector('a');
                        if (!!$menu_a) {
                            clearInterval(interval);
                            $menu_a.click();
                            this.findParentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        findParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('🔉正在初始化', 2500);
                yield sleep(4500);
                ElementObj.$handleSpeedUp.style.display = 'none';
                let $contentIframe = document.querySelector('.contentIframe');
                let _document = $contentIframe.contentWindow.document;
                ElementObj.$parentNodes = _document.querySelectorAll('.vcon li');
                ElementObj.$parentNodes.forEach((item, index) => {
                    let $span = item.querySelector('span');
                    if (($span.classList.contains('undo') || $span.classList.contains('doing')) && this.parentIndex == -1) {
                        this.parentIndex = index;
                    }
                });
                if (this.parentIndex == -1) {
                    alert('当前课程已全部播发完');
                    return;
                }
                ElementObj.$parentNodes[this.parentIndex].querySelector('a').click();
                this.getCurrentIndex();
            });
        }
        getCurrentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                showTip('正在初始化', 2500);
                yield sleep(4500);
                let $contentIframe = document.querySelector('.contentIframe');
                ElementObj._document = $contentIframe.contentWindow.document;
                ElementObj.$allTask = ElementObj._document.querySelectorAll('.menub');
                this.currentIndex = 0;
                (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click();
                showTip('初始化完成,5秒后开始播放');
                this._o1();
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    let $contentIframe = document.querySelector('.contentIframe');
                    ElementObj._document = $contentIframe.contentWindow.document;
                    let _document = ElementObj._document.querySelector('#mainFrame').contentDocument;
                    ElementObj.$video = _document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    let $doc = _document.querySelector('#content_frame');
                    if (!!$doc) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                    else {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer2);
                // @ts-ignore
                unsafeWindow.alert = () => {
                };
                let studytype = yield this.getVideoDom();
                this.listenRebort();
                if (studytype == 1) {
                    ElementObj.$video.volume = 0;
                    yield sleep(200);
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        setTimeout(() => {
                            ElementObj.$video.playbackRate = toolOption.accelerator;
                        }, 3000);
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        yield sleep(3000);
                        this.playNext();
                    }));
                }
                if (studytype == 2) {
                    this.timer2 = setTimeout(() => {
                        this.playNext();
                    }, 7000);
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.layui-layer-btn a');
                if (!!$btn) {
                    $btn.click();
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('✅✅✅播放完成,正在切换课程', 3500);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    this.parentIndex += 1;
                    ElementObj.$parentNodes[this.parentIndex].querySelector('a').click();
                    setTimeout(() => {
                        this.getCurrentIndex();
                    }, 4500);
                    return;
                }
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    xuzhouyikedaxue.ctxid = 26;
    /**
     * 西北师范大学专业技术人员继续教育基地(甘肃省)网络学习平台
     * xibeisfzyjy
     * 31
     * */
    class xibeisfzyjy extends Main {
        constructor() {
            super();
            this.studyType = 2;
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.swiperIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $allTask1 = document.querySelectorAll('.el-tree-node'); // 选修课
                        let $allTask2 = document.querySelectorAll('.m-chapterList .section'); // 公需课
                        if ($allTask1.length || $allTask2.length) {
                            this.studyType = $allTask1.length ? 2 : 1;
                            ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2;
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$parentNodes = document.querySelectorAll('.project-courseBottom');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            this.getParentIndex();
                        }
                        let _host = location.host;
                        if (_host == 'preview.dccloud.com.cn') {
                            clearInterval(interval);
                            yield sleep(1500);
                            window.close();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) {
                let status = ElementObj.$parentNodes[i].querySelector('span');
                if (status != '已学习') {
                    this.parentIndex = i;
                    break;
                }
            }
            if (this.parentIndex == -1) {
                alert('课程已全部学完');
            }
            ElementObj.$parentNodes[i].querySelector('.project-courseButton').click();
        }
        // 选修课 获取章节下的第几个视频
        getSwiperIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                // 文档
                ElementObj.$video = document.querySelector('video');
                yield sleep(200);
                if (!ElementObj.$video) {
                    ElementObj.$docs = document.querySelectorAll('.abcd');
                    if (ElementObj.$docs.length) {
                        this.playDoc();
                    }
                    return;
                }
                ElementObj.$swiperItem = document.querySelectorAll('.public-articleSlideList');
                if (!ElementObj.$swiperItem.length) {
                    this._o1();
                    return;
                }
                for (var i = 0; i <= ElementObj.$swiperItem.length - 1; i++) {
                    let status = ElementObj.$swiperItem[i].querySelector('.video-status').innerText;
                    if (status != '已学习') {
                        this.swiperIndex = i;
                        break;
                    }
                }
                if (this.swiperIndex == -1) {
                    this.playNext();
                }
                else if (this.swiperIndex == 0) {
                    this._o1();
                }
                else {
                    ElementObj.$swiperItem[this.swiperIndex].querySelector('.el-icon-video-play').click();
                    showTip('⚠️⚠️⚠️正在初始化', 3500);
                    let $btn = (_c = document.querySelector('.el-message-box__btns')) === null || _c === void 0 ? void 0 : _c.lastChild;
                    yield sleep(2000);
                    $btn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 5000);
                }
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('正在初始化', 2500);
                yield sleep(3500);
                let activeClass = this.studyType == 1 ? 'section-cur' : 'study';
                ElementObj.$allTask.forEach((item, index) => {
                    if (this.studyType == 1) {
                        let $item = item;
                        if ($item.classList.contains(activeClass)) {
                            this.currentIndex = index;
                        }
                    }
                    if (this.studyType == 2) {
                        let $item = item.querySelector('i');
                        let status = $item.title;
                        if (status != '已学习' && this.currentIndex == -1) {
                            this.currentIndex = index;
                        }
                    }
                });
                if (this.currentIndex == -1) {
                    alert('当前课程章节已全部播放完');
                    return;
                }
                if (this.studyType == 2 && this.currentIndex != -1) {
                    this.playNext(this.currentIndex - 1);
                }
                // if(this.currentIndex == -1){
                //     this.currentIndex = 0
                // }
                showTip('⚠️⚠️⚠️初始化,请稍后', 3000);
                if (this.studyType == 1) {
                    this._o1();
                }
                if (this.studyType == 2) {
                    this.getSwiperIndex();
                }
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.timer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.setAttribute('muted', 'muted');
                yield sleep(200);
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3000);
                if (this.studyType == 2) {
                    let index = yield this.getDocIndex();
                    setTimeout(() => {
                        this.eachPlayDoc(index);
                    }, 3000);
                    this.changeHtml($el('#video'));
                    this.listenPageHide();
                    this.listenPlayTime();
                    this.reloadPage();
                }
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    var _c;
                    showTip('🔉正在切换课程', 2500);
                    if (this.studyType == 2) {
                        if (this.swiperIndex >= ElementObj.$swiperItem.length - 1) {
                            location.reload();
                        }
                        else {
                            this.swiperIndex += 1;
                            ElementObj.$swiperItem[this.swiperIndex].querySelector('.el-icon-video-play').click();
                            showTip('⚠️⚠️⚠️正在切换视频', 5000);
                            let $btn = (_c = document.querySelector('.el-message-box__btns')) === null || _c === void 0 ? void 0 : _c.lastChild;
                            yield sleep(2000);
                            $btn.click();
                            setTimeout(() => {
                                this._o1();
                            }, 5000);
                        }
                    }
                    if (this.studyType == 1) {
                        if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                            alert('当前章节课程已学完');
                            return;
                        }
                        this.currentIndex += 1;
                        let $nextBtn;
                        $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a');
                        $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                    }
                }));
            });
        }
        getDocIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$docs = document.querySelectorAll('.abcd .file-box');
                yield sleep(200);
                let index = -1;
                for (var i = 0; i <= ElementObj.$docs.length - 1; i++) {
                    let status = ElementObj.$docs[i].querySelector('.fs12').innerText;
                    if (status != '( 已完成 )') {
                        index = i;
                        break;
                    }
                }
                return index;
            });
        }
        playDoc(type) {
            return __awaiter(this, void 0, void 0, function* () {
                let index = yield this.getDocIndex();
                if (index == -1) {
                    this.playNext();
                    return;
                }
                this.eachPlayDoc(index, () => {
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        this.playNext();
                    }), 2000);
                });
            });
        }
        eachPlayDoc(index = 0, callback) {
            if (index == -1)
                return;
            let T = setInterval(() => {
                if (index >= ElementObj.$docs.length - 1) {
                    clearInterval(T);
                    if (typeof callback == 'function') {
                        callback();
                    }
                }
                ElementObj.$docs[index].querySelector('button').click();
                index += 1;
            }, 2000);
        }
        playNext(nextIndex) {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                if (nextIndex != undefined) {
                    this.currentIndex = nextIndex;
                }
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    // let $dingzhiFanhui = document.querySelector('.dingzhiFanhui') as HTMLElement;
                    // await sleep(200)
                    // $dingzhiFanhui.click()
                    alert('当前章节课程已学完');
                    return;
                }
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelectorAll('span')[1];
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                yield sleep(2000);
                let $btn = (_c = document.querySelector('.el-message-box__btns')) === null || _c === void 0 ? void 0 : _c.lastChild;
                if (!!$btn) {
                    $btn.click();
                }
                showTip('⚠️⚠️⚠️正在切换下一节', 4000);
                setTimeout(() => {
                    this.getSwiperIndex();
                }, 4500);
            });
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`);
            }, 5000);
        }
        reloadPage() {
            return __awaiter(this, void 0, void 0, function* () {
                let count = 6 * 60;
                let studyInterval = setInterval(() => {
                    if (count <= 0) {
                        clearInterval(studyInterval);
                        location.reload();
                    }
                    count -= 1;
                }, 1000);
            });
        }
    }
    xibeisfzyjy.ctxid = 26;
    /**
     * 河南省专业技术人员学习公社
     * 27
     * henangongshe
     * */
    class henangongshe extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    let $menuNodes = document.querySelectorAll('#bxkBtudyDiv a');
                    if ($menuNodes.length) {
                        clearInterval(interval);
                        this.getParentIndex($menuNodes);
                    }
                    ElementObj.$allTask = document.querySelectorAll('.course-info .video-title');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                    }
                    ElementObj.$handleSpeedUp.style.display = 'none';
                }), 1000);
            });
        }
        getParentIndex($menuNodes) {
            return __awaiter(this, void 0, void 0, function* () {
                $menuNodes[0].click();
                showTip('⚠️⚠️⚠️正在初始化', 3000);
                yield sleep(3000);
                ElementObj.$parentNodes = document.querySelectorAll('tbody tr');
                for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) {
                    let status = ElementObj.$parentNodes[i].querySelector('span').innerText;
                    if (parseInt(status) <= 98) {
                        this.parentIndex = i;
                        break;
                    }
                }
                if (this.parentIndex == -1) {
                    $menuNodes[1].click();
                    yield sleep(3000);
                    ElementObj.$parentNodes = document.querySelectorAll('tbody tr');
                    for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) {
                        let status = ElementObj.$parentNodes[i].querySelector('span').innerText;
                        if (parseInt(status) <= 98) {
                            this.parentIndex = i;
                            break;
                        }
                    }
                }
                if (this.parentIndex == -1) {
                    alert('全部课程已学完');
                    return;
                }
                // @ts-ignore
                let homeUrl = GM_setValue("homeUrl", location.href);
                ElementObj.$parentNodes[this.parentIndex].querySelector('button').click();
                setTimeout(() => {
                    window.close();
                }, 5500);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️正在初始化', 3500);
                ElementObj.$allTask.forEach((item, index) => {
                    let $fourEle = item.querySelector('.four');
                    let _status = $fourEle.innerText;
                    if (_status != '100%' && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉初始化完成,5秒后开始播放', 3000);
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(200);
                $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.volume = 0;
                let $startBtn = document.querySelector('.xgplayer-start');
                yield sleep(200);
                $startBtn.click();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.punchCard();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        setTimeout(() => {
                            window.close();
                        }, 1500);
                        // @ts-ignore
                        let homeUrl = GM_getValue("homeUrl", null);
                        // @ts-ignore
                        GM_openInTab(homeUrl, { active: true });
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300);
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
            });
        }
        /**
         * 课程打卡
         * */
        punchCard() {
            setInterval(() => {
                let $elem = document.querySelector('#comfirmClock');
                if (!!$elem) {
                    $elem.click();
                }
            }, 5000);
        }
        updateSpeedElement(num) {
            localStorage.setItem('_localSpeed', num.toString());
            ElementObj.$video.playbackRate = num;
        }
    }
    /**
     * 自贡开放大学
     * zgrtvu
     * 32
     * */
    class zgrtvu extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    let $button = document.querySelector('.head_right button');
                    if (!!$button) {
                        clearInterval(interval);
                        $button.click();
                    }
                    ElementObj.$allTask = document.querySelectorAll('.page-name');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                    }
                    ElementObj.$handleSpeedUp.style.display = 'none';
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️正在初始化', 3500);
                ElementObj.$allTask.forEach((item, index) => {
                    let activeClass = 'complete';
                    if (!item.classList.contains(activeClass) && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉初始化完成,5秒后开始播放', 3000);
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(200);
                $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.volume = 0;
                let $startBtn = document.querySelector('.mejs__overlay-button');
                yield sleep(200);
                $startBtn.click();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.punchCard();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        setTimeout(() => {
                            window.close();
                        }, 1500);
                        let $backBtn = document.querySelector('.back-btn');
                        yield sleep(200);
                        $backBtn.click();
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300);
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
            });
        }
        /**
         * 课程打卡
         * */
        punchCard() {
            setInterval(() => {
                let $elem = document.querySelector('.btn-submit');
                if (!!$elem) {
                    $elem.click();
                }
            }, 5000);
        }
    }
    /**
     * 河南省专业技术人员继续教育网络学习平台
     * henandikuang
     * 33
     * */
    class henandikuang extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    ElementObj.$parentNodes = document.querySelectorAll('.state-l');
                    if (ElementObj.$parentNodes.length) {
                        clearInterval(interval);
                        ElementObj.$parentNodes[0].querySelector('.btn span').click();
                        return;
                    }
                    ElementObj.$parentNodes = document.querySelectorAll('.course-card-item');
                    if (ElementObj.$parentNodes.length) {
                        clearInterval(interval);
                        this.getParentIndex();
                    }
                    ElementObj.$allTask = document.querySelectorAll('.pt5 li');
                    if (ElementObj.$allTask.length) {
                        clearInterval(interval);
                        this.getCurrentIndex();
                    }
                    ElementObj.$handleSpeedUp.style.display = 'none';
                }), 1000);
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let index = -1;
                for (var i = 0; i < ElementObj.$parentNodes.length - 1; i++) {
                    let status = ElementObj.$parentNodes[i].querySelector('.progress-bar').style.width;
                    if (parseInt(status) < 98) {
                        index = i;
                        break;
                    }
                }
                if (index == -1) {
                    alert('当前课程已全部学完,请更换其它课程');
                    return;
                }
                ElementObj.$parentNodes[i].querySelector('a').click();
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️正在初始化', 1500);
                ElementObj.$allTask.forEach((item, index) => {
                    let $pagress = item.querySelector('.badge');
                    let status = $pagress.innerText;
                    if (parseInt(status) != 100 && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                showTip('⚠️⚠初始化完成,5秒后开始播放', 3000);
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(200);
                $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelectorAll('video')[1];
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                // this.listenVidoeStatus(ElementObj.$video, () => {
                //     ElementObj.$video.volume = 0
                //     ElementObj.$video.play()
                // })
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        let $backBtn = document.querySelector('a.back');
                        yield sleep(200);
                        $backBtn.click();
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300);
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
            });
        }
    }
    /**
     * 泰安市专业技术人员续教育培训平台
     * 34
     * tazhuanjipx
     * */
    class tazhuanjipx extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                this._o1();
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                this._o1();
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️正在初始化', 1500);
                ElementObj.$allTask.forEach((item, index) => {
                    let $pagress = item.querySelector('.badge');
                    let status = $pagress.innerText;
                    if (parseInt(status) != 100 && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                showTip('⚠️⚠初始化完成,5秒后开始播放', 3000);
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(200);
                $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelectorAll('video')[1] || document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.listenTopic();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        alert('全部课程已播放完');
                        return;
                    }
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
            });
        }
        listenTopic() {
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                var _c;
                let topicList = document.querySelectorAll('.ccQuestionList li');
                if (topicList.length) {
                    clearInterval(this.timer);
                    let result = MyTool.getValue('isRight');
                    if (!result) {
                        let $item = topicList[0];
                        $item.click();
                    }
                    else {
                        let $item = topicList[1];
                        $item.click();
                    }
                    yield sleep(3000);
                    let $rightBtn = document.querySelector('#rightBtn');
                    if (!!$rightBtn) {
                        MyTool.setValue('isRight', true);
                        $rightBtn.click();
                    }
                    else {
                        MyTool.setValue('isRight', false);
                        (_c = $el('#wrongBtn')) === null || _c === void 0 ? void 0 : _c.click();
                    }
                }
            }), 1000 * 10);
        }
    }
    /**
     * 浙江统计教育培训在线学习中心
     * 36
     * zhejiangtjj
     * */
    class zhejiangtjj extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $allTask = document.querySelectorAll('.course_2'); // 最外层
                        let $allTask2 = document.querySelectorAll('tbody tr.el-table__row');
                        if ($allTask.length || $allTask2.length) {
                            clearInterval(interval);
                            ElementObj.$parentNodes = $allTask.length ? $allTask : $allTask2;
                            let type = $allTask.length ? 1 : 2;
                            this.getParentIndex(type);
                        }
                        ElementObj.$allTask = document.querySelectorAll('.page-name');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex(type) {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️正在初始化', 1500);
                let startindex = type == 1 ? 0 : -1;
                ElementObj.$parentNodes.forEach((item, index) => {
                    if (index > startindex) {
                        let $pagress = item.querySelector('.el-progress__text');
                        let status = $pagress.innerText;
                        if (parseInt(status) != 100 && this.currentIndex == -1) {
                            this.currentIndex = index;
                        }
                    }
                });
                if (this.currentIndex == -1 && type == 2) {
                    let homeUrl = 'https://edu.tjj.zj.gov.cn/#/personal?componentId=ClassList&type=classlist';
                    // @ts-ignore
                    GM_openInTab(homeUrl, { active: true });
                    setTimeout(() => {
                        window.close();
                    }, 3500);
                    return;
                }
                showTip('⚠️⚠初始化完成,5秒后开始播放', 3000);
                let $nextBtn = ElementObj.$parentNodes[this.currentIndex].querySelector('button');
                yield sleep(200);
                $nextBtn.click();
                setTimeout(() => {
                    location.reload();
                }, 3000);
                // setTimeout(()=>{
                //     window.close()
                // }, 4500)
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️正在初始化', 3500);
                ElementObj.$allTask.forEach((item, index) => {
                    let activeClass = 'complete';
                    if (!item.classList.contains(activeClass) && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                ElementObj.$handleSpeedUp.style.display = 'none';
                showTip('🔉初始化完成,5秒后开始播放', 3000);
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(200);
                $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    var _c;
                    // @ts-ignore
                    let $iframe = (_c = document.querySelector('#playerFrame')) === null || _c === void 0 ? void 0 : _c.contentDocument;
                    ElementObj.$video = $iframe.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.volume = 0;
                let $startBtn = document.querySelector('.mejs__overlay-button');
                yield sleep(200);
                $startBtn.click();
                ElementObj.$video.playbackRate = toolOption.accelerator;
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.punchCard();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        setTimeout(() => {
                            window.close();
                        }, 3500);
                        let $backBtn = document.querySelector('.back-btn');
                        yield sleep(200);
                        $backBtn.click();
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300);
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
            });
        }
        /**
         * 课程打卡
         * */
        punchCard() {
            setInterval(() => {
                let $elem = document.querySelector('.btn-submit');
                if (!!$elem) {
                    $elem.click();
                }
            }, 5000);
        }
    }
    /**
     * 江西职业培训
     * 38
     * jiangxizhipeizaixian
     * */
    class jiangxizhipeizaixian extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.units_wrap_box___1ncip');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️正在初始化', 1500);
                ElementObj.$allTask.forEach((item, index) => {
                    let $pregree = item.querySelector('.progress_get_on___3TDga');
                    let $not_start = item.querySelector('.not_start___3dAwS');
                    if ((!!$pregree || !!$not_start) && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                if (this.currentIndex == -1) {
                    this.currentIndex = 0;
                }
                showTip('⚠️⚠初始化完成,5秒后开始播放', 3000);
                ElementObj.$allTask[this.currentIndex].click();
                showTip('⚠️⚠初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                yield this.getVideoDom();
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3500);
                ElementObj.$handleSpeedUp.style.background = '#f01414';
                ElementObj.$handleSpeedUp.innerText = '加速成功';
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                this.listenRebort();
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        alert('当前课程视频已全部播放完');
                        return;
                    }
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    yield sleep(300);
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }, 1500);
                });
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
    }
    /**
     * 安徽继续教育在线
     * 39
     * anhuijixujyzx
     * */
    class anhuijixujyzx extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var _c;
                    try {
                        ElementObj.$btn_dropdown = document.querySelector('.btn_dropdown');
                        (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click();
                        let $nextBtn = document.querySelector('.btn.btn-green');
                        if (!!$nextBtn) {
                            clearInterval(interval);
                            yield sleep(300);
                            $nextBtn.click();
                        }
                        ElementObj.$allTask = document.querySelectorAll('.list-order ul li a:not(.toggle_lesson)');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500);
                yield sleep(1500);
                let $sectionlist = $el('#sectionlist');
                if ($sectionlist.style.display != 'none') {
                    (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click();
                }
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getIndex() {
            let index = 0;
            for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                let $parentElement = ElementObj.$allTask[i].parentElement;
                if ($parentElement.classList.contains('current')) {
                    index = i;
                    break;
                }
            }
            return index;
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelectorAll('video');
                    if (ElementObj.$video.length > 1) {
                        ElementObj.$video = document.querySelectorAll('video')[1];
                    }
                    else {
                        ElementObj.$video = document.querySelectorAll('video')[0];
                    }
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                    }
                    else {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 3000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3500);
                    ElementObj.$handleSpeedUp.style.background = '#f01414';
                    ElementObj.$handleSpeedUp.innerText = '加速成功';
                    this.listenPlayTime();
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('🔉检测到没有视频,3秒后自动切换下一个', 3000);
                    yield sleep(3000);
                    let index = this.getIndex();
                    let $preNext = document.querySelector('.preNext.next');
                    if (!!$preNext) {
                        $preNext.click();
                        return;
                    }
                    let $nextBtn = ElementObj.$allTask[index + 1];
                    yield sleep(200);
                    $nextBtn.click();
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
            });
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                count += 1;
                let $nextBtn = document.querySelector('.btn.btn-green');
                if (!!$nextBtn) {
                    clearInterval(this.timer);
                    showTip('🔉检测到视频已学完,3秒后自动切换下一个');
                    setTimeout(() => {
                        $nextBtn.click();
                    }, 3000);
                }
            }, 3000);
        }
    }
    /**
     * 兰州大学教育培训、甘肃省专业技术人员继续教育平台
     * 40
     * lanzhoudxgs
     * */
    class lanzhoudxgs extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this.listenVidoeStatusTimer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var _c;
                    try {
                        ElementObj.$btn_dropdown = document.querySelector('#catalogA');
                        (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click();
                        ElementObj.$allTask = document.querySelectorAll('li.activity-node');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500);
                yield sleep(1500);
                let $sectionlist = $el('#toolsContentDiv');
                if ($sectionlist.style.display != 'none') {
                    (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click();
                }
                let arr = [];
                ElementObj.$allTask.forEach((item, index) => {
                    let $i = item.querySelector('.cedu-file-video');
                    if (!!$i) {
                        arr.push(item);
                    }
                });
                ElementObj.$allTask = arr;
                this.currentIndex = 0;
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    let $playBtn = document.querySelector('.vjs-big-play-button');
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video && !!$playBtn) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.volume = 0;
                let $playBtn = document.querySelector('.vjs-big-play-button');
                yield sleep(200);
                $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click();
                yield sleep(2500);
                ElementObj.$video.pause();
                setTimeout(() => {
                    ElementObj.$video.currentTime -= 30;
                    ElementObj.$video.play();
                }, 2500);
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3500);
                this.changeHtml($el('#video_div'));
                this.listenPlayTime();
                this.listenPageHide();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext();
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }, 1500);
                });
            });
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`);
                if (ElementObj.$video.currentTime >= ElementObj.$video.duration - 4) {
                    this.playNext();
                }
            }, 5000);
        }
        /**
         * 监听视频状态
         * */
        listenVidoeStatus($video, callback) {
            if (!$video)
                return;
            let count = 0;
            this.timer2 = setInterval(() => {
                if ($video.readyState < 4) {
                    this.addInfo(`检测到${count}次,视频正在加载`, 0);
                    count += 1;
                    if (count >= 20) {
                        location.reload();
                    }
                }
                let status = $video.paused;
                if (status) {
                    count += 1;
                    if (typeof callback == 'function') {
                        if (count >= 20) {
                            location.reload();
                        }
                        else {
                            callback();
                        }
                    }
                    else {
                    }
                }
            }, 3000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500);
                yield sleep(5000);
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                yield sleep(300);
                let $i = $nextBtn.querySelector('.cedu-file-video');
                if (!!$i) {
                    $nextBtn.click();
                }
                else {
                    alert('当前课程视频已全部播放完');
                }
            });
        }
    }
    /**
     * 机电一体化设计系统 继续教育平台
     * 41
     * jidianshejijiaoyu
     * */
    class jidianshejijiaoyu extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.swiperIndex = -1;
            this.timer = null;
            this.listenVidoeStatusTimer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $btn0 = document.querySelector('.layui-layer-btn0');
                        if (!!$btn0) {
                            clearInterval(interval);
                            this.playNext();
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.course_chapter_item');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500);
                yield sleep(1500);
                ElementObj.$allTask.forEach((item, index) => {
                    let $i = item.querySelector('i.fa-circle');
                    if (!$i && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                });
                if (this.currentIndex == -1) {
                    alert('当前课程已全部播放完');
                    return;
                }
                ElementObj.$allTask[this.currentIndex].querySelector('.section_title').click();
                showTip('⚠️⚠️⚠️正在初始化', 3500);
                setTimeout(() => {
                    this.getSwiperIndex();
                }, 4500);
            });
        }
        getSwiperIndex() {
            ElementObj.$swiperItem = document.querySelectorAll('#menu_tarr_content .courseware_menu_item');
            this.swiperIndex = -1;
            for (var i = 0; i <= ElementObj.$swiperItem.length - 1; i++) {
                let $item = ElementObj.$swiperItem[i];
                let $i = $item.querySelector('.icon-note-video-learning');
                if (!!$i) {
                    this.swiperIndex = i;
                    $item.click();
                    setTimeout(() => {
                        this._o1();
                    }, 3500);
                    break;
                }
            }
            if (this.swiperIndex == -1) {
                location.reload();
            }
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    let $playBtn = document.querySelector('.vjs-big-play-button');
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video && !!$playBtn) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.setAttribute('muted', 'muted');
                ElementObj.$video.volume = 0;
                yield sleep(2500);
                ElementObj.$video.play();
                this.changeHtml($el('.video-play'));
                this.listenPlayTime();
                this.listenPageHide();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext();
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }, 1500);
                });
            });
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`);
                let $complete = document.querySelector('.complete');
                if (!!$complete) {
                    this.addInfo(`✅✅✅,当前视频播放完成,5秒后自动切换下一个视频`);
                    if (this.swiperIndex >= ElementObj.$swiperItem.length - 1) {
                        location.reload();
                    }
                    else {
                        this.swiperIndex += 1;
                        $el('#right_tarr').click();
                        setTimeout(() => {
                            this._o1();
                        }, 3500);
                    }
                }
                if (ElementObj.$video.currentTime >= ElementObj.$video.duration - 4) {
                    this.playNext();
                }
            }, 5000);
        }
        /**
         * 监听视频状态
         * */
        listenVidoeStatus($video, callback) {
            if (!$video)
                return;
            let count = 0;
            this.timer2 = setInterval(() => {
                if ($video.readyState < 4) {
                    this.addInfo(`检测到${count}次,视频正在加载`, 0);
                    count += 1;
                    if (count >= 20) {
                        location.reload();
                    }
                }
                let status = $video.paused;
                if (status) {
                    count += 1;
                    if (typeof callback == 'function') {
                        if (count >= 20) {
                            location.reload();
                        }
                        else {
                            callback();
                        }
                    }
                    else {
                    }
                }
            }, 3000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500);
                yield sleep(5000);
                let $btn0 = document.querySelector('.layui-layer-btn0');
                if (!!$btn0) {
                    $btn0.click();
                    yield sleep(2000);
                    location.reload();
                }
            });
        }
    }
    /**
     * 兰州理工大学现代远程教育学习平台
     * 44
     * ycjyluteducn
     * */
    class ycjyluteducn extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this.parentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                window.alert = function () {
                };
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    if (['/learnspace/learn/homework/blue/student/homework_complete.action', '/learnspace/course/test/coursewareTest_intoTestPage.action', "/learnspace/learn/learn/blue/content_video.action"].includes(location.pathname)) {
                        clearInterval(interval);
                        window.close();
                        return;
                    }
                    let $menu = document.querySelector('#courseware_main_menu');
                    let $menu_a = $menu.querySelector('a');
                    if (!!$menu_a) {
                        clearInterval(interval);
                        $menu_a.click();
                        yield this.findParentIndex();
                    }
                }), 500);
            });
        }
        findParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('🔉正在初始化', 2500);
                yield sleep(4500);
                // @ts-ignore
                unsafeWindow.alert = () => {
                };
                ElementObj.$handleSpeedUp.style.display = 'none';
                let $contentIframe = document.querySelector('.contentIframe');
                let _document = $contentIframe.contentWindow.document;
                $contentIframe.contentWindow.alert = () => {
                };
                ElementObj.$parentNodes = _document.querySelectorAll('.vcon li');
                for (let i = 0; i < ElementObj.$parentNodes.length; i++) {
                    let item = ElementObj.$parentNodes[i];
                    let $span = item.querySelector('span');
                    let isTest = item.innerText.indexOf('练习');
                    let isTest2 = item.innerText.indexOf('课程作业');
                    if (($span.classList.contains('undo') || $span.classList.contains('doing')) && this.parentIndex == -1 && isTest == -1 && isTest2 == -1) {
                        this.parentIndex = i;
                        ElementObj.$parentNodes[i].querySelector('a').click();
                        break;
                    }
                }
                if (this.parentIndex == -1) {
                    alert('当前课程已全部播发完');
                    return;
                }
                yield this.getCurrentIndex();
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('正在初始化', 2500);
                let timer = setInterval(() => {
                    var _c;
                    let $contentIframe = document.querySelector('.contentIframe');
                    ElementObj._document = $contentIframe.contentWindow.document;
                    ElementObj.$allTask = ElementObj._document.querySelectorAll('.menub');
                    if (ElementObj.$allTask.length) {
                        clearInterval(timer);
                        this.currentIndex = 0;
                        (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click();
                        showTip('初始化完成,5秒后开始播放');
                        this._o1();
                    }
                }, 1000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    let _document = ElementObj._document.querySelector('#mainFrame').contentDocument;
                    ElementObj.$video = _document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    let $doc = _document.querySelector('#content_frame');
                    if (!!$doc) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                    else {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer2);
                // @ts-ignore
                unsafeWindow.alert = () => {
                };
                let studytype = yield this.getVideoDom();
                this.listenRebort();
                console.log('studytype==>>', studytype);
                if (studytype == 1) {
                    ElementObj.$video.volume = 0;
                    yield sleep(200);
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        setTimeout(() => {
                            ElementObj.$video.playbackRate = toolOption.accelerator;
                        }, 3000);
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        yield sleep(3000);
                        this.playNext();
                    }));
                }
                if (studytype == 2) {
                    this.timer2 = setTimeout(() => {
                        this.playNext();
                    }, 7000);
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                // @ts-ignore
                unsafeWindow.alert = function () {
                };
                let $btn = document.querySelector('.layui-layer-btn a');
                if (!!$btn) {
                    $btn.click();
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                // @ts-ignore
                unsafeWindow.alert = () => {
                };
                showTip('✅✅✅播放完成,正在切换课程', 3500);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    this.parentIndex += 1;
                    let isTest = ElementObj.$parentNodes[this.parentIndex].innerText.indexOf('练习');
                    if (isTest != -1) {
                        this.parentIndex += 1;
                    }
                    ElementObj.$parentNodes[this.parentIndex].querySelector('a').click();
                    setTimeout(() => {
                        this.getCurrentIndex();
                    }, 4500);
                    return;
                }
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                yield sleep(5000);
                this._o1();
            });
        }
    }
    ycjyluteducn.ctxid = 26;
    /**
     * 广东人才继续教育网
     * 45
     * gdrcjxjyw
     * */
    class gdrcjxjyw extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$parentNodes = document.querySelectorAll('.m-list .item');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            this.getParentIndex();
                            return;
                        }
                        ElementObj.$video = document.querySelector('video');
                        if (!!ElementObj.$video && location.host == 'www.rcjxjy.com') {
                            clearInterval(interval);
                            this._o1();
                            return;
                        }
                        let $table = document.querySelectorAll('.player-table')[2];
                        ElementObj.$allTask = $table.querySelectorAll('td');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('✅✅✅正在初始化,请勿点击', 3000);
                let count = 0;
                let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    ElementObj.$parentNodes[count].querySelector('.btn-continue-study').click();
                    yield sleep(500);
                    ElementObj.$allTask = document.querySelectorAll('.video-item .f-cb');
                    for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                        let $status = ElementObj.$allTask[i].querySelector('.videoName').innerText;
                        if ($status != '播放完成') {
                            clearInterval(timer);
                            showTip('✅✅✅初始化完成');
                            let $nextBtn = ElementObj.$allTask[i].querySelector('a.u-btn');
                            $nextBtn.click();
                            break;
                        }
                    }
                    count += 1;
                }), 3000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let _currentIndex = -1;
                ElementObj.$allTask.forEach((item, index) => {
                    let $pagress = item.querySelector('.playLine');
                    let status = $pagress.innerText;
                    if (parseInt(status) != 100 && this.currentIndex == -1) {
                        this.currentIndex = index;
                    }
                    if (item.classList.contains('couBg')) {
                        _currentIndex = index;
                    }
                });
                if (this.currentIndex == -1) {
                    alert('当前课程视频已全部播放完');
                    return;
                }
                if (this.currentIndex != _currentIndex) {
                    let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a');
                    $nextBtn.click();
                }
                showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 3500);
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            ElementObj.$handleSpeedUp.style.display = 'none';
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                        return;
                    }
                    // @ts-ignore
                    let $iframe = document.querySelector('#c_frame').contentDocument;
                    ElementObj.$video = $iframe.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3500);
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500);
                    yield sleep(3000);
                    if (location.host == 'www.rcjxjy.com') {
                        let $backBtn = document.querySelector('a.u-btn.normal');
                        $backBtn.click();
                    }
                    else {
                        location.reload();
                    }
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 1500);
                });
            });
        }
    }
    /**
     * 师学通国培计划
     * 47
     * shixuetong
     * */
    class shixuetong extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        ElementObj.$allTask = document.querySelectorAll('.Nvideo-item li');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            $el('.Nvideo-playbox').style.position = 'relative';
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                this.currentIndex = 0;
                showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 3500);
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                    }
                    if (count > 10) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.timer);
                clearInterval(this.timer2);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3500);
                    this.changeHtml($el('.video'));
                    this.listenPageHide();
                    this.listenPlayTime();
                    this.listenRebort();
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                            ElementObj.$video.playbackRate = toolOption.accelerator;
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('⚠️⚠️⚠️检测到当前不是视频,5秒后自动切换下一个视频', 4500);
                    this.playNext();
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(2000);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    let $courseStudyBestMinutesNumber = document.querySelector('#courseStudyBestMinutesNumber').innerText;
                    let $courseStudyMinutesNumber = document.querySelector('#courseStudyMinutesNumber').innerText;
                    if (parseFloat($courseStudyBestMinutesNumber) > parseFloat($courseStudyMinutesNumber)) {
                        location.reload();
                    }
                    return;
                }
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                $nextBtn.click();
                setTimeout(() => {
                    let $confirm = document.querySelector('.layui-layer-btn- a');
                    $confirm === null || $confirm === void 0 ? void 0 : $confirm.click();
                    this._o1();
                }, 4500);
            });
        }
        listenPlayTime() {
            showTip('⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`);
                if (count % 30 == 0) {
                    let $endTime = $el('#courseStudyBestMinutesNumber').innerText;
                    let refreshBtn = document.querySelector('.studyCourseTimeRefresh');
                    refreshBtn === null || refreshBtn === void 0 ? void 0 : refreshBtn.click();
                    yield sleep(2000);
                    let currentStudyTime = $el('#courseStudyMinutesNumber').innerText;
                    let str = `✅✅✅本课程最长可累计时间:${$endTime}分钟,您已成功学习${currentStudyTime}分钟`;
                    this.addInfo(str, 0);
                }
            }), 5000);
        }
        listenRebort() {
            this.timer2 = setInterval(() => {
                let $codespan = document.querySelector('#codespan');
                if ($codespan) {
                    clearInterval(this.timer2);
                    let $code = document.querySelector("#code");
                    let str = $codespan.innerText;
                    $code.value = str;
                    let $submit = document.querySelector('.layui-layer-btn0');
                    $submit.click();
                    this.listenRebort();
                }
            }, 1000 * 8);
        }
    }
    /**
     * 山东省文化和旅游厅继续教育公共服务平台
     * 48
     * shandongenhualvyou
     * */
    class shandongenhualvyou extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let $toolbarnav = document.querySelector('#dashboard-toolbar-nav li');
                $toolbarnav === null || $toolbarnav === void 0 ? void 0 : $toolbarnav.click();
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('li.task-item');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (let i = 0; i < ElementObj.$allTask.length; i++) {
                    let item = ElementObj.$allTask[i];
                    let $icon = item.querySelector('.es-icon-iccheckcircleblack24px');
                    if (!$icon) {
                        this.currentIndex = i;
                        break;
                    }
                }
                showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 3500);
                setTimeout(() => {
                    this._o1();
                }, 4500);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    let $iframe = document.querySelector('#task-content-iframe');
                    let _documet = $iframe.contentDocument;
                    ElementObj.$video = $iframe.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.timer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3500);
                if (!ElementObj.$ctxstatsbox) {
                    this.changeHtml($el('.video'));
                }
                this.listenPageHide();
                this.listenPlayTime();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500);
                    yield sleep(3000);
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 1500);
                });
            });
        }
        listenPlayTime() {
            showTip('⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                let durrentTime = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durrentTime}`);
            }), 5000);
        }
    }
    /**
     * 甘肃省公务员网络培训网
     * 49
     * gansugongwuyuan
     */
    class gansugongwuyuan extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $menus = $el('.min_le_1 a');
                        if (!!$menus) {
                            clearInterval(interval);
                            let mytoolkey = localStorage.getItem('mytoolkey');
                            MyTool.setValue('mytoolkey', mytoolkey);
                            $menus.click();
                            yield sleep(2000);
                            $el('.xuxi_1').click();
                            yield sleep(2000);
                            this.getParentIndex();
                            return;
                        }
                        ElementObj.$video = document.querySelector('video');
                        if (!!ElementObj.$video) {
                            clearInterval(interval);
                            let mytoolkey = MyTool.getValue('mytoolkey');
                            // alert(mytoolkey)
                            this.deleteDom();
                            this.handleClickSpeedUp2(mytoolkey);
                        }
                        ElementObj.$handleSpeedUp.style.display = 'none';
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                $el('a.my').click();
                yield sleep(2000);
                let pageNum = Number($el('#pagenumtext').value);
                var pageNumArr = [];
                for (var i = pageNum; i > 0; i--) {
                    pageNumArr.push(i);
                }
                let isFind = false;
                for (let i of pageNumArr) {
                    if (isFind)
                        break;
                    yield sleep(1500);
                    ElementObj.$allTask = document.querySelectorAll('.main_r_dd2');
                    for (var k = 0; k <= ElementObj.$allTask.length - 1; k++) {
                        let $hqjd_btn = ElementObj.$allTask[k].querySelector('.hqjd_btn');
                        if (!!$hqjd_btn) {
                            $hqjd_btn.click();
                            yield sleep(2500);
                        }
                        let $jinduSpan = ElementObj.$allTask[k].querySelector('.jindu div');
                        let status = parseInt($jinduSpan.style.width);
                        if (status < 100) {
                            isFind = true;
                            MyTool.setValue('pageNum', i);
                            MyTool.setValue('homeUrl', location.href);
                            let $nextBtn = ElementObj.$allTask[k].querySelector('#playVideo');
                            $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                            setTimeout(() => {
                                window.close();
                            }, 1000 * 10);
                            break;
                        }
                        pageNum -= 1;
                        let $prePage = $el('.syy');
                        $prePage === null || $prePage === void 0 ? void 0 : $prePage.click();
                    }
                }
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = MyTool.getValue('accelerator');
                }, 3500);
                this.listenRebort();
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    let homeurl = MyTool.getValue('homeUrl');
                    // window.open(homeurl)
                    MyTool.openInTab(homeurl);
                    setTimeout(() => {
                        window.close();
                    }, 10000);
                    return;
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        let $confirmBtn = document.querySelector('#dvMsgBtns input');
                        $confirmBtn === null || $confirmBtn === void 0 ? void 0 : $confirmBtn.click();
                        yield sleep(2000);
                        ElementObj.$video.play();
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }), 2500);
                });
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('#dvMsgBtns input');
                if (!!$btn) {
                    this.deleteDom();
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }, 1500);
                }
            }, 3000);
        }
        deleteDom() {
            let parent = document.querySelector('body');
            let child = document.getElementById('dvMsgBox');
            let child2 = document.getElementById('ShowBolightBox');
            let newElement = document.createElement('div');
            newElement.innerHTML = '<div></div>';
            parent.replaceChild(newElement, child);
            parent.replaceChild(newElement, child2);
        }
        handleClickSpeedUp2(key, callback) {
            return __awaiter(this, void 0, void 0, function* () {
                if (key) {
                    this.speedStatus = 1;
                    let result = yield axfedata({
                        method: 'GET',
                        url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`,
                    });
                    if (result.code == 200) {
                        this.speedStatus = 1;
                        toolOption.CtxMain.play();
                    }
                    else {
                        showTip(`🔉🔉🔉${result.message}`, 5000, true);
                        return;
                    }
                }
                else if (!key) {
                    alert('请先购买key');
                    window.open(_bt);
                }
                else {
                    alert('程序错误,请联系客服');
                }
            });
        }
        handleChangeCtxSpeed(e) {
            let whiteList = speedArr;
            let s = Number(e);
            if (e && whiteList.includes(s)) {
                toolOption.accelerator = s;
                MyTool.setValue('accelerator', s.toString());
                if (ElementObj.$video) {
                    ElementObj.$video.playbackRate = s;
                }
            }
        }
    }
    /**
     * 乌鲁木齐建设职业培训中心
     * wlmqcol
     * 50
     */
    class wlmqcol extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        let $menu = document.querySelector('#tab-second');
                        if (!!$menu) {
                            clearInterval(interval);
                            $menu.click();
                            this.getCurrentIndex();
                            return;
                        }
                        let $video = document.querySelector('video');
                        if (!!$video) {
                            clearInterval(interval);
                            this.pdPlayFn(location.href);
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(1000);
                ElementObj.$allTask = document.querySelectorAll('.task-list');
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $done = ElementObj.$allTask[i].querySelector('.icon-yiwancheng');
                    if (!$done) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程已全部播放完');
                    return;
                }
                let $nextBtn = document.querySelectorAll('.task-list')[this.currentIndex].querySelector('span');
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 3000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.timer);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3500);
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext();
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }), 2500);
                });
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let $backBtn = document.querySelectorAll('.el-breadcrumb__inner.is-link')[1];
                $backBtn === null || $backBtn === void 0 ? void 0 : $backBtn.click();
                setTimeout(() => {
                    location.reload();
                }, 3500);
            });
        }
    }
    /**
     * 山东省省直专业技术人员继续教育公需课平台
     * shandongzhuanyejisu
     * 54
     * */
    class shandongzhuanyejisu extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $menus = document.querySelectorAll('.learn-menu-cell');
                        if ($menus.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                showTip('正在初始化');
                let $contentIframe = document.querySelector('.contentIframe');
                ElementObj._document = $contentIframe.contentWindow.document;
                if (location.pathname == '/learnspace/learn/learn/templateeight/index.action') {
                    ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_sectionwrap .s_pointwrap .s_point');
                }
                else {
                    ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_pointwrap .s_point');
                }
                ElementObj.$handleSpeedUp.style.display = 'none';
                console.log('ElementObj.$allTask===>>', ElementObj.$allTask);
                let activeClass = 'done_icon_show';
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i].querySelector('.item_done_icon');
                    if (!$item.classList.contains(activeClass)) {
                        this.currentIndex = i;
                        console.log('this.currentIndex', this.currentIndex);
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程已全部学完');
                    return;
                }
                (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click();
                showTip('初始化完成,5秒后开始播放');
                this._o1();
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    let _document = ElementObj._document.querySelector('#mainFrame').contentWindow.document;
                    ElementObj.$video = _document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                    }
                    if (count >= 10) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                    count++;
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studytype = yield this.getVideoDom();
                if (studytype == 1) {
                    ElementObj.$video.volume = 0;
                    yield sleep(200);
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenRebort();
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                }
                if (studytype == 2) {
                    showTip('✅✅✅检测到该章节不是视频,即将切换下一节', 2000);
                    yield sleep(2000);
                    this.playNext();
                }
            });
        }
        updateSpeedElement(num) {
            localStorage.setItem('_localSpeed', num.toString());
            ElementObj.$video.playbackRate = num;
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.layui-layer-btn0');
                if (!!$btn) {
                    setTimeout(() => {
                        $btn.click();
                        ElementObj.$video.play();
                    }, 3000);
                }
            }, 10 * 1000);
        }
        playNext() {
            if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                alert('当前课程已全部学完');
                return;
            }
            this.currentIndex += 1;
            ElementObj.$allTask[this.currentIndex].click();
            showTip('🔉正在切换课程');
            setTimeout(() => {
                this._o1();
            }, 5000);
        }
    }
    shandongzhuanyejisu.ctxid = 26;
    /**
     * 职教云 2
     * 54
     * */
    class zhijiaoyun2 extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.topIndex = 0;
            this.parentIndex = -1;
            this.currentIndex = -1;
            this.videoplaying = -1;
            this.authorization = null;
            this.classList = [];
            this.selectData = [];
            this.timer = null;
            this._init();
        }
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                // 获取所有章节
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    let $wrap = document.querySelector('.r.rFu');
                    if (location.pathname == '/study/coursePreview/spoccourseIndex/courseware') {
                        clearInterval(interval);
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        this._o1();
                    }
                    if (location.pathname == '/study/coursePreview/spoccourseIndex') {
                        clearInterval(interval);
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        yield this.getCurrentIndex();
                    }
                }), 1000);
            });
        }
        /**
         * @description 获取二级
         * */
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    ElementObj.$allTask = document.querySelectorAll('.listItem');
                    if (ElementObj.$allTask.length) {
                        clearInterval(timer);
                        let isFind = false;
                        for (let item of ElementObj.$allTask) {
                            let status = item.querySelector('.el-progress-bar__inner').style.width;
                            if (parseInt(status) < 99) {
                                isFind = true;
                                item.click();
                                yield sleep(3000);
                                item.querySelector('.items.iChild').click();
                                yield sleep(3000);
                                setTimeout(() => {
                                    location.reload();
                                }, 2000);
                                let btn = item.querySelector('.fItem');
                                if (!btn) {
                                    btn = item.querySelector('.fIteml');
                                }
                                btn.click();
                                break;
                            }
                        }
                        if (!isFind) {
                            location.href = 'https://zjy2.icve.com.cn/study/course';
                        }
                    }
                }), 2000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 7;
                let Timer = setInterval(() => {
                    if (count < 0) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    let $pages = document.querySelectorAll('.el-carousel__item');
                    if ($pages.length) {
                        clearInterval(Timer);
                        resolve(2);
                        return;
                    }
                    count -= 1;
                }, 1000);
            });
        }
        play() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                (_c = document.querySelector('.el-message-box__btns button')) === null || _c === void 0 ? void 0 : _c.click();
                yield this.changeHtml(document.querySelector('.video'));
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 2500);
                    this.listenVidoeStatus();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        yield this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 3000);
                    });
                }
                if (studyType == 2) {
                    this.addInfo('🔊🔊🔊即将开始播放文档');
                    let $pages = document.querySelectorAll('.el-carousel__item');
                    let $next = document.querySelector('.page>.next');
                    for (let item of $pages) {
                        $next.click();
                        yield sleep(500);
                    }
                    this.addInfo('🎉🎉🎉🎉🎉🎉文档播放完成🎉🎉🎉🎉🎉🎉');
                    yield this.playNext();
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let $nextBtn = document.querySelector('.next>a');
                if (($nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.innerText) == '暂无') {
                    setTimeout(() => {
                        location.reload();
                    }, 2000);
                    let backBtn = document.querySelector('.location .r');
                    backBtn.click();
                    return;
                }
                yield sleep(300);
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 2500);
            });
        }
        /**
         * 监听视频状态
         * */
        listenVidoeStatus() {
            let count = 0;
            this.timer = setInterval(() => {
                ElementObj.$video = document.querySelector('video');
                if (!!ElementObj.$video) {
                    this.addInfo(`🔉🔉🔉已成功监测${count}次,程序后台以${toolOption.accelerator}倍速正常学习中`);
                    count += 1;
                }
            }, 3000);
        }
        render(type) {
            let renderData = type == 1 ? this.classList : this.selectData;
            let str = '';
            for (let i = 0; i < renderData.length; i++) {
                let item = renderData[i];
                str += `
                <div class="item">
                    <div class="content">
                        <div class="name1">${item.courseInfoName}</div>
                        <div class="name2">班级:${item.className}</div>
                        <div class="name2">学期:${item.termName}</div>
                        <div class="name2">完成进度:${item.studySpeed}%</div>
                    </div>
                    <div class="item-controls">
                        <button style='background: ${type == 1 ? '#409eff' : 'red'}'>${type == 1 ? '选择' : '移除'}</button>
                    </div>
                </div>
                `;
            }
            let $pennelWrap = type == 1 ? document.querySelector('.leftPannel') : document.querySelector('.rightPannel');
            $pennelWrap.innerHTML = str;
            // 绑定事件
            for (let i = 0; i < $pennelWrap.children.length; i++) {
                let item = $pennelWrap.children[i];
                let button = item.querySelector('button');
                button.onclick = () => {
                    if (type == 1) {
                        this.moveDataToSelectData(i);
                    }
                    else {
                        this.moveDataToClassList(i);
                    }
                };
            }
        }
        moveDataToSelectData(index) {
            this.selectData.push(this.classList[index]);
            this.classList.splice(index, 1);
            this.handleTemplekeyData();
            this.render(1);
            this.render(2);
        }
        moveDataToClassList(index) {
            this.classList.push(this.selectData[index]);
            this.selectData.splice(index, 1);
            this.handleTemplekeyData();
            this.render(1);
            this.render(2);
        }
        /**
         * @description 处理油猴上的缓存
         * */
        handleTemplekeyData() {
            MyTool.setValue('selectData', this.selectData);
        }
    }
    /**
     * 重庆专业技术人员继续教育
     * chongqingzhuanye
     * 52
     * */
    class chongqingzhuanye extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var _c, _d;
                    try {
                        ElementObj.$parentNodes = document.querySelectorAll('.course__list--content .course__item');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            this.getParentIndex();
                            return;
                        }
                        let $nextPage = document.querySelector('.btn-next');
                        if ($nextPage && location.pathname == '/nms-frontend/index.html') {
                            clearInterval(interval);
                            MyTool.setValue('homeUrl', location.href);
                            this.getParentIndex2();
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('ul li ul li .posCatalog_select');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                        let $iframe_aliplayer = document.querySelector('#iframe_aliplayer');
                        if (!!$iframe_aliplayer) {
                            clearInterval(interval);
                            ElementObj.$video = (_c = $iframe_aliplayer === null || $iframe_aliplayer === void 0 ? void 0 : $iframe_aliplayer.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('video');
                            this.handleClickSpeedUp2();
                            return;
                        }
                        let $iframe_aliplayer2 = document.querySelector('#aliPlayerFrame');
                        if (!!$iframe_aliplayer2) {
                            ElementObj.$allTask = (_d = $iframe_aliplayer2.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelectorAll('.section .section-item');
                            if (ElementObj.$allTask.length) {
                                clearInterval(interval);
                                this.getCurrentIndex2();
                                return;
                            }
                        }
                        let $menu = document.querySelectorAll('.complete-status .btn-item')[2];
                        if (!!$menu) {
                            clearInterval(interval);
                            $menu.click();
                            yield sleep(1500);
                            let $items = document.querySelectorAll('#pane-MUST .text-item');
                            if ($items.length === 0) {
                                alert('全部公需课已学完');
                                return;
                            }
                            MyTool.setValue('homeUrl', location.href);
                            let $first_item = $items[0];
                            $first_item.click();
                            setTimeout(() => {
                                window.close();
                            }, 1000 * 20);
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            ElementObj.$parentNodes.forEach((item) => {
                let $status = item.querySelector('span.num');
                if ($status) {
                    if (parseInt($status.innerText) <= 95) {
                        item.querySelector('.enter-btn').click();
                        setTimeout(() => {
                            location.reload();
                        }, 3000);
                    }
                }
            });
        }
        getParentIndex2() {
            return __awaiter(this, void 0, void 0, function* () {
                let $btn = document.querySelectorAll('.btn-box .btn-item')[2];
                $btn.click();
                yield sleep(3500);
                let $item = document.querySelectorAll('#pane-MUST .text-item')[0];
                $item.click();
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                // let $contentIframe = document.querySelector('.contentIframe') as any;
                // ElementObj._document = $contentIframe.contentWindow.document as Document;
                // ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_point');
                showTip('✅✅✅正在初始化');
                ElementObj.$handleSpeedUp.style.display = 'none';
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i].querySelector('.icon_Completed');
                    if (!$item) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程已全部学完');
                    return;
                }
                let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('.posCatalog_name');
                $nextBtn.click();
                showTip('初始化完成,5秒后开始播放');
                this._o1();
            });
        }
        getCurrentIndex2() {
            return __awaiter(this, void 0, void 0, function* () {
                showTip('✅✅✅正在初始化');
                ElementObj.$handleSpeedUp.style.display = 'none';
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i].classList.contains('finish');
                    if (!$item) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    location.href = MyTool.getValue('homeUrl');
                }
                ElementObj.$allTask[i].click();
                showTip('✅✅✅完成初始化,5秒后开始播放');
                setTimeout(() => {
                    this.handleClickSpeedUp2(() => {
                    }, 3);
                }, 4500);
            });
        }
        getVideoDom(option) {
            return new Promise(resolve => {
                if (option) {
                    let count = 0;
                    let Timer = setInterval(() => {
                        let $iframe = document.querySelector('#aliPlayerFrame');
                        let _document = $iframe.contentDocument;
                        ElementObj.$video = _document.querySelector('video');
                        count += 1;
                        if (!!ElementObj.$video) {
                            clearInterval(Timer);
                            resolve(true);
                        }
                        if (count > 10) {
                            clearInterval(Timer);
                            resolve(false);
                        }
                    }, 1000);
                }
                else {
                    let count = 0;
                    let Timer = setInterval(() => {
                        var _c, _d;
                        let $iframe = document.querySelector('#iframe');
                        let _document = (_d = (_c = $iframe.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('iframe')) === null || _d === void 0 ? void 0 : _d.contentDocument;
                        ElementObj.$video = _document.querySelector('video');
                        count += 1;
                        if (!!ElementObj.$video) {
                            clearInterval(Timer);
                            resolve(true);
                        }
                        if (count > 10) {
                            clearInterval(Timer);
                            resolve(false);
                        }
                    }, 1000);
                }
            });
        }
        play() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                if (studyType) {
                    ElementObj.$video.volume = 0;
                    yield sleep(200);
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    let $wrap = (_c = $el('#iframe').contentDocument.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument.querySelector('#reader');
                    this.changeHtml($wrap);
                    this.listenPageHide();
                    this.listenPlayTime();
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                }
                if (!studyType) {
                    showTip('⚠️⚠️⚠️未检测到视频,5秒后切换下一节', 4500);
                    setTimeout(() => {
                        this.playNext();
                    }, 3000);
                }
            });
        }
        // 公需课play
        play2() {
            return __awaiter(this, void 0, void 0, function* () {
                if (!ElementObj.$video) {
                    location.reload();
                    return;
                }
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3000);
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    let homeUrl = MyTool.getValue('homeUrl');
                    yield sleep(2500);
                    MyTool.openInTab(homeUrl);
                    setTimeout(() => {
                        window.close();
                    }, 1000 * 5);
                }));
            });
        }
        // 公需课情况2 play
        play3() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom('#aliPlayerFrame');
                ElementObj.$video.volume = 0;
                yield sleep(200);
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3000);
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        let homeUrl = MyTool.getValue('homeUrl');
                        yield sleep(2500);
                        MyTool.openInTab(homeUrl);
                        setTimeout(() => {
                            window.close();
                        }, 1000 * 15);
                        return;
                    }
                    this.currentIndex += 1;
                    ElementObj.$allTask[this.currentIndex].click();
                    showTip('⚠️⚠️⚠️正在切换课程', 4500);
                    setTimeout(() => {
                        this.handleClickSpeedUp2(() => {
                        }, 3);
                    }, 4500);
                    return;
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                this.listenRebortTime = setInterval(() => {
                    var _c, _d;
                    let $btn = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('.next-button');
                    if ($btn) {
                        $btn.click();
                    }
                }, 13 * 1000);
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(3000);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    location.href = MyTool.getValue('homeUrl');
                    return;
                }
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].querySelector('.posCatalog_name').click();
                showTip('⚠️⚠️⚠️正在切换课程', 4500);
                setTimeout(() => {
                    this._o1();
                }, 5000);
            });
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                var _c;
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                let videoDuration = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${videoDuration}分钟`);
                let $iframe = document.querySelector('#iframe');
                let $statusDom = (_c = $iframe.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('.ans-job-icon');
                let status = $statusDom === null || $statusDom === void 0 ? void 0 : $statusDom.getAttribute('aria-label');
                if (status == '任务点已完成') {
                    clearInterval(this.timer);
                    this.addInfo(`✅✅✅监测到当前任务已完成,5秒后自动切换下一节`, 1);
                    setTimeout(() => {
                        this.playNext();
                    }, 3000);
                }
            }, 3000);
        }
        /**
         * @param str 要显示的文本内容
         * @param type 0为红色
         * */
        addInfo(str, type) {
            var _c, _d;
            ElementObj.$ctxstatsbox = (_c = $el('#iframe').contentDocument.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument.querySelector('.ctxstatsbox');
            let $ctxstatsbox_lis = (_d = $el('#iframe').contentDocument.querySelector('iframe')) === null || _d === void 0 ? void 0 : _d.contentDocument.querySelectorAll('.ctxstatsbox_li');
            if ($ctxstatsbox_lis.length >= 15) {
                ElementObj.$ctxstatsbox.innerHTML = '';
            }
            let li = `<li class="ctxstatsbox_li" style="color: ${type == 0 ? '#f01414' : '#000'};line-height: 30px;font-size: 16px;list-style: none;">${str}</li>`;
            ElementObj.$ctxstatsbox.innerHTML += li;
        }
        handleClickSpeedUp2(callback, type) {
            return __awaiter(this, void 0, void 0, function* () {
                let key = localStorage.getItem('mytoolkey');
                if (key) {
                    this.speedStatus = 1;
                    let result = yield axfedata({
                        method: 'GET',
                        url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`,
                    });
                    if (result.code == 200) {
                        this.speedStatus = 1;
                        if (type == 3) {
                            this.play3();
                        }
                        else {
                            this.play2();
                        }
                    }
                    else {
                        showTip(`🔉🔉🔉${result.message}`, 5000, true);
                        return;
                    }
                }
                else if (!key) {
                    alert('请先购买key');
                    window.open(_bt);
                }
                else {
                    alert('程序错误,请联系客服');
                }
            });
        }
    }
    chongqingzhuanye.ctxid = 26;
    /**
     * 中国教育干部网络学院
     * jiaoyuganbuwang
     * 53
     * study.enaea.edu.cn
     * */
    class jiaoyuganbuwang extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $memnu = document.querySelectorAll('.customcur-tabs-wrapper li')[1];
                        if (!!$memnu) {
                            clearInterval(interval);
                            $memnu.click();
                            this.getParentIndex();
                            return;
                        }
                        ElementObj.$video = document.querySelector('video');
                        if (!!ElementObj.$video) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                showTip('✅✅✅正在初始化', 3000);
                ElementObj.$handleSpeedUp.style.display = 'none';
                yield sleep(3000);
                // @ts-ignore
                GM_setValue("homeUrl", location.href);
                showTip('初始化完成,5秒后开始播放');
                yield sleep(3000);
                let $nextBtn = document.querySelectorAll('tr')[2].lastChild;
                (_c = $nextBtn.querySelector('a')) === null || _c === void 0 ? void 0 : _c.click();
                this._o1();
                setTimeout(() => {
                    window.close();
                }, 5000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask = document.querySelectorAll('.cvtb-MCK-course-content');
                yield sleep(100);
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $statusDom = ElementObj.$allTask[i].querySelector('.cvtb-MCK-CsCt-studyProgress');
                    let status = parseInt($statusDom.innerText);
                    if (status != 100) {
                        this.currentIndex = i;
                        break;
                    }
                }
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 3000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.display = 'none';
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                yield sleep(200);
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3000);
                // this.changeHtml($el('#J_CC_videoPlayerDiv'))
                // this.listenPageHide()
                // this.listenPlayTime()
                this.listenRebort();
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    this.playNext();
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(2000);
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    // @ts-ignore
                    let homeUrl = GM_getValue("homeUrl", null);
                    // @ts-ignore
                    GM_openInTab(homeUrl, { active: true });
                    setTimeout(() => {
                        window.close();
                    }, 3000);
                    return;
                }
                this.currentIndex += 1;
                setTimeout(() => {
                    this._o1();
                }, 5000);
            });
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                count += 1;
                let $statusDom = ElementObj.$allTask[this.currentIndex].querySelector('.cvtb-MCK-CsCt-studyProgress');
                let status = parseInt($statusDom.innerText);
                let videoDuration = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,当前播放进度为${status}%,视频总时长为${videoDuration}分钟`);
                if (status == 100) {
                    clearInterval(this.timer);
                    this.addInfo(`✅✅✅监测到当前任务已完成,5秒后自动切换下一节`, 1);
                    setTimeout(() => {
                        this.playNext();
                    }, 3000);
                }
            }, 3000);
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.dialog-button-container button');
                if (!!$btn) {
                    $btn.click();
                }
            }, 10 * 1000);
        }
    }
    jiaoyuganbuwang.ctxid = 26;
    /**
     * 在线学习
     * 55
     * zaixianxuexi
     * rsjapp.mianyang.cn
     * */
    class zaixianxuexi extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $jAlertButton2 = document.querySelector('#jAlertButton2');
                        if (!!$jAlertButton2) {
                            clearInterval(interval);
                            $jAlertButton2.click();
                            yield sleep(2000);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this._o1();
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.videoList li');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                showTip('正在初始化');
                ElementObj.$handleSpeedUp.style.display = 'none';
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i].querySelector('.overTitle');
                    if ($item.innerText != '【已完成】') {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程已全部学完');
                    return;
                }
                (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click();
                showTip('初始化完成,5秒后开始播放');
                this._o1();
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let Timer = setInterval(() => {
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(true);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                yield sleep(200);
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3000);
                // this.listenRebort()
                this.listenVidoeStatus(ElementObj.$video, () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    this.getCurrentIndex();
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                });
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
    }
    zaixianxuexi.ctxid = 26;
    /**
     * 国家开放大学
     * 57
     * guojiakaifangdaxue
     * lms.ouchn.cn
     * */
    class guojiakaifangdaxue extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll("li[id]");
                        if (location.host == 'xczxzdbf.moodle.qwbx.ouchn.cn' && ElementObj.$allTask.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getCurrentIndex();
                            return;
                        }
                        let $nextBtn = document.querySelector('button.next-btn') || document.querySelector('.newgk-prenext.newgk-next');
                        if ($nextBtn) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            showTip('♥♥♥初始化完成');
                            this.pdPlayFn(location.href);
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i];
                    if ($item.classList.contains('current')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                showTip('♥♥♥初始化完成');
                this.pdPlayFn(location.href);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    var _c;
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    let _document = document.querySelector('#previewContentInIframe');
                    ElementObj.$video = (_c = _document === null || _document === void 0 ? void 0 : _document.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    yield sleep(200);
                    let $playBtn = document.querySelector('.mvp-toggle-play');
                    if (!!$playBtn) {
                        $playBtn.click();
                    }
                    else {
                        ElementObj.$video.play();
                    }
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    // this.listenRebort()
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('当前视频已播放完,5秒后播放下一个', 4500);
                        yield sleep(4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            let $playBtn = document.querySelector('.mvp-toggle-play');
                            ElementObj.$video.volume = 0;
                            $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click();
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
        playNext() {
            this.currentIndex += 1;
            let $nextBtn = document.querySelector('button.next-btn');
            if (location.host == 'xczxzdbf.moodle.qwbx.ouchn.cn') {
                $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('.aalink');
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                setTimeout(() => {
                    this.pdPlayFn(location.href);
                }, 5000);
            }
            else if (location.host == 'moodle.syxy.ouchn.cn') {
                $nextBtn = document.querySelector('.newgk-prenext.newgk-next');
                if ($nextBtn) {
                    $nextBtn.click();
                    setTimeout(() => {
                        this.pdPlayFn(location.href);
                    }, 5000);
                }
            }
            else {
                $nextBtn = document.querySelector('button.next-btn');
                if ($nextBtn) {
                    $nextBtn.click();
                    setTimeout(() => {
                        this.pdPlayFn(location.href);
                    }, 5000);
                }
            }
        }
    }
    guojiakaifangdaxue.ctxid = 26;
    /**
     * 九江学院继续教育学院成教平台
     * 58
     * jjjxjy
     * jjxy.web2.superchutou.com
     * */
    class jjjxjy extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                if (location.host == 'hunau.web2.superchutou.com') {
                    // 湖南
                    let interval = setInterval(() => {
                        ElementObj.$handleSpeedUp.style.display = 'none';
                        if (location.href == 'https://hunau.web2.superchutou.com/#/') {
                            clearInterval(interval);
                            setTimeout(() => {
                                this._init();
                            }, 1000 * 5);
                            location.href = MyTool.getValue('homeUrl');
                        }
                        if (location.href.indexOf('/#/onlineclass/curriculum') != -1) {
                            let $item = document.querySelector('.ant-row.catalog_child_line');
                            if (!!$item) {
                                clearInterval(interval);
                                MyTool.setValue('homeUrl', location.href);
                                setTimeout(() => {
                                    this._init();
                                }, 1000 * 5);
                                $item.click();
                            }
                        }
                        ElementObj.$allTask = document.querySelectorAll('.ant-list-items div a');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }, 1000);
                }
                else {
                    // 自贡
                    window.addEventListener('urlchange', (info) => {
                        setTimeout(() => {
                            ElementObj.$allTask = document.querySelectorAll('.ant-list-items div a');
                            if (ElementObj.$allTask.length) {
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                clearInterval(interval);
                                this.getCurrentIndex();
                            }
                            let $item = document.querySelector('.ant-row.catalog_child_line');
                            if (!!$item) {
                                clearInterval(interval);
                                $item === null || $item === void 0 ? void 0 : $item.click();
                            }
                            if (location.href == 'https://jjxy.web2.superchutou.com/#/') {
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                clearInterval(interval);
                                this.getParentIndex();
                            }
                        }, 5000);
                    });
                    let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                        try {
                            ElementObj.$allTask = document.querySelectorAll('.ant-list-items div a');
                            if (ElementObj.$allTask.length) {
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                clearInterval(interval);
                                this.getCurrentIndex();
                            }
                            let $item = document.querySelector('.ant-row.catalog_child_line');
                            if (!!$item) {
                                clearInterval(interval);
                                setTimeout(() => {
                                    this._init();
                                }, 5000);
                                $item === null || $item === void 0 ? void 0 : $item.click();
                            }
                            if (location.href == 'https://jjxy.web2.superchutou.com/#/') {
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                clearInterval(interval);
                                this.getParentIndex();
                            }
                        }
                        catch (e) {
                        }
                    }), 1000);
                }
            });
        }
        getParentIndex() {
            let $parents = $el('.ant-table-tbody').querySelectorAll('.ant-table-tbody tr');
            for (var i = 0; i <= $parents.length - 1; i++) {
                let $item = $parents[i].querySelector('.ant-progress-bg');
                if (parseInt($item.style.width) < 99) {
                    setTimeout(() => {
                        this._init();
                    }, 5000);
                    $parents[i].querySelector('.anticon-play-circle').click();
                    break;
                }
            }
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let cur = -1;
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let item = ElementObj.$allTask[i];
                    if (item.classList.contains('catalog_playing___3PDRN')) {
                        cur = i;
                        break;
                    }
                }
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i].querySelector('i.anticon-check-circle');
                    if (!isDone) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                if (cur != this.currentIndex) {
                    ElementObj.$allTask[this.currentIndex].click();
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this.pdPlayFn(location.href);
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer2);
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    yield sleep(200);
                    let $playBtn = document.querySelector('.mvp-toggle-play');
                    if (!!$playBtn) {
                        $playBtn.click();
                    }
                    else {
                        ElementObj.$video.play();
                    }
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.ant-modal-body button');
                let $btn2 = document.querySelector('.ant-btn.ant-btn-primary');
                $btn === null || $btn === void 0 ? void 0 : $btn.click();
                $btn2 === null || $btn2 === void 0 ? void 0 : $btn2.click();
            }, 1 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(4500);
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                if ($nextBtn) {
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4000);
                }
            });
        }
    }
    jjjxjy.ctxid = 26;
    /**
     * 河北干部网络学院
     * 62
     * hebeiganbu
     * hebgb.gwypx.com.cn
     * */
    class hebeiganbu extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var _c;
                    try {
                        ElementObj.$parentNodes = document.querySelectorAll('.hoz_course_row');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            for (let item of ElementObj.$parentNodes) {
                                let status = (_c = item.querySelector('.h_pro_percent')) === null || _c === void 0 ? void 0 : _c.innerText;
                                if (parseFloat(status) < 100) {
                                    setTimeout(() => {
                                        window.close();
                                    }, 45 * 1000);
                                    MyTool.setValue('homeUrl', location.href);
                                    item.querySelector('input').click();
                                    break;
                                }
                            }
                        }
                        let $user_choise = document.querySelector('.user_choise');
                        if (!!$user_choise) {
                            $user_choise.click();
                        }
                        if (location.pathname == '/student/class_detail_course.do') {
                            let $btn = document.querySelector('.hoz_course_row input');
                            if (!!$btn) {
                                clearInterval(interval);
                                setTimeout(() => {
                                    window.close();
                                }, 45 * 1000);
                                MyTool.setValue('homeUrl', location.href);
                                $btn.click();
                            }
                        }
                        if (location.pathname == '/portal/study_play.do') {
                            ElementObj.$video = document.querySelector('video');
                            if (ElementObj.$video) {
                                clearInterval(interval);
                                this._o1();
                            }
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    setTimeout(() => {
                        ElementObj.$video = document.querySelector('video');
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                        setTimeout(() => {
                            ElementObj.$video.playbackRate = toolOption.accelerator;
                        }, 3000);
                        // this.listenRebort()
                        ElementObj.$handleSpeedUp.style.background = '#f01414';
                        ElementObj.$handleSpeedUp.innerText = '加速成功';
                        ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                            this.playNext();
                        }));
                        ElementObj.$video.addEventListener('pause', () => {
                            setTimeout(() => {
                                ElementObj.$video.volume = 0;
                                ElementObj.$video.play();
                            }, 1500);
                        });
                    }, 4500);
                    let $btn = document.querySelector('.user_choise');
                    $btn === null || $btn === void 0 ? void 0 : $btn.click();
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(2500);
                location.href = MyTool.getValue('homeUrl');
            });
        }
    }
    /**
     * 广东省教师继续教育信息管理平台
     * 63
     * gdedujsxx
     * jsxx.gdedu.gov.cn
     * */
    class gdedujsxx extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                this._o1();
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                ElementObj.$handleSpeedUp.style.display = 'none';
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                let $labels = document.querySelectorAll('.m-question-lst label');
                if ($labels.length) {
                    clearInterval(this.listenRebortTime);
                    $labels[0].click();
                    let $sumit = document.querySelector('.btn.u-main-btn');
                    $sumit.click();
                    yield sleep(3000);
                    // 如果打错了
                    $labels = document.querySelectorAll('.m-question-lst label');
                    if ($labels.length) {
                        $labels[1].click();
                        let $sumit = document.querySelector('.btn.u-main-btn');
                        $sumit.click();
                    }
                    yield sleep(3000);
                    this.listenRebort();
                }
            }), 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(4500);
                this.currentIndex += 1;
                let $nextBtn = document.querySelector('a.btn.next.crt');
                if ($nextBtn) {
                    $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4000);
                }
            });
        }
    }
    gdedujsxx.ctxid = 60;
    /**
     * 株洲教师教育网络学院
     * 64
     * zhuzhouteacher
     * www.zhuzhouteacher.com
     * */
    class zhuzhouteacher extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $btn = document.querySelectorAll('.antd-pro-pages-my-center-my-center-menuItem')[2];
                        if (!!$btn) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            $btn.click();
                            yield sleep(1000);
                            this.getCurrentIndex();
                            return;
                        }
                        ElementObj.$video = document.querySelector('video');
                        if (!!ElementObj.$video) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this._o1();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(2500);
                ElementObj.$allTask = document.querySelectorAll('.antd-pro-pages-my-center-course-learning-courseWrap>.ant-row');
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    let status = isDone.querySelector('.ant-progress-text').innerHTML;
                    if (parseInt(status) < 99) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex != -1) {
                    ElementObj.$allTask[this.currentIndex].querySelector('.ant-btn.ant-btn-primary').click();
                    setTimeout(() => {
                        // window.close()
                    }, 1000 * 15);
                    return;
                }
                else {
                    let $nextPage = document.querySelector('.ant-pagination-next');
                    if ($nextPage.classList.contains('ant-pagination-disabled')) {
                        alert('全部课程已学完');
                        return;
                    }
                    $nextPage.click();
                    this.getCurrentIndex();
                }
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                MyTool.openInTab('http://www.zhuzhouteacher.com/teacheredu/main/mycenter/course-learning');
                setTimeout(() => {
                    window.close();
                }, 5000);
            });
        }
    }
    zhuzhouteacher.ctxid = 60;
    /**
     * 专业技术人员继续教育网 【可以定制秒过脚本,次数的脚本有问题】
     * 65
     * zhuanyejishuryjxjy
     * gp.chinahrt.com
     * */
    class zhuanyejishuryjxjy extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.catalog-list p');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML;
                    // if(parseInt(status) < 99){
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    // this.listenRebort()
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].querySelector('a').click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    zhuanyejishuryjxjy.ctxid = 60;
    /**
     * 英华学堂
     * 65
     * yinghuaxuetang
     * mooc.ycust.com
     * */
    class yinghuaxuetang extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll(".detmain .list .item a ");
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML;
                    // if(parseInt(status) < 99){
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('on')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    let btn = document.querySelector('.promptchmqylqsxtfb');
                    let btn2 = document.querySelector('.mutechtkfjgkqelf');
                    if (btn) {
                        btn.click();
                    }
                    if (btn2) {
                        btn2.click();
                    }
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    // this.listenRebort()
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    yinghuaxuetang.ctxid = 60;
    /**
     * 上海开放大学
     * shanghaikaifangdx
     * 67
     * l.shou.org.cn
     * */
    class shanghaikaifangdx extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.cell_info1 a');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML;
                    // if(parseInt(status) < 99){
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    // this.listenRebort()
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    shanghaikaifangdx.ctxid = 60;
    /**
     * 广州市干部培训网络学院
     * gzgbjy
     * 68
     * gzgbjy.gzswdx.gov.cn
     * */
    class gzgbjy extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.tab-content-desc');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML;
                    // if(parseInt(status) < 99){
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('desc-item-sel')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    // this.listenRebort()
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    gzgbjy.ctxid = 60;
    /**
     * 贵州省建设行业职业技能管理中心专业技术人员继续教育基地
     * 70
     * guizhoujianshezyjs
     * ware.cdeledu.com
     * */
    class guizhoujianshezyjs extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.catalog div>a');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML;
                    // if(parseInt(status) < 99){
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('cur')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    let $vplay = document.querySelector('.vplay');
                    if (!$vplay.classList.contains('vmPause')) {
                        $vplay.click();
                    }
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    // this.listenRebort()
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    guizhoujianshezyjs.ctxid = 60;
    /**
     * 继续教育在线
     * jixujiaoyuzaixian
     * 69
     * ce.jllpa.cn
     * */
    class jixujiaoyuzaixian extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.video-list-item-span');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML;
                    // if(parseInt(status) < 99){
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.innerText.indexOf('已学完') == -1) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.el-message-box__btns .el-button--primary');
                $btn === null || $btn === void 0 ? void 0 : $btn.click();
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    jixujiaoyuzaixian.ctxid = 60;
    /**
     * 广州市中小学教师继续教育网
     * gzteacher
     * 72
     * */
    class gzteacher extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $allTask1 = document.querySelectorAll('.collapseactivityName2');
                        let $allTask2 = document.querySelectorAll('.resource-list .res-item');
                        ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2;
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML;
                    // if(parseInt(status) < 99){
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('isActive') || isDone.classList.contains('active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                var _c;
                let $topicModal = document.querySelector('.ant-modal-root');
                if (!!$topicModal) {
                    (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                this.currentIndex += 1;
                if (location.host == 'gdipx.yanxiu.com') {
                    yield sleep(3000);
                    let $nextBtn = document.querySelector('.btns .next');
                    if (!$nextBtn) {
                        alert('当前课程所有视频已播放完');
                        return;
                    }
                    else {
                        $nextBtn.click();
                    }
                }
                else {
                    if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                        alert('当前课程所有视频已播放完');
                        return;
                    }
                    yield sleep(2500);
                    let $closeBtn = document.querySelectorAll('.ant-modal-body button')[2];
                    $closeBtn === null || $closeBtn === void 0 ? void 0 : $closeBtn.click();
                    let $nextBtn = document.querySelectorAll('.studycontentBottom button')[2];
                    $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                }
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
    }
    gzteacher.ctxid = 60;
    /**
     * 新营造
     * moocxinyingzao
     * 73
     * mooc.xinyingzao.cn
     * */
    class moocxinyingzao extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('#pane-category .resource-list-item');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    let status = isDone.querySelector('.resource-action span').innerText;
                    if (!['已完成', '正在学'].includes(status)) {
                        this.currentIndex = i;
                        break;
                    }
                    // 根据active判断
                    // if (isDone.classList.contains('on')) {
                    //     this.currentIndex = i
                    //     break
                    // }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                ElementObj.$allTask[this.currentIndex].click();
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    let $iframe = document.querySelector('iframe');
                    if (!!$iframe) {
                        clearInterval(Timer);
                        resolve(2);
                        return;
                    }
                    ElementObj.$video = document.querySelectorAll('video')[0];
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                var _c;
                let $topicModal = document.querySelector('.ant-modal-root');
                if (!!$topicModal) {
                    (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                this.getCurrentIndex();
            });
        }
    }
    moocxinyingzao.ctxid = 60;
    /**
     * 浙江文化干部网络学院
     * zhejiangzjelib
     * 74
     * mooc1.wht.zjelib.cn
     * */
    class zhejiangzjelib extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$handleSpeedUp.style.display = 'none';
                // @ts-ignore
                ElementObj.$allTask = document.querySelector('#iframepage').contentDocument.querySelectorAll('.ncells');
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    let status = isDone.querySelector('.roundpointStudent.blue');
                    if (!status) {
                        this.currentIndex = i;
                        break;
                    }
                    // 根据active判断
                    // if (isDone.classList.contains('on')) {
                    //     this.currentIndex = i
                    //     break
                    // }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                // this.currentIndex = 0
                ElementObj.$allTask[this.currentIndex].querySelector('a').click();
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this.spanKeyCount();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    // @ts-ignore
                    ElementObj.$video = document.querySelector('#iframepage').contentDocument.querySelector('#iframe').contentDocument.querySelector('iframe').contentDocument.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        _o1(callback) {
            return __awaiter(this, void 0, void 0, function* () {
                this.getCurrentIndex();
            });
        }
        spanKeyCount() {
            return __awaiter(this, void 0, void 0, function* () {
                let key = localStorage.getItem('mytoolkey');
                if (key) {
                    let result = yield axfedata({
                        method: 'GET',
                        url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`,
                    });
                    if (result.code == 200) {
                        this.play();
                    }
                    else {
                        showTip(`🔉🔉🔉${result.message}`, 5000, true);
                        return;
                    }
                }
                else if (!key) {
                    alert('请先购买key');
                    window.open(_bt);
                }
                else {
                    alert('程序错误,请联系客服');
                }
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                // @ts-ignore
                let curitem = document.querySelector('#iframepage').contentDocument.querySelector('.ncells .currents');
                let isDone = curitem.querySelector('.roundpointStudent.blue');
                if (isDone) {
                    this.playNext();
                }
            }, 10 * 1000);
        }
        playNext() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                this.currentIndex += 1;
                // @ts-ignore
                let $nextBtn = document.querySelector('#iframepage').contentDocument.querySelector('.orientationright ');
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                // @ts-ignore
                let $iframepage = document.querySelector('#iframepage').contentDocument;
                yield sleep(2000);
                (_c = $iframepage.querySelector('.wconter a')) === null || _c === void 0 ? void 0 : _c.click();
                setTimeout(() => {
                    this.spanKeyCount();
                }, 4000);
            });
        }
    }
    zhejiangzjelib.ctxid = 60;
    /**
     * 东北师范大学中小学教师网络培训平台
     * dongbeishifandaxue
     * 76
     * cn202341126.stu.t-px.cn
     * */
    class dongbeishifandaxue extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.course-list-con .ovd');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelector('.resource-action span') as HTMLElement).innerText;
                    // if (!['已完成', '正在学'].includes(status)) {
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('cur')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                var _c;
                let $topicModal = document.querySelector('.ant-modal-root');
                if (!!$topicModal) {
                    (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a');
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 6000);
            });
        }
    }
    dongbeishifandaxue.ctxid = 60;
    /**
     * 济宁市高级职业学校(省级继续教育基地
     * qzjystudy
     * 79
     * jnrcpx.qzjystudy.com
     * */
    class qzjystudy extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.videoList .item');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                            return;
                        }
                        let iframe = document.querySelector('iframe');
                        if (iframe) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            // @ts-ignore
                            location.href = iframe.src;
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.videoList .item');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            var _c;
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    let status;
                    if (['jnrcpx.qzjystudy.com', 'jnzjstu.qzjystudy.com'].includes(location.host)) {
                        status = ((_c = isDone.querySelector('.text')) === null || _c === void 0 ? void 0 : _c.nextSibling).innerText;
                        // @ts-ignore
                        status = status.match(/\((.+)\)/)[1];
                    }
                    else {
                        status = isDone.querySelectorAll('span')[1].innerText;
                    }
                    if (parseInt(status) < 99) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                ElementObj.$allTask[this.currentIndex].click();
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                var _c;
                let $topicModal = document.querySelector('.ant-modal-root');
                if (!!$topicModal) {
                    (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 6000);
            });
        }
    }
    qzjystudy.ctxid = 60;
    /**
     * 高顿教育
     * GlivePro
     * 81
     * glivepro.gaodun.com
     * */
    class GlivePro extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $allTask = document.querySelectorAll('.animated .syllabus-tree-node-title');
                        let $allTask2 = document.querySelectorAll('.aside-node-child-inner .aside-node-child-inner li');
                        if ($allTask.length || $allTask2.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            ElementObj.$allTask = $allTask.length ? $allTask : $allTask2;
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText;
                    // if (parseInt(status) < 99) {
                    //     this.currentIndex = i
                    //     break
                    // }
                    if (location.host == 'cloud.gaodun.com') {
                        let $icon = isDone.querySelector('i');
                        if (!$icon.classList.contains('aside-resource-progress2')) {
                            this.currentIndex = i;
                            break;
                        }
                    }
                    else {
                        if (isDone.classList.contains('is-active')) {
                            this.currentIndex = i;
                            break;
                        }
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                if (location.host == 'cloud.gaodun.com') {
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let dur = parseInt(ElementObj.$video.duration);
                let cur = Math.ceil(ElementObj.$video.currentTime);
                let isComplete = false;
                if (cur >= dur && !isComplete) {
                    isComplete = true;
                    showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                    this.playNext();
                }
            }, 3 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                if (location.host == 'cloud.gaodun.com') {
                    location.reload();
                }
                else {
                    this.currentIndex += 1;
                    let $nextBtn = ElementObj.$allTask[this.currentIndex];
                    $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                    setTimeout(() => {
                        this._o1();
                    }, 4500);
                }
            });
        }
    }
    GlivePro.ctxid = 60;
    /**
     * 高等学历继续教育网络学习平台
     * gaodengxueli
     * 82
     * kc.jxjypt.cn
     * */
    class gaodengxueli extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.course-list-txt dd i');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // // 根据进度判断
                    // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText;
                    // if (parseInt(status) < 99) {
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('fa-youtube-play')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                ElementObj.$allTask[this.currentIndex].parentElement.click();
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                var _c;
                let $topicModal = document.querySelector('.ant-modal-root');
                if (!!$topicModal) {
                    (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex].parentElement;
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 6000);
            });
        }
    }
    gaodengxueli.ctxid = 60;
    /*
     * 河南专技在线
     * henanzhuanjizaixian
     * 83
     * hnzj.user.ghlearning.com
     * */
    class henanzhuanjizaixian extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this.timer = null;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.videoLi');
                        if (ElementObj.$allTask.length) {
                            // ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据active判断
                    if (isDone.classList.contains('active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 5000);
                setTimeout(() => {
                    this._o1();
                }, 1000 * 5.5);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video.pv-video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    ElementObj.$canvas = document.querySelector('#bplayer-ffplayer');
                    if (!!ElementObj.$canvas) {
                        clearInterval(Timer);
                        resolve(3);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                ElementObj.$allTask[this.currentIndex].click();
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenRebort();
                    this.listenPlayTime(1);
                }
                if (studyType == 3) {
                    let $volumeBtn = document.querySelector('.bplayer-volume-control');
                    if ($volumeBtn.getAttribute('data-show') == '0') {
                        let $btn = $volumeBtn.querySelector('.icon');
                        $btn.click();
                    }
                    yield sleep(3000);
                    let $playBtn = document.querySelector('.pv-iconfont') || document.querySelector('.bplayer-play-btn');
                    if ($playBtn.querySelector('svg').id != 'stop') {
                        $playBtn.click();
                    }
                    this.listenPlayTime(3);
                }
                if (studyType == 1 || studyType == 3) {
                    let $wrap = document.querySelector('.live.left');
                    this.changeHtml($wrap);
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        play2() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                let $volumeBtn = document.querySelector('button.pv-volumebtn');
                if (!$volumeBtn.classList.contains('pv-icon-volumenone')) {
                    $volumeBtn.click();
                }
                yield sleep(500);
                let $playBtn = document.querySelector('.pv-iconfont');
                $playBtn.click();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3000);
                this.listenRebort();
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                    this.playNext();
                }));
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
        listenPlayTime(type) {
            this.timer = setInterval(() => {
                let progress = ElementObj.$allTask[this.currentIndex].querySelector('.progress-bar').style.width;
                if (parseInt(progress) >= 99) {
                    showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                    this.playNext();
                    return;
                }
                let dur, cur;
                if (type == 1) {
                    // @ts-ignore
                    dur = document.querySelector('.pv-time-current').innerText;
                    // @ts-ignore
                    cur = document.querySelector('.pv-time-duration').innerText;
                }
                if (type == 3) {
                    let $playedTime = document.querySelector('.played-time');
                    if (!$playedTime) {
                        this.play2();
                        return;
                    }
                    // @ts-ignore
                    dur = $playedTime.innerText;
                    // @ts-ignore
                    cur = document.querySelector('.total-time').innerText;
                }
                this.addInfo(`🔊🔊🔊监测到视频正在学习中,已成功学习${dur},需学习${cur}`);
                if (cur == dur) {
                    showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                    this.playNext();
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                setTimeout(() => {
                    location.reload();
                }, 3000);
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex];
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
            });
        }
    }
    henanzhuanjizaixian.ctxid = 60;
    /**
     * 湖南农民大学生
     * hunannmdxs
     * 84
     * study.ouchn.cn
     * */
    class hunannmdxs extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        let $nextBtn = document.querySelector('.pull-right>a');
                        if ($nextBtn) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this._o1();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // // 根据进度判断
                    // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText;
                    // if (parseInt(status) < 99) {
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('fa-youtube-play')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                ElementObj.$allTask[this.currentIndex].parentElement.click();
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$sigleBtn = document.querySelector('.forumaddnew form button.btn.btn-secondary');
                    if (!!ElementObj.$sigleBtn) {
                        clearInterval(Timer);
                        resolve(3);
                        return;
                    }
                    ElementObj.$video = document.querySelectorAll('video')[0];
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 3) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                var _c;
                let $topicModal = document.querySelector('.ant-modal-root');
                if (!!$topicModal) {
                    (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal);
                }
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let $nextBtn = document.querySelector('.pull-right>a');
                if (!$nextBtn) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click();
                setTimeout(() => {
                    this._o1();
                }, 5000);
            });
        }
    }
    hunannmdxs.ctxid = 60;
    /**
     * 百年树人
     * bainianshuren
     * 89
     * 'js.cc-edu.cn'
     * */
    class bainianshuren extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this.swiperIndex = 0;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$parentNodes = document.querySelectorAll('.project-course li');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getParentIndex();
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.el-tree-node');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getCurrentIndex();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) {
                    let item = ElementObj.$parentNodes[i];
                    let status = item.querySelector('.project-courseTitle span').innerText;
                    if (status == '学习中' || status == '未学习') {
                        MyTool.setValue('homeUrl', location.href);
                        item.querySelector('span.project-courseButton').click();
                        break;
                    }
                }
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(2500);
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let element = ElementObj.$allTask[i].querySelector('i').title.trim();
                    if (element != '已学习') {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    location.href = 'https://v3.dconline.net.cn/student.html#/project/index?project_id=13844';
                    setTimeout(() => {
                        location.reload();
                    }, 3000);
                    return;
                }
                let $nextBtn = ElementObj.$allTask[i].querySelector('.nav_menu');
                $nextBtn.click();
                yield sleep(2500);
                let isHasSwiperItem = yield this.getSwiperItem();
                if (isHasSwiperItem == 1) {
                    this.getSwiperIndex();
                }
                else {
                    this._o1();
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
            });
        }
        getSwiperIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$swiperItem.length - 1; i++) {
                    let element = ElementObj.$swiperItem[i].querySelector('.video-status').innerText.trim();
                    if (element != '已学习') {
                        this.swiperIndex = i;
                        break;
                    }
                }
                let $nextBtn = ElementObj.$swiperItem[this.swiperIndex].querySelector('i.el-icon-video-play');
                $nextBtn.click();
                yield sleep(2500);
                let $btn = document.querySelector('.el-message-box__btns .el-button--primary');
                $btn === null || $btn === void 0 ? void 0 : $btn.click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getSwiperItem() {
            return __awaiter(this, void 0, void 0, function* () {
                return new Promise(resolve => {
                    let count = 0;
                    let Timer = setInterval(() => {
                        count += 1;
                        ElementObj.$swiperItem = document.querySelectorAll('.public-articleSlideList');
                        if (!!ElementObj.$swiperItem.length) {
                            clearInterval(Timer);
                            resolve(1);
                            return;
                        }
                        if (count >= 3) {
                            clearInterval(Timer);
                            resolve(2);
                        }
                    }, 1000);
                });
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = 1;
                    }, 3000);
                    let $wrap = document.querySelector('#video');
                    this.changeHtml($wrap);
                    this.listenPlayTime();
                    this.listenRebort();
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 1500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    let homeUrl = MyTool.getValue('homeUrl');
                    location.href = homeUrl;
                    setTimeout(() => {
                        location.reload();
                    }, 3000);
                    return;
                }
                setTimeout(() => {
                    location.reload();
                }, 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $dialog = document.querySelector('.el-dialog__body');
                if ($dialog) {
                    $dialog.style.display = 'none';
                    // location.reload()
                }
            }, 3000);
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                let videoDuration = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${videoDuration}分钟`);
            }, 3000);
        }
    }
    bainianshuren.ctxid = 60;
    /**
     * 东营市继续教育网专业科目培训平台
     * 90
     * 'sddy.zyk.yxlearning.com'
     * */
    class dyyxlearning extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.course-list ul ul .videoLi');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // // 根据进度判断
                    // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText;
                    // if (parseInt(status) < 99) {
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelectorAll('video')[1];
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                // @ts-ignore
                let myClassId = location.href.match('myClassId=(.+)')[1];
                let tasks = yield this.getClassList(myClassId);
                let curTask = tasks.attribute.data.myClassCourseRPList[0].videoRPs[this.currentIndex];
                // 获取视频弹窗题目
                let option = `videoId=${curTask.videoId}&isUse=1&startSecond=&myClassCourseVideoId=${curTask.myClassCourseVideoId}`;
                let questionList = yield this.getVideoTopic(myClassId, option);
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    let $playBtn = document.querySelector('.ccToggleBtn');
                    if (!$playBtn.classList.contains('ccH5TogglePause')) {
                        $playBtn.click();
                    }
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    // this.listenVidoeStatus(ElementObj.$video, () => {
                    //     ElementObj.$video.volume = 0
                    //     ElementObj.$video.play()
                    // })
                    this.listenRebort(questionList.attribute.data);
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            let $playBtn = document.querySelector('.ccToggleBtn');
                            if (!$playBtn.classList.contains('ccH5TogglePause')) {
                                $playBtn.click();
                            }
                        }, 3500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        // 监测题目弹窗
        listenRebort(questionList) {
            this.listenRebortTime = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                var _c;
                let $ccJumpOver = document.querySelector('#ccJumpOver');
                let $topicType2 = document.querySelector('.pv-ask-modal-wrap');
                if (!!$ccJumpOver || !!$topicType2) {
                    // @ts-ignore
                    let $questionName = document.querySelector('.ccProblem .text').innerText;
                    let question = questionList.find((item) => {
                        return item.videoQuestionEntitySet[0].questionName == $questionName;
                    });
                    let answerIndex = -1;
                    for (let i = 0; i <= question.videoQuestionEntitySet[0].videoAnswerEntitySet.length - 1; i++) {
                        let item = question.videoQuestionEntitySet[0].videoAnswerEntitySet[i];
                        if (question.videoQuestionEntitySet[0].standardId.indexOf(item.videoAnswerId) != -1) {
                            answerIndex = i;
                        }
                    }
                    if (answerIndex == -1) {
                        location.reload();
                    }
                    (_c = document.querySelectorAll('.ccQuestionList li')[answerIndex]) === null || _c === void 0 ? void 0 : _c.click();
                    document.querySelector('#ccQuestionSubmit').click();
                    setTimeout(() => {
                        document.querySelector('#rightBtn').click();
                    }, 2000);
                }
            }), 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        getVideoTopic(myClassId, option) {
            return __awaiter(this, void 0, void 0, function* () {
                return new Promise((resolve) => {
                    fetch(`https://sddy.zyk.yxlearning.com/train/cms/study/query-video-random-popup-list.gson?${option}`, {
                        "headers": {
                            "accept": "*/*",
                            "accept-language": "zh-CN,zh;q=0.9",
                            "accountid": "33f3dd30-1e79-420b-9fe6-bf298fa1d550",
                            "sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"",
                            "sec-ch-ua-mobile": "?0",
                            "sec-ch-ua-platform": "\"Windows\"",
                            "sec-fetch-dest": "empty",
                            "sec-fetch-mode": "cors",
                            "sec-fetch-site": "same-origin",
                            "x-requested-with": "XMLHttpRequest"
                        },
                        "referrer": `https://sddy.zyk.yxlearning.com/learning/index?myClassId=${myClassId}`,
                        "referrerPolicy": "strict-origin-when-cross-origin",
                        "body": null,
                        "method": "GET",
                        "mode": "cors",
                        "credentials": "include"
                    }).then(res => res.json()).then(res => resolve(res));
                });
            });
        }
        getClassList(myClassId) {
            return __awaiter(this, void 0, void 0, function* () {
                return new Promise(resolve => {
                    fetch(`https://sddy.zyk.yxlearning.com/train/class/my-class.gson?myClassId=${myClassId}`, {
                        "headers": {
                            "accept": "*/*",
                            "accept-language": "zh-CN,zh;q=0.9",
                            "sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"",
                            "sec-ch-ua-mobile": "?0",
                            "sec-ch-ua-platform": "\"Windows\"",
                            "sec-fetch-dest": "empty",
                            "sec-fetch-mode": "cors",
                            "sec-fetch-site": "same-origin",
                            "x-requested-with": "XMLHttpRequest"
                        },
                        "referrer": `https://sddy.zyk.yxlearning.com/learning/index?myClassId=${myClassId}`,
                        "referrerPolicy": "strict-origin-when-cross-origin",
                        "body": null,
                        "method": "GET",
                        "mode": "cors",
                        "credentials": "include"
                    }).then(res => res.json()).then(res => resolve(res));
                });
            });
        }
    }
    /**
     * 河北教师教育网
     * 91
     * */
    class hebeijiaoshijiaoyuwang extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    var _c, _d;
                    try {
                        if (location.pathname == '/MyCourse/MyEventList') {
                            ElementObj.$parentNodes = document.querySelectorAll('#mainList dd ul li');
                            if (ElementObj.$parentNodes.length > 0) {
                                clearInterval(interval);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                for (let item of ElementObj.$parentNodes) {
                                    if (item.querySelector('i').innerText != '[已完成]') {
                                        MyTool.setValue('homeUrl', location.href);
                                        item.querySelector('a').click();
                                        break;
                                    }
                                }
                            }
                        }
                        if (location.pathname == '/Event/MyjoinEvent') {
                            ElementObj.$parentNodes = document.querySelectorAll('tr[class]');
                            if (ElementObj.$parentNodes.length > 0) {
                                clearInterval(interval);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                if (ElementObj.$parentNodes.length > 0) {
                                    for (let item of ElementObj.$parentNodes) {
                                        let $status = item.querySelectorAll('td')[2].querySelector('span').innerText.trim();
                                        if ($status != '已学完' && $status != '已完成') {
                                            item.querySelector('a').click();
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        if (location.pathname == '/Event/CourseWare') {
                            ElementObj.$parentNodes = document.querySelectorAll('tr[class]');
                            if (ElementObj.$parentNodes.length > 0) {
                                clearInterval(interval);
                                ElementObj.$handleSpeedUp.style.display = 'none';
                                if (ElementObj.$parentNodes.length > 0) {
                                    for (let item of ElementObj.$parentNodes) {
                                        let $status = item.querySelectorAll('td')[2].querySelector('span').innerText.trim();
                                        if ($status != '已学完') {
                                            item.querySelector('a').click();
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        ElementObj.$video = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('video');
                        if (ElementObj.$video) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this._o1();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // // 根据进度判断
                    // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText;
                    // if (parseInt(status) < 99) {
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this.pdPlayFn(location.href);
                }, 4000);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    var _c, _d;
                    count += 1;
                    ElementObj.$video = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('video');
                    if (!!ElementObj.$video) {
                        clearInterval(Timer);
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    let $wrap = document.querySelector('#mian');
                    $wrap.style.position = 'relative';
                    yield this.changeHtml($wrap);
                    this.listenPlayTime();
                    // this.listenVidoeStatus(ElementObj.$video, () => {
                    //     ElementObj.$video.volume = 0
                    //     ElementObj.$video.play()
                    // })
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 3500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        // 监测题目弹窗
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.school-sate button');
                if (!!$btn) {
                    $btn.click();
                }
            }, 10 * 1000);
        }
        listenPlayTime() {
            showTip('🔉课件正在学习,请务点击或长时间隐藏');
            let count = 0;
            this.timer = setInterval(() => {
                count += 1;
                let time = (ElementObj.$video.currentTime / 60).toFixed(2);
                let videoDuration = (ElementObj.$video.duration / 60).toFixed(2);
                this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${videoDuration}分钟`);
            }, 3000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let $nextBtn2 = document.querySelectorAll('.tishivalhui')[2];
                let $nextBt1 = document.querySelectorAll('.tishivalhui')[1];
                let $nextTitle = $nextBtn2 || $nextBt1;
                // @ts-ignore
                if ($nextTitle.innerText == '下一篇:没有了;') {
                    location.href = MyTool.getValue('homeUrl');
                    return;
                }
                yield sleep(2500);
                let $tishivaljus = document.querySelectorAll('.tishivalju');
                let $nextBtn = $tishivaljus.length > 1 ? $tishivaljus[1] : $tishivaljus[0];
                $nextBtn.click();
            });
        }
    }
    /**
     * 山东干部网络学院
     * 92
     * shangdongganbu
     * */
    class shangdongganbu extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.class');
                        if (location.href.indexOf('/content#/personalCenter') != -1 && ElementObj.$allTask.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getCurrentIndex();
                            return;
                        }
                        if (location.href.indexOf('/content#/commend/coursedetail/?courseId=') != -1) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this._o1();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    let status = isDone.querySelectorAll('.pro-t>div')[1].innerText;
                    if (parseInt(status) != 100) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                let btn = ElementObj.$allTask[this.currentIndex].querySelector('.class-img>img');
                btn.click();
                setTimeout(() => {
                    window.close();
                }, 1000 * 120);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    let $wrap = document.querySelector('.video-player-box');
                    $wrap.style.position = 'relative';
                    yield this.changeHtml($wrap);
                    let option = {
                        courseId: '',
                        idCardHash: ''
                    };
                    // @ts-ignore
                    option.courseId = /courseId=(.*)/.exec(location.href)[1];
                    // @ts-ignore
                    option.idCardHash = JSON.parse(sessionStorage.getItem('userInfo')).data.idCardHash;
                    if (!option.idCardHash) {
                        alert('登录过期了,请重新登录');
                        return;
                    }
                    let result1 = yield this.fetchStart(option);
                    this.listenPlayTime(option);
                    this.listenRebort();
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        // 监测题目弹窗
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.school-sate button');
                if (!!$btn) {
                    $btn.click();
                }
            }, 10 * 1000);
        }
        listenPlayTime(option) {
            return __awaiter(this, void 0, void 0, function* () {
                this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅');
                yield sleep(3000);
                // ElementObj.$video.pause();
                showTip('🔉课件正在学习,请务点击或长时间隐藏');
                let videoDuration = Math.ceil(ElementObj.$video.duration);
                if (!videoDuration) {
                    alert('视频时间错误,请刷新页面重试');
                    return;
                }
                let balanceTime = 0;
                for (let item of new Array(1000)) {
                    if (balanceTime >= videoDuration) {
                        yield this.saveProgress(option);
                        yield this.saveProgress(option);
                        yield this.saveEnd(option);
                        this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉');
                        break;
                    }
                    balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator;
                    option.studyTimes = balanceTime;
                    let result1 = yield this.saveProgress(option);
                    // let result2 = await this.saveProgress2(option)
                    this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`);
                    yield sleep(1000);
                }
                this.playNext();
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                yield sleep(2500);
                setTimeout(() => {
                    location.reload();
                }, 3000);
                location.href = 'https://gbwlxy.dtdjzx.gov.cn/content#/personalCenter';
            });
        }
        fetchStart(option) {
            return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                let result = yield fetch("https://gbwlxy.dtdjzx.gov.cn/__api/api/study/start", {
                    "headers": {
                        "accept": "application/json, text/plain, */*",
                        "accept-language": "zh-CN,zh;q=0.9",
                        "content-type": "application/json;",
                        "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"",
                        "sec-ch-ua-mobile": "?0",
                        "sec-ch-ua-platform": "\"Windows\"",
                        "sec-fetch-dest": "empty",
                        "sec-fetch-mode": "cors",
                        "sec-fetch-site": "same-origin",
                        "x-requested-with": "XMLHttpRequest"
                    },
                    "referrer": "https://gbwlxy.dtdjzx.gov.cn/content",
                    "referrerPolicy": "strict-origin-when-cross-origin",
                    "body": `{\"courseId\":\"${option.courseId}\",\"idCardHash\":\"${option.idCardHash}\",\"studyType\":\"VIDEO\"}`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                });
                resolve(result);
            }));
        }
        saveProgress(option) {
            return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                fetch(`${location.origin}/__api/api/study/progress`, {
                    "headers": {
                        "accept": "application/json, text/plain, */*",
                        "accept-language": "zh-CN,zh;q=0.9",
                        "content-type": "application/json;",
                        "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"",
                        "sec-ch-ua-mobile": "?0",
                        "sec-ch-ua-platform": "\"Windows\"",
                        "sec-fetch-dest": "empty",
                        "sec-fetch-mode": "cors",
                        "sec-fetch-site": "same-origin",
                        "x-requested-with": "XMLHttpRequest"
                    },
                    "referrer": `${location.origin}/content`,
                    "referrerPolicy": "strict-origin-when-cross-origin",
                    "body": `{\"courseId\":\"${option.courseId}\",\"idCardHash\":\"${option.idCardHash}\",\"studyTimes\":${option.studyTimes}}`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                }).then(res => res.json()).then(res => resolve(res));
            }));
        }
        saveProgress2(option) {
            return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                let result = yield fetch(`${location.origin}/apiStudy/gwapi/us/api/study/progress2`, {
                    "headers": {
                        "accept": "application/json, text/plain, */*",
                        "accept-language": "zh-CN,zh;q=0.9",
                        "content-type": "application/json;",
                        "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"",
                        "sec-ch-ua-mobile": "?0",
                        "sec-ch-ua-platform": "\"Windows\"",
                        "sec-fetch-dest": "empty",
                        "sec-fetch-mode": "cors",
                        "sec-fetch-site": "same-origin",
                        "x-ca-key": "ac620187e5b8d7af",
                        "x-ca-nonce": "e12f60e3-df8f-349f-55d0-626d597f5eaf",
                        "x-ca-signature": "V16026136F33B05F06F275BE6CECF4A2F1",
                        "x-ca-timestamp": "1706683430971",
                        "x-requested-with": "XMLHttpRequest"
                    },
                    "referrer": `${location.origin}/content`,
                    "referrerPolicy": "strict-origin-when-cross-origin",
                    "body": `{\"userId\":\"${option.idCardHash}\",\"courseCode\":\"${option.courseId}\",\"studyTimes\":${option.studyTimes}}`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                });
                resolve(result);
            }));
        }
        saveEnd(option) {
            return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                let result = yield fetch(`${location.origin}/__api/api/study/v2/end`, {
                    "headers": {
                        "accept": "application/json, text/plain, */*",
                        "accept-language": "zh-CN,zh;q=0.9",
                        "content-type": "application/json;",
                        "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"",
                        "sec-ch-ua-mobile": "?0",
                        "sec-ch-ua-platform": "\"Windows\"",
                        "sec-fetch-dest": "empty",
                        "sec-fetch-mode": "cors",
                        "sec-fetch-site": "same-origin",
                        "x-requested-with": "XMLHttpRequest"
                    },
                    "referrer": `${location.origin}/content`,
                    "referrerPolicy": "strict-origin-when-cross-origin",
                    "body": `{\"courseId\":\"${option.courseId}\",\"idCardHash\":\"${option.idCardHash}\"}`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                });
                resolve(result);
            }));
        }
    }
    /**
     * 云课堂
     * 93
     */
    class yunketang extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.el-collapse-item__content div.file-item');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getCurrentIndex();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据进度判断
                    // let status = (isDone.querySelectorAll('.pro-t>div')[1] as HTMLElement).innerText;
                    // if (parseInt(status) != 100) {
                    //     this.currentIndex = i
                    //     break
                    // }
                    // 根据active判断
                    if (isDone.classList.contains('file-item-active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                let NextBtn = ElementObj.$allTask[this.currentIndex];
                setTimeout(() => {
                    let str = NextBtn.querySelector('div').innerHTML.replace(/ <.+>/, '');
                    this.pdPlayFn(str);
                }, 1000 * 3);
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    ElementObj.$video = document.querySelector('video');
                    let $playBtn = document.querySelector('.vjs-big-play-button');
                    if (!!ElementObj.$video && $playBtn) {
                        clearInterval(Timer);
                        $playBtn.click();
                        resolve(1);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    this.changeHtml($el('#vjs_video_3'));
                    this.listenPlayTime();
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    this.listenVidoeStatus(ElementObj.$video, () => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    });
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            let $playBtn = document.querySelector('.vjs-big-play-button');
                            $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click();
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 3500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenPlayTime() {
            let count = 0;
            setInterval(() => {
                count += 1;
                let currentTask = ElementObj.$allTask[this.currentIndex].querySelector('.el-progress__text').innerText;
                if (currentTask == '100%') {
                    location.reload();
                }
                this.addInfo(`已成功监测${count}次,视频正在播放中,当前进度完成${currentTask}`);
            }, 3000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                location.reload();
            });
        }
        pdPlayFn(className) {
            let localData = MyTool.getValue('spanClassName') || [];
            if (localData.indexOf(className) != -1) {
                this.play();
            }
            else {
                localData.push(className);
                MyTool.setValue('spanClassName', localData);
                this._o1();
            }
        }
    }
    /**
     * 河南华夏基础教育学院
     * 95
     * */
    class huaxiajiaoshiyanpei extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('.cou1-title>li');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getCurrentIndex();
                            return;
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据active判断
                    if (isDone.classList.contains('list_active')) {
                        this.currentIndex = i;
                        showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                        setTimeout(() => {
                            this._o1();
                        }, 1000 * 3);
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                clearInterval(this.timer);
                let studyType = yield this.getVideoDom();
                this.listenRebort();
                if (studyType == 1) {
                    yield this.changeHtml($el('video').parentElement);
                    let video_id = null;
                    if (location.href.indexOf('/sort/') > -1) {
                        // @ts-ignore
                        video_id = /\/id\/(.+)\/sort/.exec(location.href)[1];
                    }
                    else {
                        // @ts-ignore
                        video_id = /\/id\/(.+)/.exec(location.href)[1];
                    }
                    // @ts-ignore
                    let goods_id = unsafeWindow.goods_id;
                    // @ts-ignore
                    let user_id = unsafeWindow.user_id || $("#uid").val();
                    yield this.listenPlayTime({
                        user_id: user_id,
                        goods_id: goods_id,
                        video_id: Number(video_id),
                        status: 1,
                        times: 0,
                        play_time: 0
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        listenPlayTime(option) {
            return __awaiter(this, void 0, void 0, function* () {
                this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅');
                yield sleep(3000);
                showTip('🔉课件正在学习,请务点击或长时间隐藏');
                let videoDuration = Math.ceil(ElementObj.$video.duration);
                if (!videoDuration) {
                    // alert('视频时间错误,请刷新页面重试')
                    console.log('#1 视频时间错误,请刷新页面重试');
                    location.reload();
                    return;
                }
                console.log('option==>>', option);
                if (!option.user_id || !option.goods_id || !option.video_id) {
                    return alert('参数不正确');
                }
                let balanceTime = 0;
                for (let item of new Array(10000)) {
                    if (balanceTime >= videoDuration) {
                        option.status = 2;
                        yield this.saveProgress(option);
                        this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉');
                        this.playNext();
                        break;
                    }
                    balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator;
                    option.times = balanceTime;
                    option.play_time = balanceTime;
                    let result1 = yield this.saveProgress(option);
                    this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`);
                    yield sleep(850);
                }
            });
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let $btn = document.querySelector('.layui-layer-btn0');
                $btn === null || $btn === void 0 ? void 0 : $btn.click();
            }, 2000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let count = 3;
                this.currentIndex += 1;
                let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a');
                let inter = setInterval(() => {
                    this.addInfo('🐱‍🚀🐱‍🚀🐱‍🚀请稍后,正在保存数据......');
                    if (count <= 0) {
                        clearInterval(inter);
                        // @ts-ignore
                        $nextBtn.click();
                    }
                    count -= 1;
                }, 1000);
            });
        }
        saveProgress(option) {
            return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
                let result = yield fetch(`${location.origin}/portal/lesson/update_study`, {
                    "headers": {
                        "accept": "application/json, text/javascript, */*; q=0.01",
                        "accept-language": "zh-CN,zh;q=0.9",
                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                        "x-requested-with": "XMLHttpRequest"
                    },
                    "referrerPolicy": "strict-origin-when-cross-origin",
                    "body": `user_id=${option.user_id}&goods_id=${option.goods_id}&video_id=${option.video_id}&status=${option.status}&times=${option.times}&play_time=${option.play_time}`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                });
                resolve(result);
            }));
        }
    }
    /**
     * 浙里学习
     * 96
     * */
    class zhelixuexi extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$parentNodes = document.querySelectorAll('.vi-item');
                        if (ElementObj.$parentNodes.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) {
                                let isDone = ElementObj.$parentNodes[i];
                                // // 根据进度判断
                                let status = isDone.querySelector('.v-prosss').innerText.replace('已学习', '');
                                if (parseInt(status) < 99) {
                                    this.currentIndex = i;
                                    MyTool.setValue('homeUrl', location.href);
                                    isDone.click();
                                    break;
                                }
                            }
                            return;
                        }
                        ElementObj.$allTask = document.querySelectorAll('.set-content');
                        if (ElementObj.$allTask.length) {
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            clearInterval(interval);
                            this.getCurrentIndex();
                            return;
                        }
                        ElementObj.$video = document.querySelector('video');
                        if (!!ElementObj.$video) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this._o1();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let isDone = ElementObj.$allTask[i];
                    // 根据active判断
                    if (isDone.classList.contains('active')) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                showTip('✅✅✅初始化完成,5秒后开始播放', 3000);
                setTimeout(() => {
                    this._o1();
                }, 4000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                if (studyType == 1) {
                    ElementObj.$video.volume = 0;
                    ElementObj.$video.play();
                    setTimeout(() => {
                        ElementObj.$video.playbackRate = toolOption.accelerator;
                    }, 3000);
                    // this.listenVidoeStatus(ElementObj.$video, () => {
                    //     ElementObj.$video.volume = 0
                    //     ElementObj.$video.play()
                    // })
                    this.listenRebort();
                    ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                        showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                        this.playNext();
                    }));
                    ElementObj.$video.addEventListener('pause', () => {
                        setTimeout(() => {
                            ElementObj.$video.volume = 0;
                            ElementObj.$video.play();
                        }, 3500);
                    });
                }
                if (studyType == 2) {
                    showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000);
                    yield sleep(3000);
                    this.playNext();
                }
            });
        }
        // 监测题目弹窗
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
            }, 10 * 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    let homeUrl = MyTool.getValue('homeUrl');
                    setTimeout(() => {
                        location.href = homeUrl;
                    }, 3000);
                    return;
                }
                yield sleep(2000);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1();
                }, 3000);
            });
        }
    }
    /**
     * S云课堂网校
     * 97
     * */
    class fhswifer extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$parentNodes = document.querySelectorAll('.c-directory-item');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            showTip('正在寻找全部课程,预计10-20秒,请稍等...');
                            this.getParentIndex();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (let item of ElementObj.$parentNodes) {
                    item.click();
                    yield sleep(500);
                }
                this.getCurrentIndex();
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                ElementObj.$allTask = document.querySelectorAll('.c-directory-box .cc-directory-item');
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i];
                    // 根据进度判断
                    let status = $item.querySelector('.cc-audition');
                    if (!status) {
                        this.currentIndex = i;
                        break;
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                ElementObj.$allTask[this.currentIndex].click();
                showTip('初始化完成,第一次请手动播放视频', 1000 * 10);
                this.play();
                return;
            });
        }
        getVideoDom() {
            return new Promise(resolve => {
                let count = 0;
                let Timer = setInterval(() => {
                    count += 1;
                    let $video = document.querySelector('.icon.bplayer-play-btn');
                    if (!!$video) {
                        clearInterval(Timer);
                        resolve($video);
                        return;
                    }
                    if (count >= 7) {
                        clearInterval(Timer);
                        resolve(2);
                    }
                }, 1000);
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let $video = yield this.getVideoDom();
                $video.click();
                this.listenPlayTime();
                this.listenRebort();
            });
        }
        listenPlayTime() {
            let count = 0;
            this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                count += 1;
                // @ts-ignore
                let currentTime = document.querySelector('.played-time').innerText;
                // @ts-ignore
                let durtion = document.querySelector('.total-time').innerText;
                if (currentTime.trim() >= durtion.trim()) {
                    clearInterval(this.timer);
                    this.playNext();
                }
                // this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`)
            }), 5000);
        }
        listenRebort() {
            this.listenRebortTime = setInterval(() => {
                let playBtn = document.querySelector('.bplayer-wrap');
                if (!playBtn.classList.contains('bplayer-playing')) {
                    // @ts-ignore
                    document.querySelector('.icon.bplayer-play-btn').click();
                }
            }, 1000);
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                if (this.currentIndex >= ElementObj.$allTask.length - 1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                yield sleep(2500);
                this.currentIndex += 1;
                ElementObj.$allTask[this.currentIndex].click();
                setTimeout(() => {
                    this._o1(() => {
                    }, false);
                }, 3000);
            });
        }
    }
    /**
     * 宁夏专业技术人员继续教育在线培训平台
     * 100
     * */
    class rrhisdgf283y7jvdf extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$allTask = document.querySelectorAll('ul.cb.oh li');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getCurrentIndex(1);
                        }
                        ElementObj.$allTask = document.querySelectorAll('.section-item');
                        if (ElementObj.$allTask.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getCurrentIndex(2);
                        }
                        let $iframe = document.querySelector('iframe');
                        if ((location.href.indexOf('v_video?platformId=') != -1 || location.href.indexOf('/play_video/') != -1) && $iframe) {
                            clearInterval(interval);
                            location.href = $iframe.src;
                        }
                        if (['/videoPlay/play', '/videoPlay/playEncrypt'].indexOf(location.pathname) != -1) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this._o1();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getCurrentIndex(type) {
            return __awaiter(this, void 0, void 0, function* () {
                for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                    let $item = ElementObj.$allTask[i];
                    if (type == 1) {
                        let status = $item.querySelector('.button.titlecolor');
                        if (status.innerText.indexOf('已学完') == -1) {
                            this.currentIndex = i;
                            break;
                        }
                    }
                    if (type == 2) {
                        // @ts-ignore
                        let $status = $item.querySelectorAll('.n-text.__text-q8o5bu-d')[2].innerText.trim();
                        if ($status != '已学完') {
                            this.currentIndex = i;
                            break;
                        }
                    }
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                setTimeout(() => {
                    window.close();
                }, 1000 * 120);
                MyTool.setValue('homeUrl', location.href);
                if (type == 1) {
                    ElementObj.$allTask[this.currentIndex].querySelector('.button.titlecolor').click();
                }
                if (type == 2) {
                    ElementObj.$allTask[this.currentIndex].click();
                }
                return;
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                ElementObj.$video.volume = 0;
                ElementObj.$video.play();
                setTimeout(() => {
                    ElementObj.$video.playbackRate = toolOption.accelerator;
                }, 3000);
                ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () {
                    showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500);
                    this.playNext();
                }));
                ElementObj.$video.addEventListener('pause', () => {
                    setTimeout(() => {
                        ElementObj.$video.volume = 0;
                        ElementObj.$video.play();
                    }, 3500);
                });
            });
        }
        listenPlayTime() {
            return __awaiter(this, void 0, void 0, function* () {
                this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅');
                yield sleep(1000);
                showTip('🔉课件正在学习,请务点击或长时间隐藏');
                let videoDuration = Math.ceil(ElementObj.$video.duration);
                if (!videoDuration) {
                    alert('视频时间错误,请刷新页面重试');
                    return;
                }
                let balanceTime = 0;
                for (let item of new Array(1000)) {
                    if (balanceTime >= videoDuration) {
                        ElementObj.$video.currentTime = ElementObj.$video.duration - 10;
                        yield sleep(1000);
                        ElementObj.$video.currentTime = ElementObj.$video.duration;
                        this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉');
                        this.playNext();
                        break;
                    }
                    balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator;
                    this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`);
                    yield sleep(1000);
                }
                this.playNext();
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                let homeUrl = MyTool.getValue('homeUrl');
                if (!homeUrl) {
                    showTip('官网该平台底部有注意事项,请按照该指示页面执行程序,否则无法自动连播', 1000 * 10);
                    alert('官网该平台底部有注意事项,请按照该指示页面执行程序,否则无法自动连播');
                    return;
                }
                setTimeout(() => {
                    location.href = homeUrl;
                }, 10 * 1000);
            });
        }
    }
    /**
     * 隆泰达培训
     * 101
     * */
    class f6872 extends Main {
        constructor() {
            super();
            this.taskLength = 0;
            this.currentIndex = -1;
            this._init();
        }
        // 初始化
        _init() {
            return __awaiter(this, void 0, void 0, function* () {
                let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
                    try {
                        ElementObj.$parentNodes = document.querySelectorAll('.ant-table-tbody')[0].querySelectorAll('tr');
                        if (ElementObj.$parentNodes.length) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this.getParentIndex();
                        }
                        ElementObj.$video = document.querySelector('video');
                        if (ElementObj.$video) {
                            clearInterval(interval);
                            ElementObj.$handleSpeedUp.style.display = 'none';
                            this._o1();
                        }
                    }
                    catch (e) {
                    }
                }), 1000);
            });
        }
        getParentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                for (let item of ElementObj.$parentNodes) {
                    let status = item.querySelector('.ant-progress-text').innerText;
                    if (parseInt(status) < 97) {
                        item.click();
                        yield sleep(2000);
                        this.getCurrentIndex();
                        break;
                    }
                }
            });
        }
        getCurrentIndex() {
            return __awaiter(this, void 0, void 0, function* () {
                let pageBtns = document.querySelectorAll('.ant-pagination')[1].querySelectorAll('li.ant-pagination-item');
                forData: for (let item of pageBtns) {
                    ElementObj.$allTask = document.querySelectorAll('.ant-table-tbody')[1].querySelectorAll('tr');
                    for (let i = 0; i <= ElementObj.$allTask.length - 1; i++) {
                        let $li = ElementObj.$allTask[i];
                        if (!$li.querySelector('i')) {
                            this.currentIndex = i;
                            let startBtn = $li.querySelectorAll('.ant-table-row-cell-break-word a')[1];
                            startBtn.click();
                            yield sleep(2000);
                            this._o1();
                            break forData;
                        }
                    }
                    // @ts-ignore
                    item.click();
                    yield sleep(2000);
                }
                if (this.currentIndex == -1) {
                    alert('当前课程所有视频已播放完');
                    return;
                }
                return;
            });
        }
        play() {
            return __awaiter(this, void 0, void 0, function* () {
                clearInterval(this.timer);
                clearInterval(this.listenVidoeStatusTimer);
                clearInterval(this.listenRebortTime);
                let studyType = yield this.getVideoDom();
                yield this.changeHtml($el('.input_video'));
                this.listenPlayTime();
            });
        }
        listenPlayTime() {
            return __awaiter(this, void 0, void 0, function* () {
                this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅');
                yield sleep(1000);
                showTip('🔉课件正在学习,请务点击或长时间隐藏');
                let videoDuration = Math.ceil(ElementObj.$video.duration);
                if (!videoDuration) {
                    alert('视频时间错误,请刷新页面重试');
                    return;
                }
                let balanceTime = 0;
                for (let item of new Array(1000)) {
                    if (balanceTime >= videoDuration) {
                        ElementObj.$video.currentTime = ElementObj.$video.duration;
                        yield sleep(1000);
                        ElementObj.$video.currentTime = ElementObj.$video.duration;
                        this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉');
                        this.playNext();
                        break;
                    }
                    balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator;
                    this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`);
                    yield sleep(3000);
                }
                this.playNext();
            });
        }
        playNext() {
            return __awaiter(this, void 0, void 0, function* () {
                setTimeout(() => {
                    location.reload();
                }, 1000);
            });
        }
    }
    /**
     * 新增控制面板
     * */
    class Addpanel {
        constructor() {
            this.$panelWrap = document.createElement('div');
            this.$panelStyle = document.createElement('style');
            this._init();
        }
        _init() {
            var _c, _d, _f, _g, _h, _j, _k;
            return __awaiter(this, void 0, void 0, function* () {
                this.$panelWrap.innerHTML = this.getCTXHTML();
                this.$panelStyle.innerHTML = panelcss;
                (_c = document.querySelector('head')) === null || _c === void 0 ? void 0 : _c.appendChild(this.$panelStyle);
                if (toolOption.SchoolType == 3) {
                    (_d = document.querySelector('#bigContainer')) === null || _d === void 0 ? void 0 : _d.appendChild(this.$panelWrap);
                }
                else if (toolOption.SchoolType == 7) {
                    (_f = document.querySelector('.layout-content')) === null || _f === void 0 ? void 0 : _f.appendChild(this.$panelWrap);
                }
                else if (toolOption.SchoolType == 11) {
                    (_g = document.querySelector('.task-dashboard-page')) === null || _g === void 0 ? void 0 : _g.appendChild(this.$panelWrap);
                }
                else if (toolOption.SchoolType == 18) {
                    (_h = document.querySelector('.screen_wide_1')) === null || _h === void 0 ? void 0 : _h.appendChild(this.$panelWrap);
                }
                else {
                    (_j = document.querySelector('body')) === null || _j === void 0 ? void 0 : _j.appendChild(this.$panelWrap);
                }
                ElementObj.$title3 = document.querySelector('.title3');
                ElementObj.$mytoolkey = document.querySelector('.mytoolkey');
                ElementObj.$nokey = document.querySelector('.nokey');
                ElementObj.$addKey = document.getElementById('addKey');
                ElementObj.$removeKey = document.getElementById('removeKey');
                ElementObj.$ipt = document.querySelector('.mytoolkeyipt');
                ElementObj.$handleSpeedUp = document.querySelector('.handleSpeedUp');
                ElementObj.$ctxTipWrap = document.querySelector('#ctxTipWrap');
                ElementObj.$ctxsection2 = document.querySelector('.ctxsection2');
                ElementObj.$ctxcontrols = document.querySelector('.ctxcontrols');
                let storageKey = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey');
                if (storageKey) {
                    let mytoolkeyInfo = MyTool.getValue('mytoolkeyInfo');
                    if (mytoolkeyInfo && mytoolkeyInfo.canuse == '2' && MyTool.isDateGreaterThanSevenDays(mytoolkeyInfo.createtime)) {
                        localStorage.removeItem('mytoolkey');
                        MyTool.deleteValue('mytoolkey');
                    }
                    else {
                        this.handleSetHtml(storageKey);
                    }
                }
                this.optimizePannel();
                this.setSpeedOption();
                this.addEvent();
                this.getSlogan();
                let isHideCtx = MyTool.getValue('hideCtx');
                if (isHideCtx) {
                    $el('.myTool').style.left = '-99999px';
                    $el('.myTool>.floatWin').style.left = '-35px';
                    (_k = document.querySelector('.myTool>.floatWin')) === null || _k === void 0 ? void 0 : _k.addEventListener('click', () => {
                        MyTool.setValue("hideCtx", false);
                        location.reload();
                    });
                }
                MyTool.registerMenuCommand('隐藏脚本', 'h', () => {
                    MyTool.setValue('hideCtx', true);
                    location.reload();
                });
                MyTool.registerMenuCommand('显示脚本', 's', () => {
                    MyTool.setValue('hideCtx', false);
                    location.reload();
                });
                this._v0();
            });
        }
        /**
         * 根据不同的网课平台,适当调整 面板的样式
         * */
        optimizePannel() {
            if (toolOption.SchoolType == 2) {
                $el('.myTool').style.left = 'unset';
                $el('.myTool').style.right = '44px';
                $el('.ipt-wrap').style.marginTop = '3px';
                ElementObj.$ipt.style.padding = '11px 3px';
            }
            if (toolOption.SchoolType == 9) {
                $el('.handleKeyBtn').style.lineHeight = '16px';
            }
            if (toolOption.SchoolType == 16) {
                ElementObj.$myTool = document.querySelector('.myTool');
                if (_i1.gzjxjy.runtype == 2) {
                    ElementObj.$handleSpeedUp.style.display = 'none';
                    ElementObj.$speedSelect = document.querySelector('.ctxsection2');
                    ElementObj.$speedSelect.style.display = 'none';
                }
                if (_i1.gzjxjy.runtype == 1) {
                    ElementObj.$ctxsection3 = document.querySelector('.cxtsection3');
                    ElementObj.$ctxsection3.style.display = 'none';
                }
            }
            // 1倍速
            if ([14, 24, 63, 65].indexOf(toolOption.SchoolType) != -1) {
                toolOption.accelerator = 1;
                speedArr = [1];
            }
            // 1-2倍速
            if ([40, 52, 54, 67, 80].indexOf(toolOption.SchoolType) != -1) {
                speedArr = [1, 2];
            }
            // 1-3倍速
            if ([7, 12, 22, 53].indexOf(toolOption.SchoolType) != -1) {
                speedArr = [1, 2, 3];
                toolOption.accelerator = 3;
            }
            // 控制面板到右侧
            if ([38, 45, 46, 52, 57, 58, 61, 64, 67, 97, 103].indexOf(toolOption.SchoolType) != -1) {
                $el('.myTool').style.left = 'unset';
                $el('.myTool').style.right = '44px';
            }
            if (toolOption.SchoolType == 18) {
                $el('.btn1').style.width = '74%';
                $el('.btn1').style.paddingTop = '0';
                $el('.btn1').style.paddingBottom = '0';
                $el('#slogan').style.position = 'relative';
                $el('#slogan').style.left = '-40px';
                speedArr = [1, 2, 3, 5];
            }
            if (toolOption.SchoolType == 19) {
                toolOption.accelerator = 1;
                $el('.myTool').style.width = '202px';
            }
            if (toolOption.SchoolType == 23) {
                $el('.myTool').style.top = '176px';
                toolOption.accelerator = 1;
            }
            if (toolOption.SchoolType == 25) {
                toolOption.accelerator = 2;
                speedArr = [1, 1.25, 1.5, 2];
            }
            if (toolOption.SchoolType == 26) {
                $el('.myTool').style.width = '202px';
            }
            if (toolOption.SchoolType == 29) {
                speedArr = [1, 1.5, 2, 3, 5, 10];
            }
            if (toolOption.SchoolType == 30) {
                speedArr = [1, 2, 3, 5, 10, 15];
                toolOption.accelerator = 2;
            }
            if (toolOption.SchoolType == 32 || toolOption.SchoolType == 36) {
                $el('.myTool').style.left = 'unset';
                $el('.myTool').style.right = '44px';
                speedArr = [1, 1.1];
            }
            if ([37, 38, 41, 44, 54, 66, 71].indexOf(toolOption.SchoolType) != -1) {
                speedArr = [1, 1.5, 2, 3, 5, 10];
            }
            if ([51, 52].indexOf(toolOption.SchoolType) != -1) {
                $el('.myTool').style.left = '76px';
                speedArr = [1, 2, 3, 10];
                toolOption.accelerator = 2;
            }
            if (toolOption.SchoolType == 60) {
                speedArr = [1, 1.5, 1.8, 2];
                toolOption.accelerator = 2;
            }
            // 1, 1.5, 2, 3, 10倍速
            if ([91, 96, 118, 122].indexOf(toolOption.SchoolType) != -1) {
                speedArr = [1, 1.5, 2, 3, 10];
                toolOption.accelerator = 1;
            }
        }
        setSpeedOption() {
            ElementObj.$speedSelect = document.querySelector('#ctxspeed');
            let html = ``;
            for (var i = 0; i < speedArr.length; i++) {
                let str = `
                <option value="${speedArr[i] == 1.1 ? 1.0 : speedArr[i]}" class="option">
                  × ${speedArr[i] == 1.1 ? 1.2 : speedArr[i]}.0
                </option>
                `;
                html += str;
            }
            ElementObj.$speedSelect.innerHTML = html;
            var _localSpeed = localStorage.getItem('_localSpeed') || MyTool.getValue('_localSpeed');
            if (_localSpeed) {
                ElementObj.$speedSelect.value = _localSpeed;
                toolOption.accelerator = Number(_localSpeed);
            }
        }
        handleSetHtml(key) {
            try {
                ElementObj.$ipt.style.display = 'none';
                ElementObj.$title3.innerText = '当前key:';
                ElementObj.$mytoolkey.innerText = key;
                ElementObj.$mytoolkey.style.display = 'block';
                ElementObj.$nokey.style.display = 'none';
                ElementObj.$removeKey.style.display = 'block';
                ElementObj.$addKey.style.display = 'none';
                ElementObj.userKey = key;
            }
            catch (e) {
            }
        }
        /**
         * 给面板绑定事件
         * */
        addEvent() {
            ElementObj.$addKey.addEventListener('click', () => {
                this.handleAddKey((key) => {
                    this.handleSetHtml(key);
                });
            });
            // 解绑key
            ElementObj.$removeKey.addEventListener('click', () => {
                MyTool.setValue('mytoolkey', null);
                localStorage.removeItem('mytoolkey');
                localStorage.removeItem('_localSpeed');
                ElementObj.$title3.innerText = '绑定key:';
                ElementObj.$mytoolkey.style.display = 'none';
                ElementObj.$ctxsection2.style.display = 'none';
                ElementObj.$nokey.style.display = 'block';
                ElementObj.$ipt.style.display = 'block';
                ElementObj.$addKey.style.display = 'block';
                ElementObj.$removeKey.style.display = 'none';
                ElementObj.$handleSpeedUp.style.background = 'orange';
                ElementObj.$handleSpeedUp.innerText = '点击加速';
            });
            ElementObj.$handleSpeedUp.addEventListener('click', () => {
                toolOption.CtxMain._o1();
            });
            ElementObj.$ctxsection2.addEventListener('change', (e) => {
                toolOption.CtxMain.handleChangeCtxSpeed(e.target.value);
            });
            ElementObj.$ctxcontrols.addEventListener('click', () => {
                let $myToolContent = document.querySelector('.myTool-content');
                // @ts-ignore
                let isHide = GM_getValue("hideCtx", null);
                if (isHide) {
                    $myToolContent.style.height = 'auto';
                    ElementObj.$ctxcontrols.innerText = '×';
                }
                else {
                    $myToolContent.style.height = '0px';
                    ElementObj.$ctxcontrols.innerText = '🔛';
                    $el('.myTool').style.left = '-99999px';
                }
                MyTool.setValue("hideCtx", !isHide);
            });
            document.querySelectorAll('.targetHome').forEach((item) => {
                item.addEventListener('click', () => {
                    location.href = _bt;
                });
            });
        }
        /**
         * 获取面板上的slogan
         * */
        getSlogan() {
            axfedata({
                url: _b + '/getslogan',
                method: "GET"
            }).then((res) => {
                ElementObj.$slogan = document.querySelector('#slogan');
                ElementObj.$slogan.innerHTML = res.result.text1;
                if (res.code === 20231) {
                    erf(res.data);
                }
            });
        }
        getCTXHTML() {
            return `
<div class="myTool">
    <div class="controls ctxcontrols">×</div>
    <div class=''><a style="color: black;" href="${_bt}" target="_blank">📺高智Ai辅助学习程序</a></div>
    
    <div class="myTool-content">
        <div class="nokey">
            <div class="btns">
                <div class="btn1"
                     style="text-align: center;color: #1776FDFF;text-decoration: underline;margin: 5px 0;cursor: pointer;">
                    <a href="${_bt}" target="_blank">点击获取Key</a>
                </div>
                <a href="${_bt}" target="_blank" id="slogan" style="text-decoration: none;">
                
                </a>
            </div>
        </div>
    
        <div class="cxtsection ctxsection1">
          <div class="ctx-title title3">
            输入Key:
          </div>
          <div class="ipt-wrap" style="display: flex;align-items: center;justify-content: space-between;">
            <input class="mytoolkeyipt" />
            <div style="width: 120px;height: 18px;margin-right: 5px;display: none;" class="mytoolkey"></div>
            <button class="handleKeyBtn addkey-btn" id="addKey">绑定</button>
            <button class="handleKeyBtn removkey-btn" id="removeKey">解绑</button>
          </div>
        </div>

        <div class="cxtsection ctxsection2">
          <div class="ctx-title">
            设置倍速:
          </div>
          <select name="" id="ctxspeed" class="speed-select" style="min-width: 130px">
            <option value="1" class="option">
              × 1.0
            </option>
            <option value="5" class="option">
              × 5.00
            </option>
            <option value="10" class="option" selected="selected">
              × 10.00
            </option>
            <option value="16" class="option">
              × 16.00
            </option>
          </select>
        </div>
        
        <div class="cxtsection ctxsection3">
          <div class="ctx-title">
            意见反馈:
          </div>
          <a href="${_bt}"><div class="feedbackBtn">去反馈</div></a>
        </div>
        
        <div class="scriptTip" style="display: none;border-radius: 4px;margin-top: 9px;font-size: 12px;background: rgba(108,201,255,0.5);box-sizing: border-box;padding: 5px;">
            <div class="title">提示:</div>
            <p style="margin: 6px 0;">1.兴趣课全网目前仅支持最高1.5倍速</p>
        </div>
        <div class="cxtsection cxtsection3" style="display: none"> 
          <div class="ctx-title">
            当前作答题目:
          </div>
          <div class="ctxtopic-name">贵州省贵阳市毓秀路27号贵州省人才大市场4楼</div>
        </div>
        
        <div class="handleSpeedUp">点击加速</div>
    </div>
    
    <div id="ctxTipWrap" class="ctxTipWrap"></div>
    
    <div class="floatWin">显示</div>
</div>
    `;
        }
        /**
         * 点击绑定key
         * */
        handleAddKey(callback) {
            return __awaiter(this, void 0, void 0, function* () {
                if (!ElementObj.$ipt.value) {
                    window.open('https://abc.gaozhiwang.top/#/home');
                    window.open(_bt);
                    return;
                }
                let result = yield axfedata({
                    method: 'GET',
                    url: _b + '/vertifykey?toolkey=' + ElementObj.$ipt.value
                });
                if (result.data) {
                    localStorage.setItem('mytoolkey', ElementObj.$ipt.value);
                    localStorage.setItem('_localSpeed', toolOption.accelerator.toString());
                    MyTool.setValue('mytoolkey', ElementObj.$ipt.value);
                    MyTool.setValue('mytoolkeyInfo', result.data);
                    callback(ElementObj.$ipt.value);
                    location.reload();
                }
                else {
                    window.open('https://abc.gaozhiwang.top/#/home');
                    window.open(_bt);
                    alert('输入的key不存在');
                }
            });
        }
        _v0() {
            MyTool.axfedata({
                url: _b + '/getV0',
                method: 'GET',
            }).then((res) => {
                console.log('res==>>>', res);
                if (res.result.version >= version && res.result.force === '2') {
                    alert(res.result.tip);
                    window.close();
                }
                if (res.code === 20231) {
                    erf(res.data);
                }
            });
        }
    }
    function $el(selector, root2 = window.document) {
        const el2 = root2.querySelector(selector);
        return el2 === null ? void 0 : el2;
    }
    function sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    }
    function axfedata(option) {
        return new Promise(resolve => {
            try {
                // @ts-ignore
                GM_xmlhttpRequest(Object.assign(Object.assign({}, option), { onload: function (xhr) {
                        if (xhr.status == 200) {
                            resolve(JSON.parse(xhr.response));
                        }
                    } }));
            }
            catch (e) {
                fetch(option.url, {
                    method: option.method
                }).then(res => res.json()).then(res => {
                    resolve(res);
                });
            }
        });
    }
    function showTip(text, time = 3500, isAlert) {
        time = time ? time : 3500;
        ElementObj.$ctxTipWrap.style.display = 'block';
        ElementObj.$ctxTipWrap.innerText = text;
        let timer = setTimeout(() => {
            ElementObj.$ctxTipWrap.style.display = 'none';
        }, time);
        if (isAlert) {
            alert(text);
        }
    }
    function _re() {
        return __awaiter(this, void 0, void 0, function* () {
            console.log('11111toolOption.CtxMain', toolOption.CtxMain);
            let current_host = location.host;
            if (/www.gaozhiwang.top/.test(current_host))
                return;
            let _e = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey');
            if (!_e)
                return;
            let result = yield axfedata({
                method: 'GET',
                url: _b + `/speedup?toolkey=${_e}&t=1&canuse=1&h=${location.host}&fingerprint=${localStorage.getItem('fingerprint')}&v=${version}`,
            });
            console.log('result==>>', result);
            if (result.code == 200) {
                if (!result.id) {
                    alert(result.message);
                }
                let opiton = _ex(result.id);
                console.log('opiton==>>>', opiton);
                let _a = _i1[opiton]['mainClass'] == 'CTXCommon' ? _i1[opiton].option : eval(_i1[opiton].mainClass);
                // @ts-ignore
                toolOption.CtxMain = _i1[opiton]['mainClass'] == 'CTXCommon' ? new CTXCommon(_a) : new _a();
            }
            else if (result.code == 404) {
            }
            else if (result.code === 20231) {
                erf(result.data);
            }
            else if (result.code === 11 || result.code === -2) {
                alert(result.message);
                erf(result.data);
            }
            else {
                localStorage.removeItem('mytoolkey');
                MyTool.deleteValue('mytoolkey');
                alert(result.message);
                erf(result.data);
            }
            console.log('222222toolOption.CtxMain', toolOption.CtxMain);
        });
    }
    setTimeout(() => __awaiter(this, void 0, void 0, function* () {
        yield _re();
        new Addpanel();
        let randomT = Math.floor(Math.random() * (10 - 2 + 1)) + 2;
        setTimeout(() => {
            let $ctxs = document.querySelectorAll('.myTool');
            if ($ctxs.length > 1) {
                alert('发现脚本安装突出,请删除多余脚本');
            }
        }, randomT * 1000);
    }), 2000); // 3秒延迟
})();