// ==UserScript==
// @name 网课视频学习助手
// @namespace http://tampermonkey.net/
// @version 3.5.1
// @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
// ==/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<div class="myTool">\n <div class="controls ctxcontrols">×</div>\n <div class=''><a style="color: black;" href="${basehost}" target="_blank">📺高智Ai自动学习程序</a></div>\n \n <div class="myTool-content">\n <div class="nokey">\n <div class="btns">\n <div class="btn1"\n style="text-align: center;color: #1776FDFF;text-decoration: underline;margin: 5px 0;cursor: pointer;">\n <a href="${basehost}" target="_blank">点击获取Key</a>\n </div>\n <a href="${basehost}" id="slogan" target="_blank" style="text-decoration: none;">\n \n </a>\n </div>\n </div>\n \n <div class="cxtsection ctxsection1">\n <div class="ctx-title title3">\n 输入Key:\n </div>\n <div class="ipt-wrap" style="display: flex;align-items: center;justify-content: space-between;">\n <input class="mytoolkeyipt" />\n <div style="width: 120px;height: 18px;margin-right: 5px;display: none;" class="mytoolkey"></div>\n <button class="handleKeyBtn addkey-btn" id="addKey">绑定</button>\n <button class="handleKeyBtn removkey-btn" id="removeKey">解绑</button>\n </div>\n </div>\n\n <div class="cxtsection ctxsection2">\n <div class="ctx-title">\n 设置倍速:\n </div>\n <select name="" id="ctxspeed" class="speed-select">\n <option value="1" class="option">\n × 1.0\n </option>\n <option value="5" class="option">\n × 5.00\n </option>\n <option value="10" class="option" selected="selected">\n × 10.00\n </option>\n <option value="16" class="option">\n × 16.00\n </option>\n </select>\n </div>\n \n <div class="cxtsection ctxsection3">\n <div class="ctx-title">\n 意见反馈:\n </div>\n <a href="${basehost}"><div class="feedbackBtn">去反馈</div></a>\n </div>\n \n <div class="scriptTip" style="display: none;border-radius: 4px;margin-top: 9px;font-size: 12px;background: rgba(108,201,255,0.5);box-sizing: border-box;padding: 5px;">\n <div class="title">提示:</div>\n <p style="margin: 6px 0;">1.兴趣课全网目前仅支持最高1.5倍速</p>\n </div>\n <div class="cxtsection cxtsection3" style="display: none"> \n <div class="ctx-title">\n 当前作答题目:\n </div>\n <div class="ctxtopic-name">贵州省贵阳市毓秀路27号贵州省人才大市场4楼</div>\n </div>\n \n <div class="handleSpeedUp">点击加速</div>\n </div>\n \n <div id="ctxTipWrap" class="ctxTipWrap"></div>\n</div>\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 = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;list-style: none;">${e}</li>`;
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 = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;">${e}</li>`;
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 <div class="cxtsection cxtsection4">\n <div class="tag">未搜索到</div>\n <div class="ctxtopic-name">${e.topicName}</div>\n </div>\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 = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;list-style: none;">${e}</li>`;
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 <option value="${1.1 == speedArr[t] ? 1 : speedArr[t]}" class="option">\n × ${1.1 == speedArr[t] ? 1.2 : speedArr[t]}.0\n </option>\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)
}();