// ==UserScript== // @name 网课视频学习助手 // @namespace http://tampermonkey.net/ // @version 3.4.9 // @description 支持:乌鲁木齐建设职业培训中心、山东开放大学、师学通国培计划、山东省文化和旅游厅继续教育公共服务平台、甘肃省公务员网络培训网、山东省教师教育网、广东人才继续教育网、四平农村成人高等专科学校、继续教育学习平台、兰州大学、安徽继续教育在线、江西省补贴性线上职业培训、贵州继续教育网、河南专技培训、泰安市专业技术人员、河南省地矿系统专业技术、自贡开放大学、河南新闻出版学校、天水博通职业技术培训学校、兰州资源环境职业技术大学、国家智慧教育公共服务平台、北京教师学习网、甘肃庆阳、兰州文理学院继续教育、浙江省住房和城乡建设行业专业技术人员继续教育系统、学习图强、优学院、福建师范继续教育、河南新闻出版学校、漯河远程教育、河南省专业技术人员学习公社、良医教育、梦想在线、专技天下、广西住房城乡建设行业专业人员、兰州理工大学、广东远程职业培训平台、良师在线、全国文化和旅游市场在线培训系统、贵州省专业技术人员继续教育平台。 // @author // @match *://*/* // @grant GM_xmlhttpRequest // @grant GM_openInTab // @grant GM_setValue // @grant GM_getValue // @grant window.close // @noframes // @icon https://www.zhihuishu.com/favicon.ico // @connect www.gaozhiwang.top // @connect localhost // @license MIT // @downloadURL none // ==/UserScript== "use strict"; var __awaiter = this && this.__awaiter || function (e, t, n, l) { return new (n || (n = Promise))(function (i, o) { function r(e) { try { s(l.next(e)) } catch (e) { o(e) } } function a(e) { try { s(l.throw(e)) } catch (e) { o(e) } } function s(e) { var t; e.done ? i(e.value) : (t = e.value, t instanceof n ? t : new n(function (e) { e(t) })).then(r, a) } s((l = l.apply(e, t || [])).next()) }) }; !function () { let basehost = "http://www.gaozhiwang.top" let bserUrl = "http://www.gaozhiwang.top:7001" const panelcss = "\n .myTool{\n background: #fff;\n width: 234px;\n font-size: 14px;\n display: flex;\n flex-direction: column;\n align-items: center;\n position: fixed;\n z-index: 999;\n top: 70px;\n left: 44px;\n box-sizing: border-box;\n padding: 15px 9px;\n border-radius: 5px;\n box-shadow: 0 0 9px rgba(0,0,0,.5);\n }\n .controls{\n position: absolute;\n right: 12px;\n font-size: 27px;\n top: 9px;\n cursor: pointer;\n transition: all 0.4s;\n }\n .controls:hover{\n color: #1f74c;\n transform: rotate(360deg);\n }\n \n .myTool-content{\n transition: all 0.4s;\n overflow: hidden;\n }\n .mytoolkeyipt{\n width: 130px;\n height: 22px !important;\n outline: none;\n padding: 0px 3px;\n border: 1px solid #757575FF;\n border-radius: 3px;\n font-size: 13px;\n padding: 0px 3px;\n margin-right: 5px;\n margin-top: 2px;\n }\n .addkey-btn{\n color: #fff;\n background: #1f74ca;\n }\n .removkey-btn{\n color: #000;\n display: none;\n background: #eee;\n }\n .handleKeyBtn{\n width: 54px;\n height: 24px;\n margin-top: 2px;\n border: none;\n font-size: 12px;\n border-radius: 2px;\n cursor: pointer;\n }\n \n .handleSpeedUp{\n background: orange;\n font-size: 12px;\n color: #fff;\n padding: 4px 15px;\n border-radius: 5px;\n margin: 0 auto;\n max-width: 80px;\n margin-top: 10px;\n cursor: pointer;\n text-align: center;\n }\n .ctxTipWrap{\n min-width: 200px;\n min-height: 50px;\n text-align: center;\n line-height: 50px;\n background: #fff;\n position: fixed;\n z-index: 999;\n left: 50%;\n top: 50%;\n border-radius: 9px;\n box-shadow: 0 0 5px rgba(0,0,0,.6);\n display:none;\n }\n .cxtsection{\n width: 100%;\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 2px;\n }\n .cxtsection .ctx-title{\n text-align: left;\n margin-top: 12px;\n font-size: 12px;\n color: #4e5969;\n border-left: 2px solid #1f74ca;\n border-radius: 2px;\n padding-left: 3px;\n line-height: 16px;\n }\n .ctxsection2{\n display: flex;\n justify-content: space-between;\n }\n .ctxsection2 .speed-select{\n width: 50%;\n height: 22px !important;\n outline: none;\n position: relative;\n top: 10px;\n border: 1px solid #757575FF;\n border-radius: 3px;\n padding-left: 10px;\n }\n .ctxsection3{\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .feedbackBtn{\n font-size: 13px;\n position: relative;\n top: 5px;\n cursor: pointer;\n color: #000;\n }\n a{\n text-decoration: none;\n }\n ", panelhtml = `\n
\n
×
\n
📺高智Ai自动学习程序
\n \n
\n
\n
\n \n \n \n \n
\n
\n \n
\n
\n 输入Key:\n
\n
\n \n \n \n \n
\n
\n\n
\n
\n 设置倍速:\n
\n \n
\n \n
\n
\n 意见反馈:\n
\n \n
\n \n \n \n \n
点击加速
\n
\n \n
\n
\n `; let ElementObj = {}, Internetcourse = { zhihuishu: {id: 1, mainClass: "zhihuishu", name: "智慧树", host: ["zhihuishu.com"]}, uxueyuan: {id: 2, mainClass: "uxueyuan", name: "U学院", host: ["ua.ulearning.cn"]}, ningmengwencai: { id: 3, mainClass: "ningmengwencai", name: "柠檬文才", host: ["www.wencaischool.net", "study.wencaischool.net", "learning.wencaischool.net"] }, xuexitong: {id: 4, mainClass: "xuexitong", name: "学习通", host: []}, henanxinxueyuan: {id: 5, mainClass: "henanxinxueyuan", name: "河南新闻出版学校", host: ["218.29.91.122:81"]}, fujianshifan: {id: 6, mainClass: "fujianshifan", name: "福建师范继续教育", host: ["neo.fjnu.cn"]}, gxcic: { id: 7, mainClass: "gxcic", name: "广西住房城乡建设行业专业人员继续教育平台", host: ["jxjy.gxcic.net:9092"] }, luohexueyuan: {id: 8, mainClass: "luohexueyuan", name: "漯河学院", host: ["lhycjy.cloudwis.tech"]}, mengxiangzaixian: {id: 9, mainClass: "mengxiangzaixian", name: "梦想在线", host: ["www.mxdxedu.com"]}, fjsf2: {id: 6, mainClass: "fjsf2", name: "fjnu", host: ["nto.fjnu.cn"]}, liangyijiaoyu: {id: 11, mainClass: "liangyijiaoyu", name: "良医教育", host: ["www.sclyedu.com"]}, zjzx: {id: 12, mainClass: "zjzx", name: "安徽专业技术人员继续教育在线", host: ["www.zjzx.ah.cn"]}, zxpxmr: {id: 13, mainClass: "zxpxmr", name: "全国文化和旅游市场在线培训系统", host: ["zxpx.mr.mct.gov.cn"]}, ggfw: {id: 14, mainClass: "ggfw", name: "广东远程职业培训平台", host: ["ggfw.hrss.gd.gov.cn"]}, liangshizaixian: {id: 15, mainClass: "liangshizaixian", name: "良师在线", host: []}, gzjxjy: { id: 16, mainClass: "gzjxjy", name: "贵州省专业技术人员继续教育平台", host: ["gzjxjy.gzsrs.cn", "www.gzjxjy.gzsrs.cn"], runtype: -1 }, mingshiclass: {id: 17, mainClass: "mingshiclass", name: "名师课堂", host: ["saas.mingshiclass.com"]}, qiangshi: {id: 18, mainClass: "qiangshi", name: "强师", host: ["zjdx-kfkc.webtrn.cn/"]}, lanzhgoulgjs: { id: 19, mainClass: "lanzhgoulgjs", name: "兰州理工大学教师", host: ["gs.chinamde.cn", "gansu.chinamde.cn"] }, beijingjiaoshi: {id: 20, mainClass: "beijingjiaoshi", name: "北京教师学习网", host: []}, qingyangzgzjzj: { id: 21, mainClass: "qingyangzgzjzj", name: "甘肃庆阳继续教育", host: ["gsmtdzj.zgzjzj.com", "qingyang.zgzjzj.com/", "lzksj.zgzjzj.com", "pl.zgzjzj.com", "www.zgzjzj.com", "bys.zgzjzj.com", "www.zgzjzj.com"] }, lanzhouwenli: {id: 22, mainClass: "lanzhouwenli", name: "兰州文理学院继续教育", host: ["jxjypt.luas.edu.cn"]}, xuexituqiang: {id: 23, mainClass: "xuexituqiang", name: "学习图强", host: ["user.hzboolan.cn"]}, guojiazhihuijiaoyu: { id: 24, mainClass: "guojiazhihuijiaoyu", name: "国家智慧教育公共服务平台", host: ["teacher.vocational.smartedu.cn"] }, lanzhouchengren: { id: 25, mainClass: "lanzhouchengren", name: "兰州大学成人教育", host: ["courseresource.zhihuishu.com", "lzulms.chinaedu.net"] }, tsbtchinamde: { id: 26, mainClass: "tsbtchinamde", name: "天水博通职业技术培训学校", host: ["tsbt.chinamde.cn", "btzjc.tsbtgs.cn", "www.tsbtgs.cn"] }, henangongshe: { id: 27, mainClass: "henangongshe", name: "河南省专业技术人员学习公社", host: [], remark: "和北京教师一样的" }, zjzjsrc: { id: 28, mainClass: "zjzjsrc", name: "浙江省住房和城乡建设行业专业技术人员继续教育系统", host: ["zj.zjjsrc.cn"] }, lzrejxjy: { id: 29, mainClass: "lzrejxjy", name: "兰州资源环境职业技术大学", host: ["lzrejxjy.webtrn.cn", "zjyxldpx-kfkc.webtrn.cn"] }, xuzhouyikedaxue: { id: 30, mainClass: "xuzhouyikedaxue", name: "徐州医科大学", host: ["cjyxljy.xzhmu.edu.cn", "ycjy.lut.edu.cn", "cj1047-kfkc.webtrn.cn"] }, xibeisfzyjy: { id: 31, mainClass: "xibeisfzyjy", name: "西北师范大学专业技术人员继续教育基地", host: ["sdzj.nweduline.com", "xbsd.lt-edu.net", "preview.dccloud.com.cn"] }, zgrtvu: {id: 32, mainClass: "zgrtvu", name: "自贡开发大学", host: ["zgrtvu.peixunyun.cn", "ua.peixunyun.cn"]}, henandikuang: { id: 33, mainClass: "henandikuang", name: "河南省地矿系统专业技术人员继续教育网络学习平台", host: ["dkgc.zyk.ghlearning.com"] }, tazhuanjipx: { id: 34, mainClass: "tazhuanjipx", name: "泰安市专业技术人员续教育培训平台", host: ["ta.zhuanjipx.com"] }, henanzhuanjipeixun: { id: 35, mainClass: "henanzhuanjipeixun", name: "河南专技培训", host: ["www.jxjyedu.org.cn"] }, zhejiangtjj: { id: 32, mainClass: "zhejiangtjj", name: "浙江统计教育培训在线学习中心", host: ["edu.tjj.zj.gov.cn"] }, guizhouzxjxjy: {id: 37, mainClass: "guizhouzxjxjy", name: "贵州继续教育网", host: ["guizhou.zxjxjy.com"]}, jiangxizhipeizaixian: { id: 38, mainClass: "jiangxizhipeizaixian", name: " 江西职业培训", host: ["jiangxi.zhipeizaixian.com"] }, anhuijixujyzx: {id: 39, mainClass: "anhuijixujyzx", name: " 安徽继续教育在线", host: ["main.ahjxjy.cn"]}, lanzhoudxgs: {id: 40, mainClass: "lanzhoudxgs", name: " 兰州大学教育培训", host: ["gsjzlzu.sccchina.net"]}, jidianshejijiaoyu: { id: 41, mainClass: "jidianshejijiaoyu", name: "继续教育学习平台", host: ["scjylearning.o-learn.cn", "gzmtulearning.o-learn.cn"] }, henanzhujianjy: { id: 42, mainClass: "henanzhujianjy", name: "河南省住建专业技术人员继续教育", host: ["zjpx.icitpower.com:8080"] }, sipingnengcun: {id: 43, mainClass: "sipingnengcun", name: "四平农村成人高等专科学校", host: ["www.jxuxue.com"]}, ycjyluteducn: { id: 44, mainClass: "ycjyluteducn", name: "兰州理工大学现代远程教育学习平台", host: ["ycjy.lut.edu.cn"] }, gdrcjxjyw: {id: 45, mainClass: "gdrcjxjyw", name: "广东人才继续教育网", host: ["gdjyw.ahsjxjy.com"]}, shandongqlteacher: { id: 46, mainClass: "shandongqlteacher", name: "山东省教师教育网", host: ["player.qlteacher.com"] }, shixuetong: {id: 47, mainClass: "shixuetong", name: "师学通", host: ["tn202346009.stu.teacher.com.cn"]}, shandongenhualvyou: { id: 48, mainClass: "shandongenhualvyou", name: "山东省文化和旅游厅继续教育公共服务平台", host: ["123.232.43.194:8088"] }, gansugongwuyuan: { id: 49, mainClass: "gansugongwuyuan", name: "甘肃省公务员网络培训网", host: ["www.gsgwypx.com.cn:86"] }, wlmqcol: {id: 50, mainClass: "wlmqcol", name: "乌鲁木齐建设职业培训中心", host: ["www.wlmqcol.com"]}, shandongzhuanyejisu: { id: 51, mainClass: "lzrejxjy", name: "山东省省直专业技术人员继续教育公需课平台", host: ["zjshpx-kfkc.webtrn.cn"] }, chongqingzhuanye: { id: 52, mainClass: "chongqingzhuanye", name: "重庆专业技术人员继续教育", host: ["mooc1.cqrspx.cn"] }, jiaoyuganbuwang: { id: 53, mainClass: "jiaoyuganbuwang", name: "中国教育干部网络学院", host: ["study.enaea.edu.cn"] } }, speedArr = [1, 3, 5, 10, 16], toolOption = {accelerator: 1, CtxMain: null, SchoolType: -1}; class Main { constructor() { this.studentType = 1, this.speedStatus = 0, this.listenVidoeStatusTimer = null, this.init() } init() { setTimeout(() => { localStorage.getItem("schoolInfoColletion") || this.colletionSchoolData() }, 2500) } updateSpeedElement(e) { 0 != this.speedStatus && (ElementObj.$video.playbackRate = e) } handleClickSpeedUp(e) { return __awaiter(this, void 0, void 0, function* () { let e = localStorage.getItem("mytoolkey"); if (e) { this.speedStatus = 1; let t = yield fetchData({ method: "GET", url: bserUrl + `/speedup?toolkey=${e}&canuse=${toolOption.SchoolType}` }); if (200 != t.code) return void showTip(`🔉🔉🔉${t.message}`, 5e3, !0); this.speedStatus = 1, toolOption.CtxMain.play(), this.randomListen() } else e ? alert("程序错误,请联系客服") : (alert("请先购买key"), window.open(basehost)) }) } handleAddKey(e) { return __awaiter(this, void 0, void 0, function* () { if (!ElementObj.$ipt.value) return void window.open(basehost); (yield fetchData({ method: "GET", url: bserUrl + "/vertifykey?toolkey=" + ElementObj.$ipt.value })).data.count > 0 ? (localStorage.setItem("mytoolkey", ElementObj.$ipt.value), localStorage.setItem("_localSpeed", toolOption.accelerator.toString()), e(ElementObj.$ipt.value)) : alert("输入的key不存在") }) } handleRemoveKey() { 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 t = localStorage.getItem("mytoolkey"); if (t) { let t = speedArr, n = Number(e); e && t.includes(n) && (toolOption.accelerator = n, localStorage.setItem("_localSpeed", n.toString()), ElementObj.$video && (ElementObj.$video.playbackRate = n)) } else t ? alert("程序错误,请联系客服") : (alert("请先购买key"), window.open(basehost)) } colletionSchoolData() { return __awaiter(this, void 0, void 0, function* () { let e = `s${toolOption.SchoolType}`; 200 == (yield fetchData({ method: "GET", url: bserUrl + "/colletionschool?schoolType=" + e })).code && localStorage.setItem("schoolInfoColletion", `${new Date}`) }) } randomListen() { setTimeout(() => { let e = localStorage.getItem("mytoolkey"); ElementObj.$video && (ElementObj.$video.paused || e || ElementObj.$video.pause()) }, 5e3) } listenVidoeStatus(e, t) { if (!e) return; let n = 0; this.listenVidoeStatusTimer = setInterval(() => { e.readyState < 4 && (console.log(`检测到${n}次,视频正在加载`), (n += 1) >= 20 && location.reload()), e.paused && (n += 1, console.log(`检测到视频暂停了${n}次`), "function" == typeof t ? n >= 20 ? location.reload() : t() : console.log("callback不是一个函数")) }, 3e3) } changeHtml(e) { return __awaiter(this, void 0, void 0, function* () { let t = document.createElement("div"); t.setAttribute("class", "ctxstatsbox"), t.setAttribute("style", "\n width: 100%;\n height: 100%;\n background: #eae9e9;\n position: absolute;\n z-index: 999;\n overflow: scroll;\n top: 0;\n padding-left: 10px;\n "), e.appendChild(t), yield sleep(300), ElementObj.$ctxstatsbox = document.querySelector(".ctxstatsbox"), this.addInfo("🔉初始化已完成,正在播放") }) } addInfo(e, t) { document.querySelectorAll(".ctxstatsbox_li").length >= 15 && (ElementObj.$ctxstatsbox.innerHTML = ""); let n = `
  • ${e}
  • `; ElementObj.$ctxstatsbox.innerHTML += n } listenPageHide() { let e; document.addEventListener("visibilitychange", () => { if (document.hidden) { console.log("页面被隐藏"); let t = 0; e = setInterval(() => { (t += 1) >= 5 && this.addInfo("⚠️⚠️⚠️请勿长时间隐藏该学习页面", 0) }, 5e3) } else clearInterval(e), console.log("页面被显示") }) } } class zhihuishu extends Main { constructor() { super(), this.AllVideo = [], this.currentIndex = 0, this.taskLength = 0, this.studyVideoType = 2, this._init() } _init() { this.AllVideo = document.querySelectorAll(".video, .lessonItem, .file-item"), this.taskLength = this.AllVideo.length, this.getCurrentIndex() } getStudyVideoType() { let e = document.querySelector(".newListTest"), t = document.querySelector("#demandBox"); e ? this.studyVideoType = 1 : t ? this.studyVideoType = 3 : (this.studyVideoType = 2, toolOption.accelerator = 1.5) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { this.getStudyVideoType(); let e = "current_play"; 1 == this.studyVideoType ? e = "current_play" : 2 == this.studyVideoType ? e = "lessonItemActive" : 3 == this.studyVideoType && (e = "active"); for (let t = 0; t < this.AllVideo.length; t++) { 1 == this.AllVideo[t].classList.contains(e) && (this.currentIndex = t) } 3 == this.studyVideoType && this.handleClickSpeedUp() }) } play() { return __awaiter(this, void 0, void 0, function* () { yield sleep(1e3), ElementObj.$video = $el("video"), ElementObj.$video.play(), this.updateSpeedElement(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { if (ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "点击加速", yield sleep(200), this.currentIndex += 1, 2 == this.studyVideoType) setTimeout(() => { this.handleClickSpeedUp() }, 5e3); else { let e = this.AllVideo[this.currentIndex]; yield sleep(500), e.click(), yield sleep(3500), this.handleClickSpeedUp() } }), !1), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { new Answer }, 1500) }) }) } updateSpeedElement() { var e, t; if (3 == this.studyVideoType) { e = document.querySelector('div.speedTab15[rate="1.5"]'); var n = $el(".speedBox"); n.style.backgroundImage = "url(https://mytools-1316767856.cos.ap-shanghai.myqcloud.com/speed1.5.png)", n.style.backgroundSize = "100% 100%" } else e = document.querySelector('div.speedTab.speedTab15[rate="1.5"]'); e && (e.setAttribute("rate", toolOption.accelerator.toString()), e.textContent = `X ${toolOption.accelerator}`, null == (t = $el(`.speedList [rate="${1 === toolOption.accelerator ? "1.0" : toolOption.accelerator}"]`)) || t.click()); ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功" } } zhihuishu.ctxid = 1; class Answer { constructor() { this.EleObj = {}, this.init() } init() { this.EleObj.$numbers = document.querySelectorAll(".number"), this.EleObj.$close = document.querySelectorAll(".el-dialog__header>button")[4], this.EleObj.$numbers.length && this.eachTopic() } eachTopic() { return __awaiter(this, void 0, void 0, function* () { document.querySelectorAll(".topic-item")[1].click(), sleep(1100), this.EleObj.$numbers.length > 1 ? (this.EleObj.$numbers[1].click(), setTimeout(() => { document.querySelectorAll(".topic-item")[1].click(), this.EleObj.$close.click(), ElementObj.$video.play() }, 1e3)) : (this.EleObj.$close.click(), ElementObj.$video.play()) }) } } class uxueyuan extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this._init() } _init() { this.getCurrentIndex() } getCurrentIndex() { ElementObj.$allTask = document.querySelectorAll(".page-name"); ElementObj.$allTask.forEach((e, t) => { e.classList.contains("active") && (this.currentIndex = t) }) } getVideoDom() { return new Promise(e => { let t = 0, n = setInterval(() => { ElementObj.$video = document.querySelector("video"), t += 1, ElementObj.$video && (clearInterval(n), e(1)), t > 5 && (clearInterval(n), e(2)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { let e = yield this.getVideoDom(); 1 == e && (ElementObj.$video.play(), ElementObj.$video.volume = 0, setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3500), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { this.currentIndex >= ElementObj.$allTask.length && alert("课程全部播放完成"), yield sleep(500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), yield sleep(2500), this.handleClickSpeedUp() }), !1)), 2 == e && (showTip("⚠️⚠️⚠️未检测到视频,3秒后切换下一节", 3e3), yield sleep(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), yield sleep(2500), this.play()) }) } updateSpeedElement() { let e = document.querySelector(".mejs__button.mejs__speed-button>button"); e && (e.innerHTML = `${toolOption.accelerator}.00x`), ElementObj.$video.playbackRate = toolOption.accelerator } } class fujianshifan extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init() } _init() { let e = document.querySelectorAll(".section"); new Promise(t => { e.forEach((n, l) => { n.childNodes[0].click(), sleep(20), l == e.length - 1 && t(!0) }) }).then(e => { setTimeout(() => { ElementObj.$allStudyTask = document.querySelectorAll(".section li"), this.getCurrentIndex() }, 2e3) }) } getCurrentIndex() { let e = document.querySelector(".active").id; ElementObj.$allStudyTask.forEach((t, n) => { t.id == e && (this.currentIndex = n) }) } play() { ElementObj.$allStudyTask[this.currentIndex].click(), setTimeout(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (this.currentMidiaType = "video", this.handlePlayVideo()) : (this.currentMidiaType = "doc", this.handlePlayDoc()) }, 2e3) } nextPlay() { sleep(1e3), this.currentIndex += 1, this.handleClickSpeedUp() } handlePlayVideo() { this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => { this.nextPlay() }, !1) } handlePlayDoc() { var e; ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功"; let t = null === (e = document.querySelector("#lg-counter-all")) || void 0 === e ? void 0 : e.innerHTML, n = document.querySelector(".lg-actions>.lg-next"), l = Number(t), i = setInterval(() => { if (l <= 0 || !n) return clearInterval(i), void this.nextPlay(); n.click(), l -= 1 }, 1e3) } } class henanxinxueyuan extends Main { constructor() { super(), this.currentIndex = 0, this.taskLength = 0, this._init() } _init() { ElementObj.$allTask = document.querySelectorAll(".collapseCont"), this.taskLength = ElementObj.$allTask.length, this.getCurrentIndex() } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { }) } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), 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.currentIndex += 1, setTimeout(() => { this.handleClickSpeedUp() }, 1500) }, !1) }) } } henanxinxueyuan.ctxname = "河南新闻学院"; class ningmengwencai extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this._init() } _init() { ElementObj.$allTask = document.querySelectorAll(".childSection"), this.taskLength = ElementObj.$allTask.length, this.getCurrentIndex() } getCurrentIndex() { ElementObj.$allTask.forEach((e, t) => { e.className.includes("active") && (this.currentIndex = t) }) } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator); let e = document.querySelector(".layui-layer-btn0"); e && e.click(), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => { if (this.currentIndex += 1, this.currentIndex > ElementObj.$allTask.length) return; document.querySelector("#saveBtn").click(), setTimeout(() => { this.handleClickSpeedUp() }, 2500) }, !1) }) } } class luohexueyuan extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this.loaded = !1, this._init() } _init() { ElementObj.$allTask = document.querySelectorAll("li.catalog-box"); let e = setInterval(() => { ElementObj.$allTask = document.querySelectorAll("li.catalog-box"), ElementObj.$allTask.length && (clearInterval(e), showTip("🔉🔉🔉初始化完成")) }, 1e3) } getCurrentIndex() { ElementObj.$allTask.forEach((e, t) => { e.lastElementChild.firstElementChild.className.includes("activeCss") && (this.currentIndex = t) }), this.loaded = !0 } play() { return __awaiter(this, void 0, void 0, function* () { this.loaded || this.getCurrentIndex(), ElementObj.$allTask[this.currentIndex].lastElementChild.click(), yield sleep(2e3), ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => { ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "点击加速", this.currentIndex += 1, setTimeout(() => { this.handleClickSpeedUp() }, 1500) }, !1) }) } } class gxcic extends Main { constructor() { super(), this.parentIndex = 0, this.currentIndex = 0, this.currentTaskEle = null, this.taskLength = 0, this._init() } _init() { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$allTaskParentNodes = null === document || void 0 === document ? void 0 : document.querySelectorAll(".ant-collapse-item"), ElementObj.$allTask = null === document || void 0 === document ? void 0 : document.querySelectorAll(".course-detail-content-section-info-text"), ElementObj.$allTask.length && ElementObj.$allTaskParentNodes.length && (clearInterval(e), this.getCurrentIndex()) }), 1e3) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTaskParentNodes.forEach((e, t) => { e.className.includes("ant-collapse-item-active") && (this.parentIndex = t) }), ElementObj.$allTask.forEach((e, t) => { e.className.includes("course-detail-current") && (this.currentIndex = t, this.currentTaskEle = e) }), this.currentTaskEle && showTip("初始化完成,可点击加速") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { yield this.getVideoDom(), ElementObj.$video.play(), this.updateSpeedElement(toolOption.accelerator), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { let e = this.currentTaskEle.parentElement.parentElement.nextSibling; e ? (this.currentIndex += 1, this.currentTaskEle = e, this.currentTaskEle.click()) : (this.parentIndex += 1, this.currentIndex += 1, ElementObj.$allTaskParentNodes[this.parentIndex].lastChild.firstChild.firstChild.click(), yield sleep(1500), ElementObj.$allTask = null === document || void 0 === document ? void 0 : document.querySelectorAll(".course-detail-content-section-info-text"), this.currentTaskEle = ElementObj.$allTask[this.currentIndex], this.currentTaskEle.click()); yield sleep(5e3), this.handleClickSpeedUp() }), !1), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.play() }, 1500) }) }) } } class liangyijiaoyu extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this._init() } _init() { } getCurrentIndex() { } play() { return __awaiter(this, void 0, void 0, function* () { }) } } class mengxiangzaixian extends Main { constructor() { super(), this.currentIndex = 0, this.taskLength = 0, this._init() } _init() { this.getCurrentIndex() } getCurrentIndex() { ElementObj.$allTask = document.querySelectorAll(".el-card__body button i"); ElementObj.$allTask.forEach((e, t) => { e.parentElement.className.includes("el-button--primary") && (this.currentIndex = t) }) } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.length || (ElementObj.$allTask = document.querySelectorAll(".el-card__body button i")), ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), 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.currentIndex += 1, setTimeout(() => { this.handleClickSpeedUp() }, 1500) }, !1) }) } } class fjsf2 extends Main { constructor() { super(), this.taskLength = 0, this.parentIndex = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init() } _init() { ElementObj.$allTaskParentNodes = null === document || void 0 === document ? void 0 : document.querySelectorAll(".section"); document.querySelectorAll(".section"); this.getCurrentIndex() } getCurrentIndex() { ElementObj.$allTaskParentNodes.forEach((e, t) => { let n = e.querySelectorAll("li"); null == n || n.forEach((e, l) => { e.className.includes("active") && (this.parentIndex = t, this.currentIndex = l, ElementObj.$allTask = n) }) }) } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask[this.currentIndex].click(), yield sleep(2e3), document.querySelector(".lg-close") ? (this.currentMidiaType = "doc", this.handlePlayDoc()) : (this.currentMidiaType = "video", this.handlePlayVideo()) }) } nextPlay() { return __awaiter(this, void 0, void 0, function* () { if (yield sleep(1e3), this.currentIndex >= ElementObj.$allTask.length - 1) { if (this.parentIndex += 1, this.currentIndex = 0, this.parentIndex >= ElementObj.$allTaskParentNodes.length) return void alert("已全部播放完"); let e = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll("li"); e.length ? ElementObj.$allTask = e : (ElementObj.$allTaskParentNodes[this.parentIndex].childNodes[0].click(), yield sleep(300), ElementObj.$allTask = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll("li")) } else this.currentIndex += 1; this.handleClickSpeedUp() }) } 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() }, !1) } handlePlayDoc() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", yield sleep(1500); let e = document.querySelector(".lg-toggle-thumb"), t = 1; if (e) { e.click(), t = document.querySelectorAll(".lg-thumb-item").length } yield sleep(2e3), document.querySelector(".lg-close").click(), this.nextPlay() }) } } class xuexitong extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init() } _init() { ElementObj.$allTaskParentNodes = null === document || void 0 === document ? void 0 : document.querySelectorAll(".section"); document.querySelectorAll(".section"); this.getCurrentIndex() } getCurrentIndex() { ElementObj.$allTaskParentNodes.forEach((e, t) => { let n = e.querySelectorAll("li"); null == n || n.forEach((e, t) => { e.className.includes("active") }) }) } play() { return __awaiter(this, void 0, void 0, function* () { }) } } 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((e, t) => { e.querySelector("li").classList.contains("active") && (this.currentIndex = t) }) } 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.handleClickSpeedUp() }, 5e3) }) }) } } class zxpxmr extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this._init() } _init() { window.alert = function () { return !1 }; let e = setInterval(() => { ElementObj.$allTask = document.querySelectorAll(".kecheng_play_mian_list_item"), ElementObj.$allTask.length && (showTip("🔉初始化完成,可点击加速", 3e3), clearInterval(e), this.getCurrentIndex()) }, 1e3) } getCurrentIndex() { ElementObj.$allTask.forEach((e, t) => { e.classList.contains("kecheng_play_mian_list_item_progress_playing") && (this.currentIndex = t) }) } 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* () { if (clearInterval(this.timer), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("课程已全部部分完"); this.currentIndex += 1; let e = document.querySelector("#btn-sure"); yield sleep(2e3), null == e || e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 5e3) })), ElementObj.$video.addEventListener("pause", () => { console.log("播放暂停了"), setTimeout(() => { ElementObj.$video.play() }, 1e3) }) }) } simulationClick() { var e = new KeyboardEvent("keydown", {keyCode: 8, which: 8}); this.timer = setInterval(() => { try { document.dispatchEvent(e) } catch (e) { } }, 3e3) } } class ggfw extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this._init() } _init() { ElementObj.$parentNodes = document.querySelectorAll(".learnList"), ElementObj.$parentNodes.length && this.selectOneClass(), new Promise(e => { let t = setInterval(() => { ElementObj.$allTask = document.querySelectorAll(".courseItem"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex(), e(!0)) }, 1e3) }).then(e => { ElementObj.$handleSpeedUp.style.display = "none"; let t = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$video = document.querySelector("video"), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.setAttribute("autoplay", "autoplay"); let e = document.querySelector(".volume-icon"); if (e.click(), yield sleep(500), e.click(), ElementObj.$video) { clearInterval(t), showTip("🔉初始化完成,即将自动播放", 3e3), yield sleep(300); let e = document.querySelector(".prism-big-play-btn"); console.log("$playBtn===>>>", e), e.click(), yield this.handleClickSpeedUp() } }), 1e3) }) } getCurrentIndex() { ElementObj.$allTask.forEach((e, t) => { e.classList.contains("active") && (this.currentIndex = t) }) } play() { return __awaiter(this, void 0, void 0, function* () { yield sleep(3e3), 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* () { if (clearInterval(this.timer), ElementObj.$allTask = document.querySelectorAll(".courseItem"), yield sleep(300), this.currentIndex >= ElementObj.$allTask.length - 1) { return localStorage.setItem("ctx-status", "done"), document.querySelector(".sc-box").click(), yield sleep(1500), document.querySelectorAll(".menu-box ul li")[3].click(), yield sleep(2e3), void window.location.reload() } this.currentIndex += 1, this.handleClickSpeedUp(), yield sleep(2500), ElementObj.$allTask[this.currentIndex].click() })), ElementObj.$video.addEventListener("pause", () => { console.log("播放暂停了"), setTimeout(() => { ElementObj.$video.play() }, 1e3) }) }) } selectOneClass() { let e = setTimeout(() => __awaiter(this, void 0, void 0, function* () { clearInterval(e), document.querySelector("#tab-second").click(), yield sleep(2500), ElementObj.$parentNodes = document.querySelectorAll(".course_item"), yield sleep(200), ElementObj.$parentNodes[0].click() }), 3e3) } } class mingshiclass extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = 0, this.parentIndex = -1, this._init() } _init() { document.querySelector(".title-box .setMealName") ? this.selectOneClass() : this.initPlayPage() } initPlayPage() { new Promise(e => { let t = setInterval(() => { ElementObj.$allTask = document.querySelectorAll(".course-list .course-item"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex(), e(!0)) }, 1e3) }).then(e => new Promise(e => __awaiter(this, void 0, void 0, function* () { ElementObj.$video = document.querySelector("video"), yield sleep(3e3), ElementObj.$video && (showTip("🔉初始化完成,播放开始", 3e3), e(!0)) }))).then(e => { this.handleClickSpeedUp() }) } getCurrentIndex() { ElementObj.$allTask.forEach((e, t) => { e.querySelector(".course-name").classList.contains("play-status") && (this.currentIndex = t) }), console.log("this.currentIndex ===>>", this.currentIndex) } 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.volume = 0, yield sleep(3500), document.querySelector(".play_btn").click(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { if (console.log("播放结束了"), this.currentIndex >= ElementObj.$allTask.length - 1) { let e = document.querySelector(".back-img"); return sleep(200), e.click(), void setTimeout(() => { location.reload() }, 3e3) } this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(5e3), null == e || e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 2e3) })), ElementObj.$video.addEventListener("pause", () => { console.log("播放暂停了"), setTimeout(() => { ElementObj.$video.play() }, 3e3) }) }) } selectOneClass() { let e = setTimeout(() => __awaiter(this, void 0, void 0, function* () { clearInterval(e), ElementObj.$parentNodes = document.querySelectorAll(".content-box>.course-list>div"), yield sleep(200), ElementObj.$parentNodes.forEach((e, t) => { if ("未完成" == e.querySelector(".course_item_brief").lastChild.innerText && -1 == this.parentIndex) return this.parentIndex = t, !0 }), yield sleep(200), console.log("this.parentIndex===>>", this.parentIndex), ElementObj.$parentNodes[this.parentIndex].click(), setTimeout(() => { this.initPlayPage() }, 2500) }), 1e3) } } mingshiclass.ctxid = 17; class qiangshi extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { try { let e = document.querySelectorAll("iframe")[2].contentWindow.document.querySelectorAll("iframe")[0].contentWindow; this._document = e.document } catch (e) { } let e = setInterval(() => { try { let t = document.querySelector(".contentIframe").contentWindow; ElementObj.$allTask = t.document.querySelectorAll(".s_point"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()) } catch (e) { } }, 1e3) } getCurrentIndex() { ElementObj.$allTask.forEach((e, t) => { e.querySelector(".item_done_icon").classList.contains("done_icon_show") || -1 != this.currentIndex || (this.currentIndex = t) }), console.log("this.currentIndex==>>>", this.currentIndex), -1 != this.currentIndex ? (showTip("⚠️⚠️⚠️初始化完成,即将开始播放", 3e3), setTimeout(() => { this.handleClickSpeedUp() }, 4500), ElementObj.$handleSpeedUp.style.display = "none") : alert("当前章节课程已全部学完") } getVideoDom() { return new Promise(e => { let t = setInterval(() => { try { let n = document.querySelectorAll("iframe")[2].contentDocument.querySelectorAll("iframe")[0].contentDocument; ElementObj.$video = null == n ? void 0 : n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) } catch (e) { } }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask[this.currentIndex].click(), yield sleep(3500), yield this.getVideoDom(), console.log("ElementObj.$video===>>", ElementObj.$video), ElementObj.$video.volume = 0, this._document.querySelector("#player_pause").click(), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = localStorage.getItem("_localSpeed") || toolOption.accelerator }, 3e3), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("课程已全部部分完") : (this.currentIndex += 1, showTip("⚠️⚠️⚠️正在切换课程", 3500), setTimeout(() => { this.handleClickSpeedUp() }, 4e3)) })), ElementObj.$video.addEventListener("pause", () => { console.log("播放暂停了"), setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = localStorage.getItem("_localSpeed") || toolOption.accelerator }, 1500) }) }) } } qiangshi.ctxid = 18; class lanzhgoulgjs extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { let t = document.querySelectorAll(".chapterlist .drop p"), n = document.querySelectorAll(".chapterlist .videoList p"); (t.length || n.length) && (clearInterval(e), ElementObj.$allTask = t.length ? t : n, this.getCurrentIndex()) }), 1e3) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let e = []; ElementObj.$allTask.forEach((t, n) => { let l = t.querySelector(".class_percent"); if (l) { let t = l.innerText; e.push(parseInt(t)) } else e.push(0) }), e.reverse(); for (var t = 0; t <= e.length - 1; t++) if (e[t] < 98) { console.log(t, "===>>>", e[t]), this.currentIndex = e.length - t - 1; break } if (console.log("111111111this.currentIndex==>>>", this.currentIndex), 0 == this.currentIndex) { ElementObj.$allTask[1].querySelector("a").click(), yield sleep(4e3), ElementObj.$allTask = document.querySelectorAll(".chapterlist .drop p"), yield sleep(200); let e = ElementObj.$allTask[0].querySelector(".class_percent").innerText; if (!(parseInt(e) < 98)) return void alert("当前科目课程已全部播放完"); this.currentIndex = 0 } -1 != this.currentIndex ? (ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉🔉🔉初始化完成,5s后开始播放", 3e3), console.log("this.currentIndex==>>>", this.currentIndex), this.handleClickSpeedUp()) : alert("当前科目课程已全部播放完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"); let n = ElementObj.$video.src, l = document.querySelector("iframe"); console.log("ElementObj.$video==>>>", ElementObj.$video), console.log("$iframe==>>>", l), n && (clearInterval(t), e(1)), l && (clearInterval(t), e(2)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { let e = ElementObj.$allTask[this.currentIndex].querySelector("a"); yield sleep(300), e.click(), yield sleep(3e3); let t = yield this.getVideoDom(); if (1 == t) { 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 e = document.querySelector(".ckplayer-ckplayer"); this.changeHtml(e), this.reloadPage(), this.listenPageHide(), this.listenAbnormal(1), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { location.reload() })) } if (2 == t) { let e = document.querySelector("#thirdplayer"); this.changeHtml(e), this.reloadPage(), this.listenPageHide(), this.listenAbnormal(0) } }) } reloadPage() { return __awaiter(this, void 0, void 0, function* () { }) } listenAbnormal(e) { showTip("🔉课件正在学习,请务点击或长时间隐藏"); let t = 0; setInterval(() => { if (t += 1, 0 == e) this.addInfo(`已监测${t}次,当前状态正在学习`); else { let e = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`已监测${t}次,当前状态正在学习,已播放${e}分钟`) } document.querySelector(".layui-layer-btn0") && location.reload() }, 5e3) } changeHtml(e) { return __awaiter(this, void 0, void 0, function* () { let t = document.createElement("div"); t.setAttribute("class", "ctxstatsbox"), t.setAttribute("style", "\n width: 796px;\n height: 545px;\n background: #eae9e9;\n position: absolute;\n z-index: 10;\n overflow: scroll;\n top: 0;\n padding-left: 10px;\n "), e.appendChild(t), yield sleep(300), ElementObj.$ctxstatsbox = document.querySelector(".ctxstatsbox"), this.addInfo("🔉初始化已完成,正在播放"), this.addInfo("⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程", 0) }) } addInfo(e, t) { document.querySelectorAll(".ctxstatsbox_li").length >= 15 && (ElementObj.$ctxstatsbox.innerHTML = ""); let n = `
  • ${e}
  • `; ElementObj.$ctxstatsbox.innerHTML += n } listenPageHide() { let e; document.addEventListener("visibilitychange", () => { if (document.hidden) { console.log("页面被隐藏"); let t = 0; e = setInterval(() => { (t += 1) >= 5 && this.addInfo("⚠️⚠️⚠️请勿长时间隐藏该学习页面", 0) }, 5e3) } else clearInterval(e), console.log("页面被显示") }) } } 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 e = document.querySelector(".item_btn"); if (ElementObj.$topNode = document.querySelectorAll(".el-collapse-item"), e) yield sleep(2e3), e.click(), setTimeout(() => { window.close() }, 1500); else if (ElementObj.$topNode.length) { let e = yield this.getDoing(); console.log("index========>>>", e), ElementObj.statusEles[e].click(), yield sleep(3e3), this.getParentIndex() } else { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll(".course-info .video-title"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()) }), 1e3) } }) } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { console.log("getParentIndex==>>"), ElementObj.$topNode = document.querySelectorAll(".el-collapse-item"), yield sleep(200); let e = ElementObj.$topNode.length, t = setInterval(() => __awaiter(this, void 0, void 0, function* () { this.topIndex >= e - 1 && clearInterval(t), yield sleep(2e3); let n = ElementObj.$topNode[this.topIndex]; 0 != this.topIndex && n.querySelector(".item-title-col").click(), yield sleep(300), ElementObj.$parentNodes = n.querySelectorAll(".el-table__row"), yield sleep(300), ElementObj.$parentNodes.forEach((e, n) => __awaiter(this, void 0, void 0, function* () { if ("课程:100%" != e.querySelector(".course_num").innerText && -1 == this.parentIndex) { clearInterval(t), this.parentIndex = n; let l = e.querySelector(".to-study"); yield sleep(200), l.click(), setTimeout(() => { window.close() }, 1500) } })), this.topIndex += 1 }), 3e3) }) } getDoing() { return new Promise(e => { let t = !1; ElementObj.statusEles = document.querySelectorAll(".li-item .el-progress-bar__inner"), ElementObj.statusEles.forEach((n, l) => { let i = n.style.width; console.log("status===>>>", i), parseInt(i) <= 98 && 0 == t && (t = !0, e(l)) }), t || e(0) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((e, t) => { "100%" != e.querySelector(".four").innerText && -1 == this.currentIndex && (this.currentIndex = t) }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3); let e = ElementObj.$allTask[this.currentIndex]; yield sleep(200), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500), console.log("this.currentIndex==>>>", this.currentIndex) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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 e = document.querySelector(".xgplayer-start"); yield sleep(200), e.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) return setTimeout(() => { window.close() }, 1500), void location.replace("https://www.ttcdw.cn/p/uc/project"); this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })), ElementObj.$video.addEventListener("pause", () => { console.log("视频暂停了") }), ElementObj.$video.addEventListener("playing", () => { console.log("视频正在播放中") }), ElementObj.$video.addEventListener("waiting", () => { console.log("waiting,视频正在加载中") }) }) } listenVidoeStatus() { this.timer = setInterval(() => { if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) { let e = ElementObj.$video.paused; console.log("视频当前是否暂停==>>>>", e), console.log("readyState==>>>", ElementObj.$video.readyState), e && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play()) } }, 3e3) } punchCard() { setInterval(() => { let e = document.querySelector("#comfirmClock"); e && e.click() }, 5e3) } } class qingyangzgzjzj extends Main { constructor() { super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init() } _init() { let e = setInterval(() => { ElementObj.$parentNodes = document.querySelectorAll(".swiper-slide"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex()) }, 1e3) } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("正在初始化", 1500), ElementObj.$parentNodes.forEach((e, t) => { let n = e.querySelector(".progresstext").innerText; parseInt(n) < 97 && -1 == this.parentIndex && (this.parentIndex = t, console.log(parseInt(n)), console.log("parentIndex==>>>", this.parentIndex), ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click()) }), -1 != this.parentIndex ? this.getCurrentIndex() : alert("课程已全部播放完") }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"), yield sleep(2e3), console.log("this.currentIndex==>>", this.currentIndex), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后自动开始播放", 3e3), this.handleClickSpeedUp() }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video = document.querySelector("video"), ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenVidoeStatus(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { if (ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"), yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1) return this.parentIndex >= ElementObj.$parentNodes.length - 1 ? void alert("课程已全部播放完了") : (this.parentIndex += 1, yield sleep(200), ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click(), this.currentIndex = 0, showTip("🔉正在切换视频,5秒后开始播放"), void setTimeout(() => { this.handleClickSpeedUp() }, 5e3)); this.currentIndex += 1; let e = document.querySelector(".nextdontcheatorshit"); yield sleep(200), null == e || e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 5e3) })), ElementObj.$video.addEventListener("pause", () => { console.log("视频暂停了") }), ElementObj.$video.addEventListener("playing", () => { console.log("视频正在播放中") }), ElementObj.$video.addEventListener("waiting", () => { console.log("waiting,视频正在加载中") }) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } listenVidoeStatus() { this.timer = setInterval(() => { if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) { let e = ElementObj.$video.paused; console.log("视频当前是否暂停==>>>>", e), e && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play()) } }, 3e3) } } class lanzhouwenli extends Main { constructor() { super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init() } _init() { let e = setInterval(() => { ElementObj.$allTask = document.querySelectorAll(".video"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()) }, 1e3) } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((e, t) => { let n = e.querySelector(".el-progress__text").innerText; parseInt(n) < 96 && -1 == this.currentIndex && (this.currentIndex = t) }), -1 != this.currentIndex ? (showTip("🔉🔉🔉初始化完成,即将开始播放", 3e3), yield sleep(2e3), ElementObj.$allTask[this.currentIndex].click(), yield sleep(2500), this.handleClickSpeedUp()) : alert("当前章节课程已全部播放完") }) } play() { return __awaiter(this, void 0, void 0, function* () { yield this.getVideoDom(), document.querySelector(".volume-icon").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* () { if (yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1 && (this.parentIndex += 1, yield sleep(200), ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click(), this.parentIndex >= ElementObj.$parentNodes.length - 1)) return void alert("课程已全部播放完了"); let e = document.querySelector(".videoleft img"); yield sleep(200), e.click(), showTip("正在切换课程", 3e3), setTimeout(() => __awaiter(this, void 0, void 0, function* () { this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(2e3), null == e || e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 5e3) }), 5500) })), ElementObj.$video.addEventListener("pause", () => { console.log("播放暂停了"), setTimeout(() => { ElementObj.$video.play() }, 4e3) }) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } } class xuexituqiang extends Main { constructor() { super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init() } _init() { let e = setInterval(() => { ElementObj.$allTask = document.querySelectorAll(".lesson"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()) }, 1e3) } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((e, t) => { e.classList.contains("lesson-in") && (this.currentIndex = t) }), showTip("🔉🔉🔉初始化完成,可点击播放", 3e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { yield this.getVideoDom(), 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* () { if (yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已全部播放完了"); this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(2e3), null == e || e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 5e3) })), ElementObj.$video.addEventListener("pause", () => { console.log("播放暂停了"), setTimeout(() => { ElementObj.$video.play() }, 1e3) }) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } } class guojiazhihuijiaoyu extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { let t = document.querySelectorAll(".video-title .four"); t.length && (clearInterval(e), ElementObj.$allTask = t, this.getCurrentIndex()) }), 1e3) } getCurrentIndex() { ElementObj.$allTask.forEach((e, t) => { "100%" != e.innerText && -1 == this.currentIndex && (this.currentIndex = t) }), -1 == this.currentIndex && (this.currentIndex = 0), showTip("🔉🔉🔉初始化完成,可点击加速", 3e3), console.log("this.currentIndex==>>>", this.currentIndex) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), yield sleep(3e3), document.querySelector(".xgplayer-icon-play").click(), yield this.getVideoDom(), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, this.listenVidoeStatus(); let t = document.querySelector(".layui-layer-btn0"); t && t.click(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.listenTopic(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { let e = document.querySelector(".layui-layer-btn0"); yield sleep(3e3), e && e.click(), this.currentIndex += 1, setTimeout(() => { this.handleClickSpeedUp() }, 5e3) })) }) } listenTopic() { setInterval(() => { try { document.querySelector("#submit") && this.answerTopic() } catch (e) { } }, 5e3) } answerTopic() { return __awaiter(this, void 0, void 0, function* () { let e = document.querySelectorAll(".choice li")[0]; yield sleep(200), e.click(); let t = document.querySelector("#submit"); yield sleep(1e3), t.click(), yield sleep(2e3), t = document.querySelector("#submit"), yield sleep(200), t.click(), yield sleep(4500); let n = document.querySelector(".layui-layer-btn0"); yield sleep(200), n.click() }) } listenVidoeStatus() { this.timer = setInterval(() => { if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) { let e = ElementObj.$video.paused; console.log("视频当前是否暂停==>>>>", e), e && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play()) } }, 1e4) } } 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 e = setInterval(() => { ElementObj.$allTask = document.querySelectorAll(".activity li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()) }, 1e3) } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((e, t) => { e.classList.contains("cur") && (this.currentIndex = t) }), -1 == this.currentIndex && (this.currentIndex = 0), console.log("currentIndex==>>", this.currentIndex), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3), this.handleClickSpeedUp() }) } play() { return __awaiter(this, void 0, void 0, function* () { yield this.getVideoDom(), yield sleep(200), 1 == this.type && setTimeout(() => __awaiter(this, void 0, void 0, function* () { this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex], t = null == e ? void 0 : e.querySelector("h3"); yield sleep(2e3), null == t || t.click() }), 3e3), 2 == this.type && (ElementObj.$video.volume = 0, ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功", this.reloadPage(), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { if (this.videoplaying = 3, yield sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已全部播放完了"); this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex], t = null == e ? void 0 : e.querySelector("h3"); yield sleep(2e3), null == t || t.click() })), ElementObj.$video.addEventListener("pause", () => { console.log("播放暂停了"), this.videoplaying = 1, setTimeout(() => { ElementObj.$video.play() }, 1e3) }), ElementObj.$video.addEventListener("playing", () => { this.videoplaying = 2, console.log("视频正在播放中") })) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$myFrame = document.querySelector("#myFrame"), ElementObj.$video && (clearInterval(t), this.type = 2, e(!0)), ElementObj.$myFrame && (clearInterval(t), this.type = 1, e(!0)) }, 1e3) }) } reloadPage() { return __awaiter(this, void 0, void 0, function* () { let e = 600, t = 0, n = setInterval(() => { (t += 1) % 15 == 0 && (console.log(`程序正在检测中,已成功检测${t}次`), console.clear()), t % 5 == 0 && console.log(`程序正在检测中,已成功检测${t}次`), e <= 0 && (clearInterval(n), location.reload()), e -= 1 }, 1e3) }) } } class tsbtchinamde extends Main { constructor() { super(), this.taskLength = 0, this.studyType = 1, this.currentIndex = -1, this._init() } _init() { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { let t = document.querySelectorAll(".chapterlist .item p"), n = document.querySelectorAll(".chapterlist .chapter-li .drop p"); console.log(t), (t.length || n.length) && (clearInterval(e), ElementObj.$allTask = n.length ? n : t, this.getCurrentIndex(), ElementObj.$handleSpeedUp.style.display = "none") }), 1e3) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let e = []; ElementObj.$allTask.forEach((t, n) => { let l = t.querySelector(".class_percent"); if (l) { let t = l.innerText; e.push(parseInt(t)) } else e.push(0) }), e.reverse(); for (var t = 0; t <= e.length - 1; t++) if (e[t] < 98) { console.log(t, "===>>>", e[t]), this.currentIndex = e.length - t - 1; break } if (console.log("111111111this.currentIndex==>>>", this.currentIndex), 0 == this.currentIndex) { ElementObj.$allTask[1].querySelector("a").click(), yield sleep(4e3), ElementObj.$allTask = document.querySelectorAll(".chapterlist .drop p"), yield sleep(200); let e = ElementObj.$allTask[0].querySelector(".class_percent").innerText; if (!(parseInt(e) < 98)) return void alert("当前科目课程已全部播放完"); this.currentIndex = 0 } -1 != this.currentIndex ? (ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉🔉🔉初始化完成,5s后开始播放", 3e3), console.log("this.currentIndex==>>>", this.currentIndex), this.handleClickSpeedUp()) : alert("当前科目课程已全部播放完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video.src ? (clearInterval(t), e(1)) : (clearInterval(t), e(2)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); let e = ElementObj.$allTask[this.currentIndex].querySelector("a"); yield sleep(300), e.click(), this.studyType = yield this.getVideoDom(), 1 == this.studyType && (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 t = 1 == this.studyType ? $el("#player") : $el("#thirdplayer"); this.changeHtml(t), this.reloadPage(), this.listenPageHide(), 1 == this.studyType ? this.listenAbnormal(1) : this.listenAbnormal(0), setTimeout(() => { this.addInfo("⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程", 0) }, 1e3), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { location.reload() })) }) } reloadPage() { return __awaiter(this, void 0, void 0, function* () { let e = 360, t = setInterval(() => { e <= 0 && (clearInterval(t), location.reload()), e -= 1 }, 1e3) }) } listenAbnormal(e) { showTip("🔉课件正在学习,请务点击或长时间隐藏"); let t = 0; setInterval(() => { if (t += 1, console.log("type==>>>", e), 0 == e && this.addInfo(`已监测${t}次,当前状态正在学习`), 1 == e) { let e = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`已监测${t}次,当前状态正在学习,已播放${e}分钟`) } document.querySelector(".layui-layer-btn0") && location.reload() }, 5e3) } } tsbtchinamde.ctxid = 26; class zjzjsrc extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("已寻找1次"); let t = document.querySelector("td .btn-xs"); ElementObj.$video = document.querySelector("video"), t && (clearInterval(e), t.click(), yield sleep(2e3), ElementObj.$allTask = document.querySelectorAll(".btn-xs[name='btn1']"), this.getCurrentIndex()), ElementObj.$video && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.handleClickSpeedUp()) }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("正在初始化"), ElementObj.$handleSpeedUp.style.display = "none"; let e = 0, t = setInterval(() => __awaiter(this, void 0, void 0, function* () { e >= ElementObj.$allTask.length - 1 && (clearInterval(t), alert("检测到课程已全不学完")), ElementObj.$allTask[e].click(), yield sleep(200); let n = document.querySelector(".btn-xs[value='开始学习']"); null == n || n.click(), yield sleep(200); let l = document.querySelectorAll(".progress-bar"), i = -1; for (var o = 0; o <= l.length - 1; o++) { let e = l[o].style.width; if (console.log("status==>>", e), 100 != parseInt(e)) { i = o, clearInterval(t); break } } yield sleep(1e3), -1 != i && (clearInterval(t), this.step2(i)), e += 1 }), 5e3) }) } step2(e) { let t = document.querySelectorAll("td a")[e]; GM_openInTab(t.href, {active: !0}), setTimeout(() => { window.close() }, 1500) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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, ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { this.videoplaying = -1, GM_openInTab("https://zj.zjjsrc.cn/member/project_toMyCourseList.page", {active: !0}) })), ElementObj.$video.addEventListener("pause", () => { let e; clearInterval(e), e = setTimeout(() => { document.querySelector(".vjs-play-control").click() }, 100) }) }) } } zjzjsrc.ctxid = 26; class gzjxjy extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { let e = setInterval(() => { ElementObj.$allTask = document.querySelectorAll(".el-step"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()) }, 1e3) } getCurrentIndex() { let e = -1; ElementObj.$allTask.forEach((t, n) => { t.querySelector(".status-tip") || -1 != this.currentIndex || (this.currentIndex = n), t.classList.contains("active") && (e = n) }), console.log("贵州===>>>", this.currentIndex), e != this.currentIndex && ElementObj.$allTask[this.currentIndex].querySelector(".step-title").click(), showTip("✅✅✅初始化完成,即将开始自动播放"), ElementObj.$handleSpeedUp.style.display = "none", this.handleClickSpeedUp() } play() { return __awaiter(this, void 0, void 0, function* () { yield this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "加速成功" }, 3e3), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("课程已全部部分完") : (this.currentIndex += 1, yield sleep(500), ElementObj.$allTask[this.currentIndex].querySelector(".step-title").click(), showTip("✅✅✅5秒后自动切换下一个", 4500), setTimeout(() => { location.reload() }, 5e3)) })), ElementObj.$video.addEventListener("pause", () => __awaiter(this, void 0, void 0, function* () { yield sleep(1e3); let e = document.querySelector(".dialog-footer button"); e ? e.click() : setTimeout(() => { ElementObj.$video.play() }, 1e3) })) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } } class gzjxjy_Answer { constructor() { this.currentIndex = 0, this.$allTask = document.querySelectorAll(".question-title"), this.currentTask = { type: 1, topicName: "", option: [] }, this.timer = 0, this._init() } _init() { let e = setInterval(() => { this.timer += 1, this.timer > 1920 && (this.submit(), clearInterval(e)) }, 1e3), t = setInterval(() => { this.$allTask = document.querySelectorAll(".question-title"), this.$allTask.length && (clearInterval(t), showTip("🔉初始化完成,可点击加速", 3e3), this.play()) }, 1e3) } play() { return __awaiter(this, void 0, void 0, function* () { yield sleep(2e3); let e = this.$allTask[this.currentIndex], t = e.querySelector(".show-text"); this.currentTask.topicName = t.innerText, ElementObj.$ctxTopicName = document.querySelector(".cxtsection3 .ctxtopic-name"), ElementObj.$ctxTopicName.innerText = this.currentTask.topicName, this.currentTask.option = []; let n = e.querySelectorAll(".el-radio__label"); n.length ? this.currentTask.type = 1 : (this.currentTask.type = 2, n = e.querySelectorAll(".el-checkbox__label")), n.forEach((e, t) => { this.currentTask.option.push(e.innerText) }); let l = yield this.searchDate(this.currentTask); console.log("res===>>>", l); let i = 0, o = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (i >= n.length) { if (clearInterval(o), yield sleep(2e3), this.currentIndex >= this.$allTask.length - 1) return; this.currentIndex += 1, this.play() } if (-1 != l.indexOf(`${i}`)) { n[i].click() } i += 1 }), 500) }) } searchDate(e) { return __awaiter(this, void 0, void 0, function* () { let t = yield fetchData({url: bserUrl + `/searchtopic?topicname=${e.topicName}`, method: "GET"}), n = ["0"]; if (t.result.topickey) n = t.result.topickey.split(","); else { 2 == e.type && (n = ["0", "1", "2"]); let t = `\n
    \n
    未搜索到
    \n
    ${e.topicName}
    \n
    \n `; ElementObj.$myTool.innerHTML += t } return n }) } saveTopic() { new Promise(e => __awaiter(this, void 0, void 0, function* () { let t = yield fetchData({ method: "GET", url: bserUrl + `/savetopic?topic=${JSON.stringify(this.currentTask)}` }); e(t) })) } submit() { document.querySelector(".btn-submit").click() } } class lzrejxjy extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("===>>>已寻找1次"); try { let t = document.querySelectorAll(".my-center2RM .pull-left a.trans")[1]; if (console.log(!!t), t) return clearInterval(e), GM_setValue("homeUrl", location.href), null == t || t.click(), showTip("🔉正在初始化"), yield sleep(2e3), ElementObj.$parentNodes = document.querySelectorAll(".class2Li"), void this.findParentIndex(); document.querySelectorAll(".learn-menu-cell").length && (clearInterval(e), this.getCurrentIndex()) } catch (e) { } }), 1e3) }) } getCurrentIndex() { var e; return __awaiter(this, void 0, void 0, function* () { let t = document.querySelectorAll(".learn-menu-cell")[1]; if (!t.classList.contains("learn-menu-cur")) { t.querySelector("a").click() } yield sleep(3e3); let n = document.querySelector(".contentIframe"); ElementObj._document = n.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".s_point"), showTip("正在初始化"), ElementObj.$handleSpeedUp.style.display = "none"; for (var l = 0; l <= ElementObj.$allTask.length - 1; l++) { if (!ElementObj.$allTask[l].querySelector(".item_done_icon").classList.contains("done_icon_show")) { this.currentIndex = l; break } } if (-1 == this.currentIndex) { let e = GM_getValue("homeUrl", null); return console.log("homeUrl==>>>", e), GM_openInTab(e, {active: !0}), void setTimeout(() => { window.close() }, 1500) } null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp() }) } findParentIndex() { return __awaiter(this, void 0, void 0, function* () { let e; ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$parentNodes.forEach((t, n) => { let l = t.querySelector(".color-theme").innerText; parseInt(l) <= 98 && -1 == this.currentIndex && (this.currentIndex = n, e = t.querySelector("a.btn-theme")) }), -1 != this.currentIndex ? (e.click(), setTimeout(() => { window.close() }, 1500)) : alert("全部课程已学完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = ElementObj._document.querySelector("#mainFrame").contentWindow.document; ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), yield this.getVideoDom(), 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* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let e = GM_getValue("homeUrl", null); return console.log("homeUrl==>>>", e), GM_openInTab(e, {active: !0}), void setTimeout(() => { window.close() }, 1500) } this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), showTip("🔉正在切换课程"), setTimeout(() => { this.handleClickSpeedUp() }, 5e3) })), ElementObj.$video.addEventListener("pause", () => { ElementObj.$video.volume = 0, ElementObj.$video.play() }) }) } updateSpeedElement(e) { localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e } listenRebort() { this.listenRebortTime = setInterval(() => { console.log("人机检测中==》》》"); let e = document.querySelector(".layui-layer-btn0"); e && setTimeout(() => { e.click(), ElementObj.$video.play() }, 3e3) }, 1e4) } } lzrejxjy.ctxid = 26; 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("===>>>已寻找1次"); try { let t = document.querySelector("#courseware_main_menu").querySelector("a"); t && (clearInterval(e), t.click(), this.findParentIndex()) } catch (e) { } }), 1e3) }) } findParentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("🔉正在初始化", 2500), yield sleep(4500), ElementObj.$handleSpeedUp.style.display = "none"; let e = document.querySelector(".contentIframe").contentWindow.document; ElementObj.$parentNodes = e.querySelectorAll(".vcon li"), ElementObj.$parentNodes.forEach((e, t) => { let n = e.querySelector("span"); (n.classList.contains("undo") || n.classList.contains("doing")) && -1 == this.parentIndex && (this.parentIndex = t) }), console.log("this.parentIndex===>>>", this.parentIndex), -1 != this.parentIndex ? (ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), this.getCurrentIndex()) : alert("当前课程已全部播发完") }) } getCurrentIndex() { var e; return __awaiter(this, void 0, void 0, function* () { showTip("正在初始化", 2500), yield sleep(4500); let t = document.querySelector(".contentIframe"); ElementObj._document = t.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".menub"), this.currentIndex = 0, null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp() }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = document.querySelector(".contentIframe"); ElementObj._document = n.contentWindow.document; let l = ElementObj._document.querySelector("#mainFrame").contentDocument; if (ElementObj.$video = l.querySelector("video"), ElementObj.$video) return clearInterval(t), void e(1); l.querySelector("#content_frame"); clearInterval(t), e(2) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer2); let e = yield this.getVideoDom(); console.log("studytype===>>>", e), this.listenRebort(), 1 == e && (ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3) }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { yield sleep(3e3), this.playNext() }))), 2 == e && (this.timer2 = setTimeout(() => { this.playNext() }, 7e3)) }) } listenRebort() { this.listenRebortTime = setInterval(() => { let e = document.querySelector(".layui-layer-btn a"); e && (e.click(), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3)) }, 1e4) } playNext() { return __awaiter(this, void 0, void 0, function* () { if (showTip("✅✅✅播放完成,正在切换课程", 3500), this.currentIndex >= ElementObj.$allTask.length - 1) return this.parentIndex += 1, ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), void setTimeout(() => { this.getCurrentIndex() }, 4500); this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => { this.handleClickSpeedUp() }, 4e3) }) } } xuzhouyikedaxue.ctxid = 26; 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("===>>>已寻找1次"); try { let t = document.querySelectorAll(".el-tree-node"), n = document.querySelectorAll(".m-chapterList .section"); (t.length || n.length) && (this.studyType = t.length ? 2 : 1, ElementObj.$allTask = t.length ? t : n, clearInterval(e), this.getCurrentIndex()), ElementObj.$parentNodes = document.querySelectorAll(".project-courseBottom"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex()), "preview.dccloud.com.cn" == location.host && (clearInterval(e), yield sleep(1500), window.close()) } catch (e) { } }), 1e3) }) } getParentIndex() { for (var e = 0; e <= ElementObj.$parentNodes.length - 1; e++) { if ("已学习" != ElementObj.$parentNodes[e].querySelector("span")) { this.parentIndex = e; break } } -1 == this.parentIndex && alert("课程已全部学完"), ElementObj.$parentNodes[e].querySelector(".project-courseButton").click() } getSwiperIndex() { var e; return __awaiter(this, void 0, void 0, function* () { if (ElementObj.$video = document.querySelector("video"), yield sleep(200), !ElementObj.$video) return ElementObj.$docs = document.querySelectorAll(".abcd"), void (ElementObj.$docs.length && this.playDoc()); if (ElementObj.$swiperItem = document.querySelectorAll(".public-articleSlideList"), ElementObj.$swiperItem.length) { for (var t = 0; t <= ElementObj.$swiperItem.length - 1; t++) { if ("已学习" != ElementObj.$swiperItem[t].querySelector(".video-status").innerText) { this.swiperIndex = t; break } } if (console.log("this.swiperIndex==>>", this.swiperIndex), -1 == this.swiperIndex) this.playNext(); else if (0 == this.swiperIndex) this.handleClickSpeedUp(); else { ElementObj.$swiperItem[this.swiperIndex].querySelector(".el-icon-video-play").click(), showTip("⚠️⚠️⚠️正在初始化", 3500); let t = null === (e = document.querySelector(".el-message-box__btns")) || void 0 === e ? void 0 : e.lastChild; yield sleep(2e3), t.click(), setTimeout(() => { this.handleClickSpeedUp() }, 5e3) } } else this.handleClickSpeedUp() }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = "none", showTip("正在初始化", 2500), yield sleep(3500); let e = 1 == this.studyType ? "section-cur" : "study"; ElementObj.$allTask.forEach((t, n) => { if (1 == this.studyType) { t.classList.contains(e) && (this.currentIndex = n) } if (2 == this.studyType) { "已学习" != t.querySelector("i").title && -1 == this.currentIndex && (this.currentIndex = n) } }), -1 != this.currentIndex ? (2 == this.studyType && -1 != this.currentIndex && this.playNext(this.currentIndex - 1), showTip("⚠️⚠️⚠️初始化,请稍后", 3e3), 1 == this.studyType && this.handleClickSpeedUp(), 2 == this.studyType && this.getSwiperIndex()) : alert("当前课程章节已全部播放完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { if (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 }, 3e3), 2 == this.studyType) { let e = yield this.getDocIndex(); setTimeout(() => { this.eachPlayDoc(e) }, 3e3), 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 }, 3e3) }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { var e; if (showTip("🔉正在切换课程", 2500), 2 == this.studyType) if (this.swiperIndex >= ElementObj.$swiperItem.length - 1) location.reload(); else { this.swiperIndex += 1, ElementObj.$swiperItem[this.swiperIndex].querySelector(".el-icon-video-play").click(), showTip("⚠️⚠️⚠️正在切换视频", 5e3); let t = null === (e = document.querySelector(".el-message-box__btns")) || void 0 === e ? void 0 : e.lastChild; yield sleep(2e3), t.click(), setTimeout(() => { this.handleClickSpeedUp() }, 5e3) } if (1 == this.studyType) { if (this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已学完"); let e; this.currentIndex += 1, null == (e = ElementObj.$allTask[this.currentIndex].querySelector("a")) || e.click() } })) }) } getDocIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$docs = document.querySelectorAll(".abcd .file-box"), yield sleep(200), console.log("ElementObj.$docs==>>>", ElementObj.$docs); let e = -1; for (var t = 0; t <= ElementObj.$docs.length - 1; t++) { if ("( 已完成 )" != ElementObj.$docs[t].querySelector(".fs12").innerText) { e = t; break } } return e }) } playDoc(e) { return __awaiter(this, void 0, void 0, function* () { let e = yield this.getDocIndex(); console.log("index=====>>>", e), -1 != e ? this.eachPlayDoc(e, () => { setTimeout(() => __awaiter(this, void 0, void 0, function* () { this.playNext() }), 2e3) }) : this.playNext() }) } eachPlayDoc(e = 0, t) { if (console.log("eachPlayDoc===>>", e), -1 == e) return; let n = setInterval(() => { console.log("index===>>", e), e >= ElementObj.$docs.length - 1 && (clearInterval(n), console.log("结束"), "function" == typeof t && t()), ElementObj.$docs[e].querySelector("button").click(), e += 1 }, 2e3) } playNext(e) { var t; return __awaiter(this, void 0, void 0, function* () { if (null != e && (this.currentIndex = e), this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前章节课程已学完"); this.currentIndex += 1; let n = ElementObj.$allTask[this.currentIndex].querySelectorAll("span")[1]; null == n || n.click(), yield sleep(2e3); let l = null === (t = document.querySelector(".el-message-box__btns")) || void 0 === t ? void 0 : t.lastChild; l && l.click(), showTip("⚠️⚠️⚠️正在切换下一节", 4e3), setTimeout(() => { this.getSwiperIndex() }, 4500) }) } listenPlayTime() { showTip("🔉课件正在学习,请务点击或长时间隐藏"); let e = 0; this.timer = setInterval(() => { e += 1; let t = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`) }, 5e3) } reloadPage() { return __awaiter(this, void 0, void 0, function* () { let e = 360, t = setInterval(() => { e <= 0 && (clearInterval(t), location.reload()), e -= 1 }, 1e3) }) } } xibeisfzyjy.ctxid = 26; 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { let t = document.querySelectorAll("#bxkBtudyDiv a"); t.length && (clearInterval(e), this.getParentIndex(t)), ElementObj.$allTask = document.querySelectorAll(".course-info .video-title"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" }), 1e3) }) } getParentIndex(e) { return __awaiter(this, void 0, void 0, function* () { e[0].click(), showTip("⚠️⚠️⚠️正在初始化", 3e3), yield sleep(3e3), ElementObj.$parentNodes = document.querySelectorAll("tbody tr"); for (var t = 0; t <= ElementObj.$parentNodes.length - 1; t++) { let e = ElementObj.$parentNodes[t].querySelector("span").innerText; if (parseInt(e) <= 98) { this.parentIndex = t; break } } if (-1 == this.parentIndex) { e[1].click(), yield sleep(3e3), ElementObj.$parentNodes = document.querySelectorAll("tbody tr"); for (t = 0; t <= ElementObj.$parentNodes.length - 1; t++) { let e = ElementObj.$parentNodes[t].querySelector("span").innerText; if (parseInt(e) <= 98) { this.parentIndex = t; break } } } if (-1 == this.parentIndex) return void alert("全部课程已学完"); let n = GM_setValue("homeUrl", location.href); console.log("homeUrl==>>>", n), 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((e, t) => { "100%" != e.querySelector(".four").innerText && -1 == this.currentIndex && (this.currentIndex = t) }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3); let e = ElementObj.$allTask[this.currentIndex]; yield sleep(200), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500), console.log("this.currentIndex==>>>", this.currentIndex) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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 e = document.querySelector(".xgplayer-start"); yield sleep(200), e.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 e = GM_getValue("homeUrl", null); return console.log("homeUrl==>>>", e), void GM_openInTab(e, {active: !0}) } this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })) }) } punchCard() { setInterval(() => { let e = document.querySelector("#comfirmClock"); e && e.click() }, 5e3) } updateSpeedElement(e) { localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { let t = document.querySelector(".head_right button"); t && (clearInterval(e), t.click()), ElementObj.$allTask = document.querySelectorAll(".page-name"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 3500), ElementObj.$allTask.forEach((e, t) => { e.classList.contains("complete") || -1 != this.currentIndex || (this.currentIndex = t) }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3); let e = ElementObj.$allTask[this.currentIndex]; yield sleep(200), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500), console.log("this.currentIndex==>>>", this.currentIndex) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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 e = document.querySelector(".mejs__overlay-button"); yield sleep(200), e.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 e = document.querySelector(".back-btn"); return yield sleep(200), void e.click() } this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })) }) } punchCard() { setInterval(() => { console.log("人机检测中"); let e = document.querySelector(".btn-submit"); e && e.click() }, 5e3) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (ElementObj.$parentNodes = document.querySelectorAll(".state-l"), ElementObj.$parentNodes.length) return clearInterval(e), void ElementObj.$parentNodes[0].querySelector(".btn span").click(); ElementObj.$parentNodes = document.querySelectorAll(".course-card-item"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex()), ElementObj.$allTask = document.querySelectorAll(".pt5 li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" }), 1e3) }) } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { let e = -1; for (var t = 0; t < ElementObj.$parentNodes.length - 1; t++) { let n = ElementObj.$parentNodes[t].querySelector(".progress-bar").style.width; if (parseInt(n) < 98) { e = t; break } } -1 != e ? ElementObj.$parentNodes[t].querySelector("a").click() : alert("当前课程已全部学完,请更换其它课程") }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => { let n = e.querySelector(".badge").innerText; 100 != parseInt(n) && -1 == this.currentIndex && (this.currentIndex = t) }), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3); let e = ElementObj.$allTask[this.currentIndex]; yield sleep(200), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500), console.log("this.currentIndex==>>>", this.currentIndex) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelectorAll("video")[1], ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), 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 e = document.querySelector("a.back"); return yield sleep(200), void e.click() } this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })) }) } } 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.handleClickSpeedUp() }) } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { this.handleClickSpeedUp() }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => { let n = e.querySelector(".badge").innerText; 100 != parseInt(n) && -1 == this.currentIndex && (this.currentIndex = t) }), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3); let e = ElementObj.$allTask[this.currentIndex]; yield sleep(200), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500), console.log("this.currentIndex==>>>", this.currentIndex) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelectorAll("video")[1], ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), 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* () { this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("全部课程已播放完") : setTimeout(() => { this.handleClickSpeedUp() }, 4500) })) }) } } class henanzhuanjipeixun 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { var t; try { ElementObj.$allTask = document.querySelectorAll("tbody tr"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()); let n = null === (t = document.querySelector("#playerFrame")) || void 0 === t ? void 0 : t.contentDocument; ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(e), this.handleClickSpeedUp()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => { if (t > 1) { let n = e.querySelectorAll("td")[2].innerText; 100 != parseInt(n) && -1 == this.currentIndex && (this.currentIndex = t) } }), console.log("this.currentIndex===>>>", this.currentIndex); let e = location.href; GM_setValue("homeUrl", e), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3); let t = ElementObj.$allTask[this.currentIndex].querySelectorAll("td")[3].querySelector("a"); yield sleep(200), t.click(), yield sleep(1500), document.querySelector("input.textbtn").click(), setTimeout(() => { window.close() }, 4500), console.log("this.currentIndex==>>>", this.currentIndex) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { var n; let l = null === (n = document.querySelector("#playerFrame")) || void 0 === n ? void 0 : n.contentDocument; ElementObj.$video = l.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), 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* () { setTimeout(() => { window.close() }, 2500); let e = GM_getValue("homeUrl", null); console.log("homeUrl==>>>", e), GM_openInTab(e, {active: !0}) })) }) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let t = document.querySelectorAll(".course_2"), n = document.querySelectorAll("tbody tr.el-table__row"); if (t.length || n.length) { clearInterval(e), ElementObj.$parentNodes = t.length ? t : n; let l = t.length ? 1 : 2; this.getParentIndex(l) } ElementObj.$allTask = document.querySelectorAll(".page-name"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getParentIndex(e) { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 1500); let t = 1 == e ? 0 : -1; if (ElementObj.$parentNodes.forEach((e, n) => { if (n > t) { let t = e.querySelector(".el-progress__text").innerText; 100 != parseInt(t) && -1 == this.currentIndex && (this.currentIndex = n) } }), console.log("this.currentIndex===>>>", this.currentIndex), -1 == this.currentIndex && 2 == e) { return GM_openInTab("https://edu.tjj.zj.gov.cn/#/personal?componentId=ClassList&type=classlist", {active: !0}), void setTimeout(() => { window.close() }, 3500) } showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3); let n = ElementObj.$parentNodes[this.currentIndex].querySelector("button"); yield sleep(200), n.click(), setTimeout(() => { location.reload() }, 3e3), console.log("this.currentIndex==>>>", this.currentIndex) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 3500), ElementObj.$allTask.forEach((e, t) => { e.classList.contains("complete") || -1 != this.currentIndex || (this.currentIndex = t) }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉初始化完成,5秒后开始播放", 3e3); let e = ElementObj.$allTask[this.currentIndex]; yield sleep(200), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500), console.log("this.currentIndex==>>>", this.currentIndex) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { var n; let l = null === (n = document.querySelector("#playerFrame")) || void 0 === n ? void 0 : n.contentDocument; ElementObj.$video = l.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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 e = document.querySelector(".mejs__overlay-button"); yield sleep(200), e.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 e = document.querySelector(".back-btn"); return yield sleep(200), void e.click() } this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })) }) } punchCard() { setInterval(() => { let e = document.querySelector(".btn-submit"); e && e.click() }, 5e3) } } class guizhouzxjxjy 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll(".lcml_djj_list li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 1500); ElementObj.$allTask.forEach((e, t) => { e.classList.contains("on") && -1 == this.currentIndex && (this.currentIndex = t) }), console.log("this.currentIndex===>>>", this.currentIndex), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), setTimeout(() => { this.handleClickSpeedUp() }, 4500) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = document.querySelector(".xgplayer-start"); n && n.click(), ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), yield this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), 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) return void alert("当前课程视频已全部播放完"); this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })) }) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll(".units_wrap_box___1ncip"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️正在初始化", 1500), ElementObj.$allTask.forEach((e, t) => { let n = e.querySelector(".progress_get_on___3TDga"), l = e.querySelector(".not_start___3dAwS"); (n || l) && -1 == this.currentIndex && (this.currentIndex = t) }), -1 == this.currentIndex && (this.currentIndex = 0), console.log("this.currentIndex===>>>", this.currentIndex), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠初始化完成,5秒后开始播放", 3e3), setTimeout(() => { this.handleClickSpeedUp() }, 4500) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), 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() }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("当前课程视频已全部播放完"); this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play() }, 1500) }) }) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { var t; try { ElementObj.$btn_dropdown = document.querySelector(".btn_dropdown"), null === (t = ElementObj.$btn_dropdown) || void 0 === t || t.click(); let n = document.querySelector(".btn.btn-green"); n && (clearInterval(e), yield sleep(300), n.click()), ElementObj.$allTask = document.querySelectorAll(".list-order.clefix>li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { var e; return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 1500), yield sleep(1500), "none" != $el("#sectionlist").style.display && (null === (e = ElementObj.$btn_dropdown) || void 0 === e || e.click()), setTimeout(() => { this.handleClickSpeedUp() }, 4500) }) } getIndex() { let e = 0; for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) { if (ElementObj.$allTask[t].querySelector(".current")) { e = t; break } } return e } getVideoDom() { return new Promise(e => { let t = setTimeout(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(t), e(1)) : (clearInterval(t), e(2)) }, 3e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); let e = yield this.getVideoDom(); if (1 == e && (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() }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(5e3), this.playNext() })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play() }, 1500) })), 2 == e) { let e = this.getIndex(); console.log("index===>>>", e); let t = ElementObj.$allTask[e + 1].querySelector("a.toggle_lesson").title.indexOf("作业"); if (console.log("nextTaskTitle==>>", t), -1 != t) { return console.log("ElementObj.$allTask[index+2]", ElementObj.$allTask[e + 2]), void ElementObj.$allTask[e + 2].querySelectorAll("li>a")[1].click() } let n = document.querySelector(".preNext.next"); yield sleep(200), n.click() } }) } playNext() { return __awaiter(this, void 0, void 0, function* () { let e = this.getIndex(); if (console.log("index===>>>", e), e >= ElementObj.$allTask.length - 1) return void alert("当前课程已全部播放完"); if (-1 != ElementObj.$allTask[e + 1].querySelector("a.toggle_lesson").title.indexOf("作业")) return void ElementObj.$allTask[e + 2].click(); let t = document.querySelector(".btn.btn-green"); yield sleep(300), t.click(), setTimeout(() => { document.querySelector(".jw-reset.jw-icon") && alert("当前课程视频已全部播放完") }, 4500) }) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { var t; try { ElementObj.$btn_dropdown = document.querySelector("#catalogA"), null === (t = ElementObj.$btn_dropdown) || void 0 === t || t.click(), ElementObj.$allTask = document.querySelectorAll("li.activity-node"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { var e; return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 1500), yield sleep(1500), "none" != $el("#toolsContentDiv").style.display && (null === (e = ElementObj.$btn_dropdown) || void 0 === e || e.click()); let t = []; ElementObj.$allTask.forEach((e, n) => { e.querySelector(".cedu-file-video") && t.push(e) }), ElementObj.$allTask = t, this.currentIndex = 0, setTimeout(() => { this.handleClickSpeedUp() }, 4500) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = document.querySelector(".vjs-big-play-button"); ElementObj.$video = document.querySelector("video"), ElementObj.$video && n && (clearInterval(t), e(!0)) }, 1e3) }) } 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 e = document.querySelector(".vjs-big-play-button"); yield sleep(200), console.log("$playBtn===>>", e), null == e || e.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 e = 0; this.timer = setInterval(() => { e += 1; let t = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`), ElementObj.$video.currentTime >= ElementObj.$video.duration - 4 && this.playNext() }, 5e3) } listenVidoeStatus(e, t) { if (!e) return; let n = 0; this.timer2 = setInterval(() => { e.readyState < 4 && (console.log(`检测到${n}次,视频正在加载`), this.addInfo(`检测到${n}次,视频正在加载`, 0), (n += 1) >= 20 && location.reload()), e.paused && (n += 1, console.log(`检测到视频暂停了${n}次`), "function" == typeof t ? n >= 20 ? location.reload() : t() : console.log("callback不是一个函数")) }, 3e3) } playNext() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(5e3), this.currentIndex += 1; let e = ElementObj.$allTask[this.currentIndex]; yield sleep(300), e.querySelector(".cedu-file-video") ? e.click() : alert("当前课程视频已全部播放完") }) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { if (document.querySelector(".layui-layer-btn0")) return clearInterval(e), void this.playNext(); ElementObj.$allTask = document.querySelectorAll(".course_chapter_item"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 1500), yield sleep(1500), ElementObj.$allTask.forEach((e, t) => { e.querySelector("i.fa-circle") || -1 != this.currentIndex || (this.currentIndex = t) }), -1 != this.currentIndex ? (ElementObj.$allTask[this.currentIndex].querySelector(".section_title").click(), showTip("⚠️⚠️⚠️正在初始化", 3500), setTimeout(() => { this.getSwiperIndex() }, 4500)) : alert("当前课程已全部播放完") }) } getSwiperIndex() { ElementObj.$swiperItem = document.querySelectorAll("#menu_tarr_content .courseware_menu_item"), this.swiperIndex = -1; for (var e = 0; e <= ElementObj.$swiperItem.length - 1; e++) { let t = ElementObj.$swiperItem[e]; if (t.querySelector(".icon-note-video-learning")) { this.swiperIndex = e, t.click(), setTimeout(() => { this.handleClickSpeedUp() }, 3500); break } } -1 == this.swiperIndex && location.reload() } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = document.querySelector(".vjs-big-play-button"); ElementObj.$video = document.querySelector("video"), ElementObj.$video && n && (clearInterval(t), e(!0)) }, 1e3) }) } 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 e = 0; this.timer = setInterval(() => { e += 1; let t = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`), document.querySelector(".complete") && (this.addInfo("✅✅✅,当前视频播放完成,5秒后自动切换下一个视频"), this.swiperIndex >= ElementObj.$swiperItem.length - 1 ? location.reload() : (this.swiperIndex += 1, $el("#right_tarr").click(), setTimeout(() => { this.handleClickSpeedUp() }, 3500))), ElementObj.$video.currentTime >= ElementObj.$video.duration - 4 && this.playNext() }, 5e3) } listenVidoeStatus(e, t) { if (!e) return; let n = 0; this.timer2 = setInterval(() => { e.readyState < 4 && (console.log(`检测到${n}次,视频正在加载`), this.addInfo(`检测到${n}次,视频正在加载`, 0), (n += 1) >= 20 && location.reload()), e.paused && (n += 1, console.log(`检测到视频暂停了${n}次`), "function" == typeof t ? n >= 20 ? location.reload() : t() : console.log("callback不是一个函数")) }, 3e3) } playNext() { return __awaiter(this, void 0, void 0, function* () { showTip("⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频", 4500), yield sleep(5e3); let e = document.querySelector(".layui-layer-btn0"); e && (e.click(), yield sleep(2e3), location.reload()) }) } } class sipingnengcun 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll(".videolist_item"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((e, t) => { e.querySelector(".el-progress").classList.contains("is-success") || -1 != this.currentIndex || (this.currentIndex = t) }), -1 != this.currentIndex ? (ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => { this.handleClickSpeedUp() }, 4500)) : alert("当前课程视频已全部播放完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("当前课程所以视频已播放完") : (this.currentIndex += 1, setTimeout(() => { this.handleClickSpeedUp() }, 4500)) })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3500) }, 1500) }) }) } } 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* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("===>>>已寻找1次"); try { let t = document.querySelector("#courseware_main_menu").querySelector("a"); t && (clearInterval(e), t.click(), this.findParentIndex()) } catch (e) { } }), 1e3) }) } findParentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("🔉正在初始化", 2500), yield sleep(4500), ElementObj.$handleSpeedUp.style.display = "none"; let e = document.querySelector(".contentIframe").contentWindow.document; ElementObj.$parentNodes = e.querySelectorAll(".vcon li"), ElementObj.$parentNodes.forEach((e, t) => { let n = e.querySelector("span"); (n.classList.contains("undo") || n.classList.contains("doing")) && -1 == this.parentIndex && (this.parentIndex = t) }), console.log("this.parentIndex===>>>", this.parentIndex), -1 != this.parentIndex ? (ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), this.getCurrentIndex()) : alert("当前课程已全部播发完") }) } getCurrentIndex() { var e; return __awaiter(this, void 0, void 0, function* () { showTip("正在初始化", 2500), yield sleep(4500); let t = document.querySelector(".contentIframe"); ElementObj._document = t.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".menub"), this.currentIndex = 0, null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp() }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = ElementObj._document.querySelector("#mainFrame").contentDocument; if (ElementObj.$video = n.querySelector("video"), ElementObj.$video) return clearInterval(t), void e(1); n.querySelector("#content_frame"); clearInterval(t), e(2) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer2); let e = yield this.getVideoDom(); this.listenRebort(), 1 == e && (ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3) }), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { yield sleep(3e3), this.playNext() }))), 2 == e && (this.timer2 = setTimeout(() => { this.playNext() }, 7e3)) }) } listenRebort() { this.listenRebortTime = setInterval(() => { let e = document.querySelector(".layui-layer-btn a"); e && (e.click(), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3)) }, 1e4) } playNext() { return __awaiter(this, void 0, void 0, function* () { if (showTip("✅✅✅播放完成,正在切换课程", 3500), this.currentIndex >= ElementObj.$allTask.length - 1) return this.parentIndex += 1, ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), void setTimeout(() => { this.getCurrentIndex() }, 4500); this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), yield sleep(5e3), this.handleClickSpeedUp() }) } } ycjyluteducn.ctxid = 26; 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let t = document.querySelectorAll(".player-table")[2]; ElementObj.$allTask = t.querySelectorAll("td"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let e = -1; if (ElementObj.$allTask.forEach((t, n) => { let l = t.querySelector(".playLine").innerText; 100 != parseInt(l) && -1 == this.currentIndex && (this.currentIndex = n), t.classList.contains("couBg") && (e = n) }), -1 != this.currentIndex) { if (this.currentIndex != e) { ElementObj.$allTask[this.currentIndex].querySelector("a").click() } showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => { this.handleClickSpeedUp() }, 4500) } else alert("当前课程视频已全部播放完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = document.querySelector("#c_frame").contentDocument; ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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(3e3), location.reload() })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator }, 1500) }) }) } } class shandongqlteacher 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll("app-course-catalogue.ng-star-inserted .ant-list-items li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((e, t) => { e.querySelector("div.align-items-center") || -1 != this.currentIndex || (this.currentIndex = t) }), -1 != this.currentIndex ? (showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => { this.handleClickSpeedUp() }, 4500)) : alert("当前课程视频已全部播放完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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), this.changeHtml($el("#tencent_player")), 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(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator }, 1500) }) }) } listenPlayTime() { showTip("⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏"); let e = 0; this.timer = setInterval(() => { e += 1; let t = (ElementObj.$video.currentTime / 60).toFixed(2), n = $el(".count-down").innerText; this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟, ${n}`) }, 5e3) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll(".Nvideo-item li"), ElementObj.$allTask.length && (clearInterval(e), $el(".Nvideo-playbox").style.position = "relative", this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { this.currentIndex = 0, showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => { this.handleClickSpeedUp() }, 4500) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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), 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(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator }, 1500) }) }) } listenPlayTime() { showTip("⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏"); let e = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { e += 1; let t = (ElementObj.$video.currentTime / 60).toFixed(2); if (this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟`), e % 30 == 0) { let e = $el("#courseStudyBestMinutesNumber").innerText, t = document.querySelector(".studyCourseTimeRefresh"); null == t || t.click(), yield sleep(2e3); let n = `✅✅✅本课程最长可累计时间:${e}分钟,您已成功学习${$el("#courseStudyMinutesNumber").innerText}分钟`; this.addInfo(n, 0) } }), 5e3) } } 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 e = document.querySelector("#dashboard-toolbar-nav li"); null == e || e.click(); let t = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll("li.task-item"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((e, t) => { e.querySelector(".es-icon-iccheckcircleblack24px") || -1 != this.currentIndex || (this.currentIndex = t) }), -1 == this.currentIndex && (this.currentIndex = 0), showTip("⚠️⚠️⚠️初始化完成,5秒后开始播放", 3500), setTimeout(() => { this.handleClickSpeedUp() }, 4500) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = document.querySelector("#task-content-iframe"); n.contentDocument; ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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), 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(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => { this.handleClickSpeedUp() }, 4500) })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => { ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator }, 1500) }) }) } listenPlayTime() { showTip("⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏"); let e = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { e += 1; let t = (ElementObj.$video.currentTime / 60).toFixed(2), n = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`已监测${e}次,当前状态正在学习,已播放${t}分钟,视频总时长为${n}`) }), 5e3) } } 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* () { }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), yield this.getVideoDom(), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3500), ElementObj.$video.addEventListener("ended", () => __awaiter(this, void 0, void 0, function* () { alert("视频已播放完") })), ElementObj.$video.addEventListener("pause", () => { setTimeout(() => __awaiter(this, void 0, void 0, function* () { let e = document.querySelector("#dvMsgBtns input"); null == e || e.click(), yield sleep(2e3), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator }), 2500) }) }) } } 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 e = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let t = document.querySelector("#tab-second"); if (t) return clearInterval(e), t.click(), void this.getCurrentIndex(); document.querySelector("video") && (clearInterval(e), this.handleClickSpeedUp()), ElementObj.$handleSpeedUp.style.display = "none" } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { yield sleep(1e3), ElementObj.$allTask = document.querySelectorAll(".task-list"); for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) { if (!ElementObj.$allTask[e].querySelector(".icon-yiwancheng")) { this.currentIndex = e; break } } if (-1 == this.currentIndex) return void alert("当前课程已全部播放完"); let t = document.querySelectorAll(".task-list")[this.currentIndex].querySelector("span"); null == t || t.click(), setTimeout(() => { this.handleClickSpeedUp() }, 3e3) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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 e = document.querySelectorAll(".el-breadcrumb__inner.is-link")[1]; null == e || e.click(), setTimeout(() => { location.reload() }, 3500) }) } } class shandongzhuanyejisu extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("===>>>已寻找1次"); try { document.querySelectorAll(".learn-menu-cell").length && (clearInterval(e), this.getCurrentIndex()) } catch (e) { } }), 1e3) }) } getCurrentIndex() { var e; return __awaiter(this, void 0, void 0, function* () { let t = document.querySelector(".contentIframe"); ElementObj._document = t.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".s_point"), showTip("正在初始化"), ElementObj.$handleSpeedUp.style.display = "none"; for (var n = 0; n <= ElementObj.$allTask.length - 1; n++) { if (!ElementObj.$allTask[n].querySelector(".item_done_icon").classList.contains("done_icon_show")) { this.currentIndex = n; break } } -1 != this.currentIndex ? (null === (e = ElementObj.$allTask[this.currentIndex]) || void 0 === e || e.click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp()) : alert("当前课程已全部学完") }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { let n = ElementObj._document.querySelector("#mainFrame").contentWindow.document; ElementObj.$video = n.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } 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 }, 3e3), 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.currentIndex >= ElementObj.$allTask.length - 1 ? alert("当前课程已全部学完") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), showTip("🔉正在切换课程"), setTimeout(() => { this.handleClickSpeedUp() }, 5e3)) })), ElementObj.$video.addEventListener("pause", () => { ElementObj.$video.volume = 0, ElementObj.$video.play() }) }) } updateSpeedElement(e) { localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e } listenRebort() { this.listenRebortTime = setInterval(() => { console.log("人机检测中==》》》"); let e = document.querySelector(".layui-layer-btn0"); e && setTimeout(() => { e.click(), ElementObj.$video.play() }, 3e3) }, 1e4) } } shandongzhuanyejisu.ctxid = 26; class chongqingzhuanye extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("===>>>已寻找1次"); try { ElementObj.$allTask = document.querySelectorAll("ul li ul li .posCatalog_select"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()) } catch (e) { } }), 1e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip("✅✅✅正在初始化"), ElementObj.$handleSpeedUp.style.display = "none"; for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) { if (!ElementObj.$allTask[e].querySelector(".icon_Completed")) { this.currentIndex = e; break } } if (-1 == this.currentIndex) return void alert("当前课程已全部学完"); ElementObj.$allTask[this.currentIndex].querySelector(".posCatalog_name").click(), showTip("初始化完成,5秒后开始播放"), this.handleClickSpeedUp() }) } getVideoDom() { return new Promise(e => { let t = 0, n = setInterval(() => { var l, i; let o = null === (i = null === (l = document.querySelector("#iframe").contentDocument) || void 0 === l ? void 0 : l.querySelector("iframe")) || void 0 === i ? void 0 : i.contentDocument; ElementObj.$video = o.querySelector("video"), t += 1, ElementObj.$video && (clearInterval(n), e(!0)), t > 10 && (clearInterval(n), e(!1)) }, 1e3) }) } play() { var e; return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer); let t = yield this.getVideoDom(); if (t) { ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3); let t = null === (e = $el("#iframe").contentDocument.querySelector("iframe")) || void 0 === e ? void 0 : e.contentDocument.querySelector("#reader"); this.changeHtml(t), 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() }) } t || (showTip("⚠️⚠️⚠️未检测到视频,5秒后切换下一节", 4500), setTimeout(() => { this.playNext() }, 3e3)) }) } playNext() { return __awaiter(this, void 0, void 0, function* () { yield sleep(3e3), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("当前课程已全部学完") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].querySelector(".posCatalog_name").click(), showTip("⚠️⚠️⚠️正在切换课程", 4500), setTimeout(() => { this.handleClickSpeedUp() }, 5e3)) }) } listenPlayTime() { showTip("🔉课件正在学习,请务点击或长时间隐藏"); let e = 0; this.timer = setInterval(() => { var t; e += 1; let n = (ElementObj.$video.currentTime / 60).toFixed(2), l = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`已监测${e}次,当前状态正在学习,已播放${n}分钟,视频总时长为${l}分钟`); let i = null === (t = document.querySelector("#iframe").contentDocument) || void 0 === t ? void 0 : t.querySelector(".ans-job-icon"); "任务点已完成" == (null == i ? void 0 : i.getAttribute("aria-label")) && (clearInterval(this.timer), this.addInfo("✅✅✅监测到当前任务已完成,5秒后自动切换下一节", 1), setTimeout(() => { this.playNext() }, 3e3)) }, 3e3) } addInfo(e, t) { var n, l; ElementObj.$ctxstatsbox = null === (n = $el("#iframe").contentDocument.querySelector("iframe")) || void 0 === n ? void 0 : n.contentDocument.querySelector(".ctxstatsbox"), (null === (l = $el("#iframe").contentDocument.querySelector("iframe")) || void 0 === l ? void 0 : l.contentDocument.querySelectorAll(".ctxstatsbox_li")).length >= 15 && (ElementObj.$ctxstatsbox.innerHTML = ""); let i = `
  • ${e}
  • `; ElementObj.$ctxstatsbox.innerHTML += i } } chongqingzhuanye.ctxid = 26; class jiaoyuganbuwang extends Main { constructor() { super(), this.taskLength = 0, this.currentIndex = -1, this._init() } _init() { return __awaiter(this, void 0, void 0, function* () { let e = setInterval(() => __awaiter(this, void 0, void 0, function* () { console.log("===>>>已寻找1次"); try { let t = document.querySelectorAll(".customcur-tabs-wrapper li")[1]; if (t) return clearInterval(e), t.click(), void this.getParentIndex(); if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) return clearInterval(e), void this.getCurrentIndex() } catch (e) { } }), 1e3) }) } getParentIndex() { var e; return __awaiter(this, void 0, void 0, function* () { showTip("✅✅✅正在初始化", 3e3), ElementObj.$handleSpeedUp.style.display = "none", yield sleep(3e3), GM_setValue("homeUrl", location.href), showTip("初始化完成,5秒后开始播放"), yield sleep(3e3); let t = document.querySelectorAll("tr")[2].lastChild; null === (e = t.querySelector("a")) || void 0 === e || e.click(), this.handleClickSpeedUp(), setTimeout(() => { window.close() }, 5e3) }) } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll(".cvtb-MCK-course-content"), yield sleep(100); for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) { let t = ElementObj.$allTask[e].querySelector(".cvtb-MCK-CsCt-studyProgress"); if (100 != parseInt(t.innerText)) { this.currentIndex = e; break } } ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => { this.handleClickSpeedUp() }, 3e3) }) } getVideoDom() { return new Promise(e => { let t = setInterval(() => { ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0)) }, 1e3) }) } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = "none", clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer); yield this.getVideoDom(); ElementObj.$video.volume = 0, yield sleep(200), ElementObj.$video.play(), setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator }, 3e3), 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* () { if (yield sleep(2e3), this.currentIndex >= ElementObj.$allTask.length - 1) { let e = GM_getValue("homeUrl", null); return GM_openInTab(e, {active: !0}), void setTimeout(() => { window.close() }, 3e3) } this.currentIndex += 1, setTimeout(() => { this.handleClickSpeedUp() }, 5e3) }) } listenPlayTime() { showTip("🔉课件正在学习,请务点击或长时间隐藏"); let e = 0; this.timer = setInterval(() => { e += 1; let t = ElementObj.$allTask[this.currentIndex].querySelector(".cvtb-MCK-CsCt-studyProgress"), n = parseInt(t.innerText), l = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`已监测${e}次,当前状态正在学习,当前播放进度为${n}%,视频总时长为${l}分钟`), 100 == n && (clearInterval(this.timer), this.addInfo("✅✅✅监测到当前任务已完成,5秒后自动切换下一节", 1), setTimeout(() => { this.playNext() }, 3e3)) }, 3e3) } listenRebort() { this.listenRebortTime = setInterval(() => { console.log("人机检测中==》》》"); let e = document.querySelector(".dialog-button-container button"); e && e.click() }, 1e4) } } jiaoyuganbuwang.ctxid = 26; class Addpanel { constructor() { this.$panelWrap = document.createElement("div"), this.$panelStyle = document.createElement("style"), this._init() } _init() { var e, t, n, l, i, o; this.$panelWrap.innerHTML = panelhtml, this.$panelStyle.innerHTML = panelcss, null === (e = document.querySelector("head")) || void 0 === e || e.appendChild(this.$panelStyle), 3 == toolOption.SchoolType ? null === (t = document.querySelector("#bigContainer")) || void 0 === t || t.appendChild(this.$panelWrap) : 7 == toolOption.SchoolType ? null === (n = document.querySelector(".layout-content")) || void 0 === n || n.appendChild(this.$panelWrap) : 11 == toolOption.SchoolType ? null === (l = document.querySelector(".task-dashboard-page")) || void 0 === l || l.appendChild(this.$panelWrap) : 18 == toolOption.SchoolType ? null === (i = document.querySelector(".screen_wide_1")) || void 0 === i || i.appendChild(this.$panelWrap) : null === (o = document.querySelector("body")) || void 0 === o || o.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.$playButton = document.querySelector("#playButton"), ElementObj.$ctxTipWrap = document.querySelector("#ctxTipWrap"), ElementObj.$ctxsection2 = document.querySelector(".ctxsection2"), ElementObj.$ctxcontrols = document.querySelector(".ctxcontrols"); let r = localStorage.getItem("mytoolkey"); r && this.handleSetHtml(r), this.optimizePannel(), this.setSpeedOption(), this.addEvent(), this.getSlogan() } optimizePannel() { -1 != [14, 24].indexOf(toolOption.SchoolType) && (toolOption.accelerator = 1, speedArr = [1]), 2 == toolOption.SchoolType && ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px", $el(".ipt-wrap").style.marginTop = "3px", ElementObj.$ipt.style.padding = "11px 3px"), 9 == toolOption.SchoolType && ($el(".handleKeyBtn").style.lineHeight = "16px"), 16 == toolOption.SchoolType && ($el(".cxtsection3").style.display = "block", ElementObj.$myTool = document.querySelector(".myTool")), -1 != [7, 12, 13, 22, 53].indexOf(toolOption.SchoolType) && (speedArr = [1, 2, 3], toolOption.accelerator = 3), -1 != [38, 45, 46, 52].indexOf(toolOption.SchoolType) && ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px"), 17 == toolOption.SchoolType && (toolOption.accelerator = 1, speedArr = [1, 10]), 18 == toolOption.SchoolType && ($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]), 19 == toolOption.SchoolType && (toolOption.accelerator = 1, speedArr = [1], $el(".myTool").style.width = "202px"), 23 == toolOption.SchoolType && ($el(".myTool").style.top = "176px", toolOption.accelerator = 1, speedArr = [1]), 25 == toolOption.SchoolType && (toolOption.accelerator = 2, speedArr = [1, 2]), 26 == toolOption.SchoolType && ($el(".myTool").style.width = "202px"), 16 == toolOption.SchoolType && (2 == Internetcourse.gzjxjy.runtype && (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$speedSelect = document.querySelector(".ctxsection2"), ElementObj.$speedSelect.style.display = "none"), 1 == Internetcourse.gzjxjy.runtype && (ElementObj.$ctxsection3 = document.querySelector(".cxtsection3"), ElementObj.$ctxsection3.style.display = "none")), 32 != toolOption.SchoolType && 36 != toolOption.SchoolType || ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px", speedArr = [1, 1.1]), 37 == toolOption.SchoolType && (speedArr = [1, 2, 5]), 38 == toolOption.SchoolType && (speedArr = [1, 2]), 40 == toolOption.SchoolType && (speedArr = [1, 2]), 41 == toolOption.SchoolType && (speedArr = [1]), 51 == toolOption.SchoolType && ($el(".myTool").style.left = "76px", speedArr = [1, 2, 10], toolOption.accelerator = 2) } setSpeedOption() { ElementObj.$speedSelect = document.querySelector("#ctxspeed"); let e = ""; for (var t = 0; t < speedArr.length; t++) { e += `\n \n ` } ElementObj.$speedSelect.innerHTML = e; var n = localStorage.getItem("_localSpeed"); n && (ElementObj.$speedSelect.value = n, toolOption.accelerator = Number(n)) } handleSetHtml(e) { try { ElementObj.$ipt.style.display = "none", ElementObj.$title3.innerText = "当前key:", ElementObj.$mytoolkey.innerText = e, ElementObj.$mytoolkey.style.display = "block", ElementObj.$nokey.style.display = "none", ElementObj.$removeKey.style.display = "block", ElementObj.$addKey.style.display = "none", ElementObj.userKey = e } catch (e) { } } addEvent() { ElementObj.$addKey.addEventListener("click", () => { toolOption.CtxMain.handleAddKey(e => { this.handleSetHtml(e) }) }), ElementObj.$removeKey.addEventListener("click", () => { toolOption.CtxMain.handleRemoveKey() }), ElementObj.$handleSpeedUp.addEventListener("click", () => { toolOption.CtxMain.handleClickSpeedUp() }), ElementObj.$ctxsection2.addEventListener("change", e => { toolOption.CtxMain.handleChangeCtxSpeed(e.target.value) }), ElementObj.$ctxcontrols.addEventListener("click", () => { let e = document.querySelector(".myTool-content"), t = GM_getValue("hideCtx", null); t ? (e.style.height = "auto", ElementObj.$ctxcontrols.innerText = "×") : (e.style.height = "0px", ElementObj.$ctxcontrols.innerText = "🔛"), GM_setValue("hideCtx", !t) }) } getSlogan() { fetchData({url: bserUrl + "/getslogan", method: "GET"}).then(e => { ElementObj.$slogan = document.querySelector("#slogan"), ElementObj.$slogan.innerHTML = e.result.text1 }) } } function $el(e, t = window.document) { const n = t.querySelector(e); return null === n ? void 0 : n } function sleep(e) { return new Promise(t => setTimeout(t, e)) } function fetchData(e) { return new Promise(t => { try { GM_xmlhttpRequest(Object.assign(Object.assign({}, e), { onload: function (e) { 200 == e.status && t(JSON.parse(e.response)) } })) } catch (n) { fetch(e.url, {method: e.method}).then(e => e.json()).then(e => { t(e) }) } }) } function showTip(e, t = 1500, n) { ElementObj.$ctxTipWrap.style.display = "block", ElementObj.$ctxTipWrap.innerText = e; setTimeout(() => { ElementObj.$ctxTipWrap.style.display = "none" }, t); n && alert(e) } function recognitionType() { let current_host = location.host; if (!/www.gaozhiwang.top/.test(current_host)) { for (let key in Internetcourse) { if (Internetcourse[key].host.includes(current_host) && (toolOption.CtxMain = eval(key), toolOption.SchoolType = Internetcourse[key].id), /www.ttcdw.cn/.test(current_host)) { let e = document.querySelector("#paramsUn"); toolOption.SchoolType = Internetcourse.beijingjiaoshi.id, toolOption.CtxMain = beijingjiaoshi } if (/gzjxjy.gzsrs.cn/.test(current_host)) { let e = document.querySelector(".survey-header-subtitle"); e ? (toolOption.CtxMain = gzjxjy_Answer, Internetcourse.gzjxjy.runtype = 2) : (toolOption.CtxMain = gzjxjy, Internetcourse.gzjxjy.runtype = 1), toolOption.SchoolType = Internetcourse.gzjxjy.id } } toolOption.CtxMain || (toolOption.CtxMain = zjzjsrc, toolOption.SchoolType = Internetcourse.zjzjsrc.id) } } function hack() { var e; const t = null == (e = $el(".video-study")) ? void 0 : e.__vue__, n = () => { }; t.checkout = n, t.notTrustScript = n, t.checkoutNotTrustScript = n; const l = t.videoClick; t.videoClick = function (...e) { const n = new PointerEvent("click"), i = Object.create({isTrusted: !0}); return Object.setPrototypeOf(i, n), e[e.length - 1] = i, l.apply(t, e) }, t.videoClick = function (...e) { return e[e.length - 1] = {isTrusted: !0}, l.apply(t, e) } } setTimeout(() => { if (recognitionType(), 1 == toolOption.SchoolType) try { hack() } catch (e) { } toolOption.CtxMain = new toolOption.CtxMain, new Addpanel }, 5e3) }();