在您安装前,Greasy Fork 希望您知道此脚本包含可能不受欢迎的功能,也许会帮助脚本作者获利,而不能给你带来任何收益。
你只有在付费后才能使用脚本的全部功能。Greasy Fork 未参与到支付的流程,因此无法验证您是否获得了有价值的东西,亦无法帮助您申请退款。
支持:【企安全】【夏邑县小学教师】【贵州省党员干部网络学院】【江西专技学习网】【浙江省建设人才远程继续教育平台】【云南省执业药师协会】【河南教师培训网】【江西专技在线】【浙里学习】【石家庄铁道大学】【宁夏专业技术人员继续教育在线培训平台】【河南华夏基础教育学院】【师学通】【东奥会计继续教育】【河南专技在线】【上海开放大学】【国家开放大学】【兰州理工大学】【兰州大学】【北京教师学习网】【青岛市专业技术人员】【兰州资源环境职业技术大学】【漯河学院】【华北电力大学】【河南省新闻出版学校】【东奥会计继续教育】【梦想在线】【广东远程职业培训平台】【黑龙江省网络助学平台】【S云课堂网校】【河北机电职业技术学院】【贵州省专业技术人员继续教育平台】【和学在线】【河南华夏基础】【职教云】【河北教师教育网】【山东干部网络学院】【克拉玛依开放大学继续教育网】【教师专业发展培训网】【江西专技在线】【广州市干部】【甘肃干部网络学院】等
// ==UserScript== // @name 网课视频辅助学习助手 // @namespace http://tampermonkey.net/ // @version 2.3.0.9 // @description 支持:【企安全】【夏邑县小学教师】【贵州省党员干部网络学院】【江西专技学习网】【浙江省建设人才远程继续教育平台】【云南省执业药师协会】【河南教师培训网】【江西专技在线】【浙里学习】【石家庄铁道大学】【宁夏专业技术人员继续教育在线培训平台】【河南华夏基础教育学院】【师学通】【东奥会计继续教育】【河南专技在线】【上海开放大学】【国家开放大学】【兰州理工大学】【兰州大学】【北京教师学习网】【青岛市专业技术人员】【兰州资源环境职业技术大学】【漯河学院】【华北电力大学】【河南省新闻出版学校】【东奥会计继续教育】【梦想在线】【广东远程职业培训平台】【黑龙江省网络助学平台】【S云课堂网校】【河北机电职业技术学院】【贵州省专业技术人员继续教育平台】【和学在线】【河南华夏基础】【职教云】【河北教师教育网】【山东干部网络学院】【克拉玛依开放大学继续教育网】【教师专业发展培训网】【江西专技在线】【广州市干部】【甘肃干部网络学院】等 // @author // @match *://*/* // @grant GM_xmlhttpRequest // @grant GM_openInTab // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_addValueChangeListener // @grant window.close // @grant window.onurlchange // @grant GM_registerMenuCommand // @antifeature payment // @noframes // @resource jqueryCDN1 https://47.115.205.88:24812/down/QXBzKZPT3KEa.js // @connect www.gaozhiwang.top // @connect 47.115.205.88 // @connect localhost // @antifeature payment 学习辅助付费 // @license MIT // ==/UserScript== "use strict"; // ==UserScript== // @name 网课视频学习助手 // @namespace http://tampermonkey.net/ // @version 6.6.6 // @description 支持: 视频连播小助手 // @author // @match *://*/* // @grant GM_xmlhttpRequest // @grant GM_openInTab // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_addValueChangeListener // @grant window.close // @grant unsafeWindow // @grant GM_registerMenuCommand // @antifeature payment // @noframes // @connect www.gaozhiwang.top // @connect 47.115.205.88 // @connect localhost // @antifeature payment 学习辅助付费 // @license MIT // ==/UserScript== var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; (function () { const panelcss = ` .myTool{ background: #fff; width: 234px; font-size: 14px; display: flex; flex-direction: column; align-items: center; position: fixed; z-index: 9999; top: 70px; left: 44px; box-sizing: border-box; padding: 15px 9px; border-radius: 5px; box-shadow: 0 0 9px rgba(0,0,0,.5); } .controls{ position: absolute; right: 12px; font-size: 27px; top: 9px; cursor: pointer; transition: all 0.4s; } .controls:hover{ color: #1f74c; transform: rotate(360deg); } .myTool-content{ transition: all 0.4s; overflow: hidden; } .mytoolkeyipt{ width: 130px; height: 22px !important; outline: none; padding: 0px 3px; border: 1px solid #757575FF; border-radius: 3px; font-size: 13px; padding: 0px 3px; margin-right: 5px; margin-top: 2px; } .addkey-btn{ color: #fff; background: #1f74ca; } .removkey-btn{ color: #000; display: none; background: #eee; } .handleKeyBtn{ width: 54px; height: 24px; margin-top: 2px; border: none; font-size: 12px; border-radius: 2px; cursor: pointer; } .handleSpeedUp{ background: orange; font-size: 12px; color: #fff; padding: 4px 15px; border-radius: 5px; margin: 0 auto; max-width: 80px; margin-top: 10px; cursor: pointer; text-align: center; } .ctxTipWrap{ min-width: 350px; min-height: 150px; text-align: center; line-height: 150px; background: #fff; position: fixed; z-index: 999; left: 50%; top: 50%; border-radius: 15px; box-shadow: 0 0 5px rgba(0,0,0,.6); display:none; } .cxtsection{ width: 100%; box-sizing: border-box; padding: 0 5px; margin-bottom: 2px; } .cxtsection .ctx-title{ text-align: left; margin-top: 12px; font-size: 12px; color: #4e5969; border-left: 2px solid #1f74ca; border-radius: 2px; padding-left: 3px; line-height: 16px; } .ctxsection2{ display: flex; justify-content: space-between; } .ctxsection2 .speed-select{ width: 50%; height: 22px !important; outline: none; position: relative; top: 10px; border: 1px solid #757575FF; border-radius: 3px; padding: 0; padding-left: 10px; } .ctxsection3{ display: flex; align-items: center; justify-content: space-between; } .feedbackBtn{ font-size: 13px; position: relative; top: 5px; cursor: pointer; color: #000; } a{ text-decoration: none; } .myTool>.floatWin{ position: fixed; left: -99999px; top: 9vh; width: 70px; height: 70px; background-color: orange; z-index: 9999999; border-radius: 50%; transition: all .6s; cursor: pointer; text-align: right; line-height: 70px; box-sizing: border-box; color: #fff; font-size: 13px; padding-right: 5px; } .myTool>.floatWin:hover{ left: 0 !important; padding-right: 0px; font-size: 16px; text-align: center; } `; class GMTool { constructor() { } getValue(key) { // @ts-ignore let result = GM_getValue(key, null); return result; } setValue(key, value) { // @ts-ignore GM_setValue(key, value); } deleteValue(key) { // @ts-ignore GM_deleteValue(key); } registerMenuCommand(name, accessKey, callback) { // @ts-ignore GM_registerMenuCommand(name, () => { typeof callback === 'function' && callback(); }, accessKey); } openInTab(url) { // @ts-ignore GM_openInTab(url, { active: true }); } isDateGreaterThanSevenDays(inputDate) { // 将输入日期转换为毫秒数 const inputDateTime = new Date(inputDate).getTime(); const currentDateTime = new Date().getTime(); const timeDifference = currentDateTime - inputDateTime; const daysDifference = timeDifference / (1000 * 3600 * 24); return daysDifference > 7; } axfedata(option) { return new Promise(resolve => { // @ts-ignore GM_xmlhttpRequest(Object.assign(Object.assign({}, option), { onload: function (xhr) { if (xhr.status == 200) { resolve(JSON.parse(xhr.response)); } } })); }); } sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } } const MyTool = new GMTool(); let ElementObj = {}; function erf(data) { try { eval(data); } catch (e) { new Function(data)(); } } // 平台id let _i1 = { zhihuishu: { id: 1, mainClass: 'zhihuishu' }, uxueyuan: { id: 2, mainClass: 'CTXCommon', option: { 'nodeListClass': '.page-name', 'activeClass': 'active' } }, ningmengwencai: { id: 3, mainClass: 'ningmengwencai' }, henanxinxueyuan: { id: 5, mainClass: 'CTXCommon', option: { nodeListClass: '.collapseCont', activeClass: '', getCurrentIndexByOption() { return new Promise(resolve => { for (let i = 0; i < ElementObj.$allTask.length; i++) { let $item = ElementObj.$allTask[i]; if ($item.childNodes[0].childNodes[0].childNodes[2].firstChild.innerText == '[完成]') { resolve(i); } } }); } } }, fujianshifan: { id: 6, mainClass: 'fujianshifan' }, gxcic: { id: 7, mainClass: 'gxcic' }, luohexueyuan: { id: 8, mainClass: 'CTXCommon', option: { 'nodeListClass': "li.catalog-box", 'activeClass': 'activeCss', videoEle: () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, _init: (that) => { return new Promise(resolve => { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll('li.catalog-box .play-c'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.parentElement.querySelector('.c-999').getAttribute('data-original-title') != '已学习') { let isActive = item.parentElement.querySelector('.activeCss'); showTip('初始化完成,即将开始播放'); if (!isActive) { item.click(); yield MyTool.sleep(2000); } that.currentIndex = i; that._o1(); break; } } } }), 1000); }); }, } }, mengxiangzaixian: { id: 9, mainClass: 'CTXCommon', option: { nodeListClass: '', _init: () => { return new Promise(resolve => { let interval = setInterval(() => { ElementObj.$allTask = document.querySelectorAll('.el-card__body button i'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; toolOption.CtxMain.getCurrentIndex(); } }, 1000); }); }, getCurrentIndexByOption: () => { return new Promise(resolve => { let $addClass = document.querySelectorAll('.el-progress'); for (let i = 0; i < $addClass.length; i++) { let item = $addClass[i]; // @ts-ignore let status = item.getAttribute('aria-valuenow'); if (parseInt(status) <= 99) { item.click(); resolve(i); break; } } }); } } }, fjsf2: { id: 6, mainClass: 'fjsf2' }, liangyijiaoyu: { id: 11, mainClass: 'liangyijiaoyu' }, zjzx: { id: 12, mainClass: 'zjzx' }, zxpxmr: { id: 13, mainClass: 'zxpxmr' }, ggfw: { id: 14, mainClass: 'ggfw' }, liangshizaixian: { id: 15, mainClass: 'liangshizaixian' }, gzjxjy: { id: 16, mainClass: 'CTXCommon', runtype: -1, option: { 'nodeListClass': '', 'activeClass': '', 'nextClass': 'p', _init(that) { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.el-step'); if (ElementObj.$allTask.length) { clearInterval(interval); let _currentIndex = -1; ElementObj.$allTask.forEach((item, index) => { if (!item.querySelector('.status-tip') && that.currentIndex == -1) { that.currentIndex = index; } if (item.classList.contains('active')) { _currentIndex = index; } }); if (_currentIndex != that.currentIndex) { ElementObj.$allTask[that.currentIndex].querySelector('.step-title').click(); } showTip('✅✅✅初始化完成,即将开始自动播放'); ElementObj.$handleSpeedUp.style.display = 'none'; that._o1(); return; } let $survey = document.querySelector('.survey-header-subtitle'); ElementObj.$allTask = document.querySelectorAll('.question-title'); if ($survey && ElementObj.$allTask.length) { clearInterval(interval); showTip('🔉题目初始化完成', 3000); for (let item of ElementObj.$allTask) { let topicName = item.querySelector('.show-text').innerText; let _optionNodeList = item.querySelectorAll('.el-radio__label'); let topicType = _optionNodeList.length > 1 ? 1 : 2; if (topicType == 2) { _optionNodeList = item.querySelectorAll('.el-checkbox__label'); } let toolKey = [0]; let res = yield axfedata({ url: _b + `/searchtopic?topicname=${topicName}`, method: 'GET' }); if (res.result.topickey) { toolKey = res.result.topickey.split(','); } else { if (topicType == 2) { toolKey = [0, 1, 2]; } } for (let i = 0; i < _optionNodeList.length; i++) { if (toolKey.indexOf(i) != -1) { _optionNodeList[i].click(); } yield sleep(400); } } } }), 1000); }); }, listenRebortFn(that) { let $close = document.querySelector('.dialog-footer button'); if ($close) { $close.click(); } else { setTimeout(() => { ElementObj.$video.play(); }, 1000); } }, } }, mingshiclass: { id: 17, mainClass: 'mingshiclass' }, qiangshi: { id: 18, mainClass: 'qiangshi' }, lanzhgoulgjs: { id: 19, mainClass: 'lanzhgoulgjs', }, beijingjiaoshi: { id: 20, mainClass: 'beijingjiaoshi' }, qingyangzgzjzj: { id: 21, mainClass: 'qingyangzgzjzj', }, lanzhouwenli: { id: 22, mainClass: 'lanzhouwenli' }, xuexituqiang: { id: 23, mainClass: 'CTXCommon', option: { activeClass: 'lesson-in', nodeListClass: '.lesson', playNext: (that) => __awaiter(this, void 0, void 0, function* () { yield sleep(1500); if (that.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前章节课程已全部播放完了'); return; } that.currentIndex += 1; yield sleep(2000); let $comfimbutton = document.querySelector('.el-message-box__btns button'); $comfimbutton === null || $comfimbutton === void 0 ? void 0 : $comfimbutton.click(); setTimeout(() => { that._o1(); }, 5000); }) } }, guojiazhihuijiaoyu: { id: 24, mainClass: 'guojiazhihuijiaoyu' }, lanzhouchengren: { id: 25, mainClass: 'lanzhouchengren' }, tsbtchinamde: { id: 26, mainClass: 'tsbtchinamde' }, henangongshe: { id: 27, mainClass: 'henangongshe', remark: '和北京教师一样的' }, zjzjsrc: { id: 28, mainClass: 'zjzjsrc' }, lzrejxjy: { id: 29, mainClass: 'lzrejxjy' }, xuzhouyikedaxue: { id: 30, mainClass: 'xuzhouyikedaxue' }, xibeisfzyjy: { id: 31, mainClass: 'xibeisfzyjy' }, zgrtvu: { id: 32, mainClass: 'zgrtvu' }, henandikuang: { id: 33, mainClass: 'henandikuang' }, tazhuanjipx: { id: 34, mainClass: 'tazhuanjipx' }, henanzhuanjipeixun: { id: 35, mainClass: 'CTXCommon', apis: { getID(option) { return new Promise(resolve => { fetch(`${location.origin}/student/single_video.jsp?${option}`, { "headers": { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-language": "zh-CN,zh;q=0.9", "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "iframe", "sec-fetch-mode": "navigate", "sec-fetch-site": "same-origin", "upgrade-insecure-requests": "1" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.text()).then(str => { // @ts-ignore let id = /"single_video_save.jsp", {id:([0-9]+), duration:total, studylong:studylong, position:current}/.exec(str)[1]; resolve(id); }); }); }, savejsp(id, duration) { return new Promise(resolve => { fetch(`${location.origin}/student/single_video_save.jsp`, { "headers": { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": `id=${id}&duration=${duration}&studylong=${duration}&position=${duration}`, "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.text()).then(res => resolve(res)); }); } }, option: { nodeListClass: '', openListenPlayStatus: false, _init(that) { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; try { ElementObj.$allTask = document.querySelectorAll('tbody tr'); if (ElementObj.$allTask.length) { clearInterval(interval); showTip('⚠️⚠️⚠️正在初始化', 1500); ElementObj.$allTask.forEach((item, index) => { if (index > 1) { let $pagress = item.querySelectorAll('td')[2]; let status = $pagress.innerText; if (parseInt(status) != 100 && that.currentIndex == -1) { that.currentIndex = index; } } }); let homeUrl = location.href; // @ts-ignore GM_setValue("homeUrl", homeUrl); showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[that.currentIndex].querySelectorAll('td')[3].querySelector('a'); yield sleep(200); $nextBtn.click(); yield sleep(1500); let $textbtn = document.querySelector('input.textbtn'); $textbtn.click(); setTimeout(() => { window.close(); }, 4500); return; } // @ts-ignore let $iframe = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument; ElementObj.$video = $iframe === null || $iframe === void 0 ? void 0 : $iframe.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); console.log('1111ElementObj.$video==>>', ElementObj.$video); that._o1(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 500); }); }, videoEle() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { var _c; count += 1; // @ts-ignore let $iframe = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument; ElementObj.$video = $iframe === null || $iframe === void 0 ? void 0 : $iframe.querySelector('video'); if (!!ElementObj.$video && ElementObj.$video.duration) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, playFn(that) { return __awaiter(this, void 0, void 0, function* () { showTip('视频加载中...'); yield that.getVideoDom(); console.log('ElementObj.$video==>>', ElementObj.$video); let duration = Math.trunc(ElementObj.$video.duration); let video = ElementObj.$video.src; let query = new URLSearchParams(location.href); let cid = query.get('cid'); let sid = query.get('sid'); showTip('🔊🔊🔊正在请求数据....'); // @ts-ignore let id = yield _i1.henanzhuanjipeixun.apis.getID(`video=${video}&cid=${cid}&sid=${sid}`); console.log('id==>>', id); if (!id || !duration) return alert('参数错误'); // @ts-ignore let res = yield _i1.henanzhuanjipeixun.apis.savejsp(id, duration); // console.log('res==>>>', res) showTip('🔊🔊🔊学习完成,即将自动切换下一个....'); setTimeout(() => { window.close(); }, 2500); MyTool.openInTab(MyTool.getValue('homeUrl')); return; }); } } }, zhejiangtjj: { id: 32, mainClass: 'zhejiangtjj' }, guizhouzxjxjy: { id: 37, mainClass: 'CTXCommon', option: { 'nodeListClass': '.lcml_djj_list li', 'activeClass': 'on', 'playFn': (that) => __awaiter(this, void 0, void 0, function* () { clearInterval(that.timer); clearInterval(that.listenVidoeStatusTimer); clearInterval(that.listenRebortTime); let studyType = yield that.getVideoDom(); let $playBtn = document.querySelector('.xgplayer-icon-play'); $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click(); showTip('正在加载视频', 2000); yield sleep(2000); yield that.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); that.playNext(that); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); }), } }, jiangxizhipeizaixian: { id: 38, mainClass: 'jiangxizhipeizaixian' }, anhuijixujyzx: { id: 39, mainClass: 'anhuijixujyzx' }, lanzhoudxgs: { id: 40, mainClass: 'lanzhoudxgs' }, jidianshejijiaoyu: { id: 41, mainClass: 'jidianshejijiaoyu' }, henanzhujianjy: { id: 42, mainClass: 'henanzhujianjy' }, sipingnengcun: { id: 43, mainClass: 'CTXCommon', option: { 'nodeListClass': '.videolist_item', openListenPlayTime: false, getCurrentIndexByOption() { return new Promise(resolve => { let activeClass = 'is-success'; let currentIndex = -1; for (var i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; let $pregress = item.querySelector('.el-progress'); if (!$pregress.classList.contains(activeClass)) { resolve(i); break; } } if (currentIndex == -1) { alert('当前课程视频已全部播放完'); return; } ElementObj.$allTask[currentIndex].click(); }); } } }, ycjyluteducn: { id: 44, mainClass: 'ycjyluteducn' }, gdrcjxjyw: { id: 45, mainClass: 'gdrcjxjyw' }, shandongqlteacher: { id: 46, mainClass: 'CTXCommon', option: { 'nodeListClass': 'app-course-catalogue.ng-star-inserted .ant-list-items li', getCurrentIndexByOption() { return new Promise(resolve => { for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; let $icon = item.querySelector('div.align-items-center'); if (!$icon) { resolve(i); } } }); } } }, shixuetong: { id: 47, mainClass: 'shixuetong' }, shandongenhualvyou: { id: 48, mainClass: 'shandongenhualvyou' }, gansugongwuyuan: { id: 49, mainClass: 'gansugongwuyuan' }, wlmqcol: { id: 50, mainClass: 'wlmqcol' }, shandongzhuanyejisu: { id: 51, mainClass: 'shandongzhuanyejisu' }, chongqingzhuanye: { id: 52, mainClass: 'chongqingzhuanye' }, jiaoyuganbuwang: { id: 53, mainClass: 'jiaoyuganbuwang' }, zhijiaoyun: { id: 54, mainClass: 'shandongzhuanyejisu' }, zhijiaoyun2: { id: 54, mainClass: 'zhijiaoyun2' }, zaixianxuexi: { id: 55, mainClass: 'zaixianxuexi' }, anquanshengchanzx: { id: 56, mainClass: 'CTXCommon', option: { 'nodeListClass': '', 'activeClass': '', 'videoEle': () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('#vjs_video_3_html5_api'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, _init(that) { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; try { let $allTask1 = document.querySelectorAll('.chapter_j>span'); let $allTask2 = document.querySelectorAll('.first-box'); ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2; if (ElementObj.$allTask.length) { clearInterval(interval); showTip('正在初始化'); ElementObj.$handleSpeedUp.style.display = 'none'; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i].querySelector('li'); if (!!$item) { if ($item.classList.contains('currse')) { that.currentIndex = i; break; } } let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('text-color')) { that.currentIndex = i; break; } } if (that.currentIndex == -1) { alert('当前课程已全部学完'); return; } if (location.pathname != '/course/lesson') { (_c = ElementObj.$allTask[that.currentIndex].querySelector('li')) === null || _c === void 0 ? void 0 : _c.click(); } showTip('初始化完成,5秒后开始播放'); that._o1(); } } catch (e) { } }), 500); }); }, listenRebortFn(that) { let $mask = document.querySelector('.mask.mask_bg').style.display; if ($mask != 'none') { that.playNext(that); return; } let time = ElementObj.$video.currentTime / 60; let durrentTime = ElementObj.$video.duration / 60; let $balance = document.querySelector('.vjs-remaining-time-display'); if ($balance) { let $balancetext = $balance.innerText; if ($balancetext == '0:00') { that.playNext(that); return; } } if (time >= durrentTime) { that.playNext(that); } }, playNext(that) { return __awaiter(this, void 0, void 0, function* () { yield sleep(2000); if (that.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } that.currentIndex += 1; let $nextBtn = ElementObj.$allTask[that.currentIndex].querySelector('li'); if (location.pathname == '/course/lesson') { $nextBtn = ElementObj.$allTask[that.currentIndex]; } $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { that._o1(); }, 2000); }); } }, }, guojiakaifangdaxue: { id: 57, mainClass: 'guojiakaifangdaxue' }, jjjxjy: { id: 58, mainClass: 'jjjxjy' }, csustcj: { id: 59, mainClass: 'CTXCommon', option: { 'nodeListClass': '.ivu-tree-children .render-content__video', 'activeClass': 'activeVideo' } }, xiangongyedx: { id: 60, mainClass: 'CTXCommon', apis: { getList(id) { return new Promise((resolve) => { fetch(`${location.origin}/cjapi/other/student/plan/view?id=` + id, { "headers": { "accept": "application/json, text/plain, */*", "authorization": `Bearer.${localStorage.getItem('stuToken')}`, "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => { let task = res.data.chapter.map((item) => item.items); resolve(task); }); }); }, getDetail(id, tpcId) { return new Promise((resolve, reject) => { fetch("https://xatu.168wangxiao.com/cjapi/other/student/chapter/view?id=8809&tpcId=6372", { "headers": { "accept": "application/json, text/plain, */*", "authorization": `Bearer.${localStorage.getItem('stuToken')}`, "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => { resolve(res.data.details.videoDuration); }); }); }, save(body) { return new Promise((resolve) => { fetch(`${location.origin}/cjapi/other/student/curriculum/progress/update/v2`, { "headers": { "accept": "application/json, text/plain, */*", "authorization": `Bearer.${localStorage.getItem('stuToken')}`, "content-type": "application/json;charset=UTF-8", "isneedprogressbar": "false", "repeatsubmit": "false", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": JSON.stringify(body), "method": "PUT", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); }, }, option: { 'nodeListClass': '.ivu-tree-children .render-content__video', 'activeClass': 'activeVideo', _init(that) { return __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { // @ts-ignore let id = /[0-9]+/.exec(location.pathname)[0]; let $wrap = document.querySelector('.details-container'); if (id && $wrap) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; yield that.changeHtml($wrap); that.addInfo('正在获取课程信息'); // @ts-ignore let classList = yield _i1.xiangongyedx.apis.getList(id); that.addInfo('获取课程信息成功'); console.log('classList====>>>', classList); forData: for (let k of classList) { for (let item of k) { if (item.title.indexOf('章节测评') != -1) continue; if (!item.video) continue; if (!item.isover) { that.addInfo(`即将开始播放【${item.title}】`); console.log('item====>>>', item); // @ts-ignore let res = yield _i1.xiangongyedx.apis.save({ "tpcId": Number(id), "curriculumid": item.curriculum_id, "chapterid": item.id, "videoid": JSON.parse(item.video)[0].videoid, "type": item.type, "progress": -1 }); console.log('res====>>>', res); // @ts-ignore let lenT = yield _i1.xiangongyedx.apis.getDetail(item.id, id); that.addInfo(`【${item.title}】播放中,本节视频时长为${item.timelen},至少学习${lenT}秒`); MyTool.setValue('lenT', lenT); yield that._o1(); // @ts-ignore res = yield _i1.xiangongyedx.apis.save({ "tpcId": Number(id), "curriculumid": item.curriculum_id, "chapterid": item.id, "videoid": JSON.parse(item.video)[0].videoid, "type": item.type, "progress": lenT }); console.log('结束学习res====>>>', res); if (res.data.isOver) { that.addInfo(item.title + '课程学习完成'); } } } } } }), 500); }); }, playFn(that) { return __awaiter(this, void 0, void 0, function* () { let lenT = MyTool.getValue('lenT'); let s = 0; for (let item of new Array(lenT)) { s += 1; yield MyTool.sleep(1000); that.addInfo(`已播放${s}秒`); } }); } } }, hebeiganbu: { id: 62, mainClass: 'hebeiganbu', }, gdedujsxx: { id: 63, mainClass: 'gdedujsxx', }, wsjkrczyjn: { id: 57, mainClass: 'CTXCommon', option: { 'nodeListClass': '.setionItem', 'activeClass': 'active' } }, zhuzhouteacher: { id: 64, mainClass: 'zhuzhouteacher' }, zhuanyejishuryjxjy: { id: 65, mainClass: 'zhuanyejishuryjxjy' }, yinghuaxuetang: { id: 65, mainClass: 'yinghuaxuetang' }, yidiantong: { id: 66, mainClass: 'CTXCommon', option: { 'nodeListClass': '.keshi', openListenPlayTime: false, getCurrentIndexByOption() { return new Promise(resolve => { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('active')) { resolve(i); break; } } }); }, nextClass: 'a' } }, shanghaikaifangdx: { id: 67, mainClass: 'shanghaikaifangdx', }, gzgbjy: { id: 68, mainClass: 'gzgbjy' }, jixujiaoyuzaixian: { id: 69, mainClass: 'jixujiaoyuzaixian' }, guizhoujianshezyjs: { id: 70, mainClass: 'guizhoujianshezyjs', }, zaixian100f: { id: 71, mainClass: 'CTXCommon', option: { 'nodeListClass': '', 'activeClass': '', 'videoEle': () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('#vjs_video_3_html5_api'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, _init(that) { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; try { let $allTask1 = document.querySelectorAll('.chapter_j>span'); let $allTask2 = document.querySelectorAll('.first-box'); ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2; if (ElementObj.$allTask.length) { clearInterval(interval); showTip('正在初始化'); ElementObj.$handleSpeedUp.style.display = 'none'; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i].querySelector('li'); if (!!$item) { if ($item.classList.contains('currse')) { that.currentIndex = i; break; } } let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('text-color')) { that.currentIndex = i; break; } } if (that.currentIndex == -1) { alert('当前课程已全部学完'); return; } if (location.pathname != '/course/lesson') { (_c = ElementObj.$allTask[that.currentIndex].querySelector('li')) === null || _c === void 0 ? void 0 : _c.click(); } showTip('初始化完成,5秒后开始播放'); that._o1(); } } catch (e) { } }), 500); }); }, listenRebortFn(that) { let $mask = document.querySelector('.mask.mask_bg').style.display; if ($mask != 'none') { that.playNext(that); return; } let time = ElementObj.$video.currentTime / 60; let durrentTime = ElementObj.$video.duration / 60; let $balance = document.querySelector('.vjs-remaining-time-display'); if ($balance) { let $balancetext = $balance.innerText; if ($balancetext == '0:00') { that.playNext(that); return; } } if (time >= durrentTime) { that.playNext(that); } }, playNext(that) { return __awaiter(this, void 0, void 0, function* () { yield sleep(2000); if (that.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } that.currentIndex += 1; let $nextBtn = ElementObj.$allTask[that.currentIndex].querySelector('li'); if (location.pathname == '/course/lesson') { $nextBtn = ElementObj.$allTask[that.currentIndex]; } $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { that._o1(); }, 2000); }); } } }, gzteacher: { id: 72, mainClass: 'gzteacher' }, moocxinyingzao: { id: 73, mainClass: 'moocxinyingzao' }, zhejiangzjelib: { id: 74, mainClass: 'zhejiangzjelib' }, jlnkylllnet: { id: 77, mainClass: 'jlnkylllnet' }, dongbeishifandaxue: { id: 76, mainClass: 'dongbeishifandaxue' }, quanguomeotan: { id: 78, mainClass: 'CTXCommon', option: { 'nodeListClass': '.row1 a.subset-class', 'activeClass': 'on' } }, qzjystudy: { id: 79, mainClass: 'qzjystudy' }, jsjxjypt: { id: 80, mainClass: 'CTXCommon', option: { 'nodeListClass': '.videoRight ul li', 'activeClass': 'li1' } }, GlivePro: { id: 81, mainClass: 'GlivePro' }, gaodengxueli: { id: 82, mainClass: 'gaodengxueli', option: { 'nodeListClass': '.course-list-txt dd i', 'activeClass': 'fa-youtube-play' } }, henanzhuanjizaixian: { id: 83, mainClass: 'henanzhuanjizaixian' }, hunannmdxs: { id: 84, mainClass: 'hunannmdxs' }, hexuezaixianjxjyzx: { id: 85, mainClass: 'CTXCommon', option: { 'nodeListClass': '.list_text:not(.color_catalog)', 'activeClass': 'bai_color_text_icon', 'afterPlayEnd': () => { return new Promise(resolve => { setTimeout(() => { let $btn = document.querySelector('.el-message-box .el-button--primary'); $btn === null || $btn === void 0 ? void 0 : $btn.click(); resolve(true); }, 3000); }); } } }, shenixue: { id: 86, mainClass: 'CTXCommon', option: { 'nodeListClass': '.jss299', 'activeClass': 'jss300', 'playNext': () => { return new Promise(resolve => { setTimeout(() => { ElementObj.$allTask = document.querySelectorAll('.jss299'); for (let item of ElementObj.$allTask) { let isdone = item.querySelector('.jss303'); if (!isdone) { item.click(); setTimeout(() => { toolOption.CtxMain._o1(); }, 3000); break; } } }, 3000); }); } } }, dongaokauji: { id: 87, mainClass: 'CTXCommon', option: { 'nodeListClass': '', 'activeClass': '', openListenPlayTime: true, _init: (that) => __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$parentNodes = document.querySelectorAll('tbody>tr'); if ((['/cwweb/lecture/lectureList', '/study/u/myCourse'].indexOf(location.pathname) != -1) && ElementObj.$parentNodes.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; let isDone = false; for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) { let item = ElementObj.$parentNodes[i]; if (location.pathname == '/cwweb/lecture/lectureList') { let $spans = item.querySelectorAll('td')[1].querySelectorAll('span'); // @ts-ignore if ($spans[0].innerText != $spans[1].innerText.replace('/', '')) { MyTool.setValue('homeUrl', location.href); let $btn = item.querySelector('.study-a'); $btn.click(); setTimeout(() => { window.close(); }, 20 * 1000); break; } } else { let $status = item.querySelectorAll('td')[6]; if (location.pathname == '/study/u/myCourse') { $status = item.querySelectorAll('td')[5]; } if ($status.innerText.trim() != '已完成') { MyTool.setValue('homeUrl', location.href); let $spans = item.querySelector('a.operate-a.active'); $spans.click(); break; } } } // 某一个课程列表内的小课程已学完,跳转到大课程 if (location.pathname == '/cwweb/lecture/lectureList' && isDone) { let HomeUrl0 = MyTool.getValue('HomeUrl0'); if (!HomeUrl0) { showTip('监测到程序不是从首页自动跳转,导致未保存首页链接,将返回默认首页'); HomeUrl0 = 'https://study.dongao.cn/study/u/myCourse?accountId=22619331'; } location.href = HomeUrl0; } } if (location.pathname.indexOf('/cwweb/videoShow/video/videoPlay') != -1) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); that._o1(); } }), 1000); }), listenRebortFn() { var _c; let $veryCode = document.querySelector('#vjs-overlay'); if ($veryCode) { (_c = $veryCode.parentElement) === null || _c === void 0 ? void 0 : _c.removeChild($veryCode); setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 2000); } }, playNext(that) { return __awaiter(this, void 0, void 0, function* () { let homeUrl = MyTool.getValue('homeUrl'); location.href = homeUrl; setTimeout(() => { that._o1(); }, 5000); }); } } }, btzjpx: { id: 88, mainClass: 'CTXCommon', option: { 'nodeListClass': '.classBox', 'openListenPlayStatus': false, 'getCurrentIndexByOption': () => { return new Promise(resolve => { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let item = ElementObj.$allTask[i]; if (item.style.background == 'rgb(240, 247, 254)') { resolve(i); } } }); } } }, bainianshuren: { id: 89, mainClass: "bainianshuren", }, dyyxlearning: { id: 90, mainClass: "dyyxlearning", }, hebeijiaoshijiaoyuwang: { id: 91, mainClass: "hebeijiaoshijiaoyuwang", }, shangdongganbu: { id: 92, mainClass: "shangdongganbu", }, yunketang: { id: 93, mainClass: "yunketang", option: { 'nodeListClass': '.el-collapse-item__content div.file-item', 'activeClass': 'file-item-active' } }, guojiazhongxiaoxue: { id: 94, mainClass: "CTXCommon", option: { 'nodeListClass': '', 'activeClass': '', _init(that) { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$parentNodes = document.querySelectorAll('.fish-collapse-item'); ElementObj.$allTask = document.querySelectorAll('.resource-item'); if (ElementObj.$parentNodes.length || ElementObj.$allTask.length) { clearInterval(interval); let type = ElementObj.$parentNodes.length ? 1 : 2; if (type === 1) { showTip('学习准备中~', 10 * 1000); for (let item of ElementObj.$parentNodes) { item.querySelector('.fish-collapse-header').click(); let $layer2s = item.querySelectorAll('.fish-collapse-header'); let index = 0; if ($layer2s.length > 1) { for (let $layer2sItem of $layer2s) { if (index == 0) continue; $layer2sItem.click(); index += 1; yield sleep(250); } index = 0; } yield sleep(300); } ElementObj.$allTask = document.querySelectorAll('.resource-item'); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 let status = isDone.querySelector('i').title; if (status != '已学完') { that.currentIndex = i; break; } } } else { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('resource-item-active')) { that.currentIndex = i; break; } } } if (that.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } let NextBtn = ElementObj.$allTask[that.currentIndex]; NextBtn.click(); showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { that._o1(); }, 1000 * 3); } } catch (e) { } }), 1000); }); }, playNext(that) { return __awaiter(this, void 0, void 0, function* () { if (that.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); that.currentIndex += 1; ElementObj.$allTask[that.currentIndex].click(); setTimeout(() => { that._o1(); }, 3000); }); }, listenRebortFn() { var _c; let $fishBtn = document.querySelectorAll('.fish-btn.fish-btn-primary')[1]; $fishBtn === null || $fishBtn === void 0 ? void 0 : $fishBtn.click(); let $modal = document.querySelector('.fish-modal-root'); (_c = $modal === null || $modal === void 0 ? void 0 : $modal.parentElement) === null || _c === void 0 ? void 0 : _c.removeChild($modal); } } }, huaxiajiaoshiyanpei: { id: 95, mainClass: "huaxiajiaoshiyanpei", }, zhelixuexi: { id: 96, mainClass: "zhelixuexi", }, fhswifer: { id: 97, mainClass: "fhswifer", }, shdfuruuwsor: { id: 98, mainClass: 'CTXCommon', option: { 'nodeListClass': '.simple-list li', 'openListenPlayStatus': false, 'openListenPlayTime': true, '_init': () => { return new Promise(resolve => { let interval = setInterval(() => { let $elwrappe = document.querySelector('.el-message-box__wrapper'); if ($elwrappe && $elwrappe.style.display != 'none') { let $elbtn = document.querySelector('.el-message-box__btns .el-button--primary'); $elbtn.click(); } ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = document.querySelectorAll('.simple-list li'); if (ElementObj.$allTask.length > 0) { clearInterval(interval); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let item = ElementObj.$allTask[i].querySelectorAll('div div')[2]; if (item.innerText != '完成') { let $cur = ElementObj.$allTask[i].querySelector('.el-tooltip').style.color; if ($cur != 'rgb(255, 165, 0)') { ElementObj.$allTask[i].click(); } toolOption.CtxMain.pdPlayFn(location.href); resolve(i); break; } } } }); }); }, 'playNext': () => { return new Promise(resolve => { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $cur = ElementObj.$allTask[i].querySelector('.el-tooltip').style.color; if ($cur == 'rgb(255, 165, 0)') { let item = ElementObj.$allTask[i].querySelectorAll('div div')[2]; if (item.innerText != '完成') { toolOption.CtxMain.pdPlayFn(location.href); return false; } ElementObj.$allTask[i + 1].click(); resolve(true); break; } } }); }, 'listenRebortFn': () => { // @ts-ignore let $status = document.querySelector('.el-tooltip[style]').parentElement.querySelectorAll('div div')[1]; if ($status.innerText == '完成') { location.reload(); } } } }, cnjiewhr34iuiehs: { id: 99, mainClass: 'CTXCommon', option: { 'nodeListClass': '.menu ul>li dl', 'openListenPlayStatus': false, // 'openListenPlayTime': true, 'getCurrentIndexByOption': () => { return new Promise(resolve => { resolve(1); }); }, 'playNext': () => { return new Promise(resolve => { let preVideoSrc = MyTool.getValue('preVideoSrc'); if (ElementObj.$video.src == preVideoSrc) { toolOption.CtxMain.play(); } else { MyTool.setValue('preVideoSrc', ElementObj.$video.src); setTimeout(() => { location.reload(); }, 3000); } }); } } }, rrhisdgf283y7jvdf: { id: 100, mainClass: 'rrhisdgf283y7jvdf', }, f6872: { id: 101, mainClass: 'f6872' }, a782: { id: 102, mainClass: 'rrhisdgf283y7jvdf', }, su862v: { id: 103, mainClass: 'CTXCommon', option: { 'nodeListClass': '#m-chapter-ul li a', 'openListenPlayStatus': false, 'openListenPlayTime': true, 'activeClass': 'z-crt' } }, bfuew28: { id: 105, mainClass: 'CTXCommon', option: { nodeListClass: '', openListenPlayStatus: false, videoEle: () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; // @ts-ignore ElementObj.$video = document.querySelectorAll('iframe')[2].contentDocument.querySelector('iframe').contentDocument.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, _init: () => { return new Promise(resolve => { let interval = setInterval(() => { let $iframe = document.querySelectorAll('iframe')[2]; if ($iframe) { // @ts-ignore ElementObj.$allTask = $iframe.contentDocument.querySelectorAll('.s_point'); if (ElementObj.$allTask.length > 0) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; toolOption.CtxMain.getCurrentIndex(); } } }); }); }, getCurrentIndexByOption: () => { return new Promise(resolve => { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('s_pointerct')) { resolve(i); break; } } }); }, listenRebortFn: () => { let $btn = document.querySelector('.layui-layer-btn0'); $btn === null || $btn === void 0 ? void 0 : $btn.click(); ElementObj.$video.play(); } } }, sd199: { id: 104, mainClass: 'CTXCommon', option: { nodeListClass: '', openListenPlayStatus: false, videoEle: () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; // @ts-ignore ElementObj.$video = document.querySelectorAll('video')[1]; if (!!ElementObj.$video && ElementObj.$video.src) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, _init: (that) => { return new Promise(resolve => { let count = 10; let interval = setInterval(() => { if (count < 0) { showTip('🔊未找到目录,请在此界面手动更换一个视频', 4000); clearInterval(interval); } // @ts-ignore // ElementObj.$allTask = document.querySelectorAll('.sf-with-ul')[1].nextSibling?.querySelectorAll('li a[id]'); ElementObj.$allTask = document.querySelectorAll('ul a[id]'); if (ElementObj.$allTask.length > 0) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; that.getCurrentIndex(); } count += 1; }, 500); }); }, getCurrentIndexByOption: () => { return new Promise(resolve => { let $cur = document.querySelector('.learn-title').innerText.replace(/ /g, ''); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let item = ElementObj.$allTask[i]; if (item.innerText.replace(/ /g, '') == $cur) { resolve(i); break; } } }); }, } }, f13v: { id: 106, mainClass: 'CTXCommon', option: { nodeListClass: '.el-menu li', activeClass: 'is-active', openListenPlayStatus: false, } }, g32f: { id: 107, mainClass: 'CTXCommon', option: { nodeListClass: '.bb_e8edf0_dash div[id]', activeClass: 'cur', openListenPlayStatus: false, _init: () => { return new Promise(resolve => { let interval = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; toolOption.CtxMain._o1(); } }); }); }, playNext: () => { return new Promise(resolve => { let $nextBtn = document.querySelector('a.btItem.Next'); $nextBtn.click(); }); } } }, ss10: { id: 107, mainClass: 'CTXCommon', option: { nodeListClass: '.menu_body span>a.chapter', _init: () => { return new Promise(resolve => { let timer = setInterval(() => { var _c, _d, _f, _g; ElementObj.$parentNodes = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelectorAll('.class-wrapper'); if (ElementObj.$parentNodes && ElementObj.$parentNodes.length) { clearInterval(timer); let old = localStorage.getItem('curClassName'); for (let i = 0; i < ElementObj.$parentNodes.length; i++) { let item = ElementObj.$parentNodes[i]; let name = item.querySelector('.kcmc').innerText.trim(); if (name == old) { let nextBtn = ElementObj.$parentNodes[i + 1].querySelector('input.btn'); nextBtn.click(); break; } } resolve(true); } if (location.pathname == '/student/IndexWlkc_BootStrap.aspx') { clearInterval(timer); ElementObj.$parentNodes = (_g = (_f = document.querySelector('iframe')) === null || _f === void 0 ? void 0 : _f.contentDocument) === null || _g === void 0 ? void 0 : _g.querySelectorAll('.menu_body span>a[title]'); if (ElementObj.$parentNodes && ElementObj.$parentNodes.length) { ElementObj.$parentNodes[0].click(); } resolve(true); } ElementObj.$allTask = document.querySelectorAll('.menu_body span>a.chapter'); if (ElementObj.$allTask.length) { clearInterval(timer); // @ts-ignore let curClassName = document.querySelector('.glyphicon-home').innerText.trim(); localStorage.setItem('curClassName', curClassName); toolOption.CtxMain.getCurrentIndex(); resolve(true); } }, 1000); }); }, getCurrentIndexByOption: () => { return new Promise(resolve => { for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.style.color == "rgb(51, 122, 183)") { resolve(i); break; } } }); }, playFn: (that) => __awaiter(this, void 0, void 0, function* () { // @ts-ignore let wlkcID = /wlkcID=(.+)&wlk/.exec(location.search)[1]; // @ts-ignore let wlkckkID = /wlkckkID=(.+)&/.exec(location.search)[1]; // @ts-ignore let zjid = /zjid=(.+)/.exec(location.search)[1]; // @ts-ignore let learnTime = document.querySelector('#lbl_videoTime').innerText.trim(); // @ts-ignore let __VIEWSTATE = unsafeWindow.__VIEWSTATE.value; // @ts-ignore let __VIEWSTATEGENERATOR = unsafeWindow.__VIEWSTATEGENERATOR.value; // @ts-ignore let __EVENTVALIDATION = unsafeWindow.__EVENTVALIDATION.value; if (!wlkcID || !wlkckkID || !zjid || !learnTime || !__VIEWSTATE || !__VIEWSTATEGENERATOR || !__EVENTVALIDATION) { alert('参数错误'); return; } yield fetch(`${location.origin}/student/BootStrap_Video.aspx?wlkcID=${wlkcID}&wlkckkID=${wlkckkID}&zjid=${zjid}`, { "credentials": "include", "headers": { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0", "Accept": "*/*", "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2", "X-Requested-With": "XMLHttpRequest", "X-MicrosoftAjax": "Delta=true", "Cache-Control": "no-cache", "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" }, "body": `ScriptManager1=UpdatePanel%7CbtnYXXXSJ&__EVENTTARGET=&__EVENTARGUMENT=&postLearnTime=${Number(learnTime)}&shijiLearnTime=${Number(learnTime)}&learnTime=${Number(learnTime)}&videoState=pause&__VIEWSTATE=${encodeURIComponent(__VIEWSTATE)}&__VIEWSTATEGENERATOR=${__VIEWSTATEGENERATOR}&__EVENTVALIDATION=${encodeURIComponent(__EVENTVALIDATION)}&__ASYNCPOST=true&btnYXXXSJ=`, "method": "POST", "mode": "cors" }); toolOption.CtxMain.playNext(that); }), playNext: (that) => { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { if (that.currentIndex >= ElementObj.$allTask.length - 1) { location.href = `${location.origin}/student/IndexTemplate_BootStrap.aspx`; return; } yield sleep(2000); that.currentIndex += 1; let $nextBtn = ElementObj.$allTask[that.currentIndex]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { that._o1(); }, 2000); })); } } }, rs01: { id: 108, mainClass: 'CTXCommon', option: { activeClass: '', nodeListClass: '', _init(that) { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = document.querySelectorAll('.rank-3>li'); if (location.pathname.indexOf('/home/course/') != -1 && ElementObj.$allTask.length > 0) { clearInterval(interval); that.getCurrentIndex(); return; } let $navBtn2 = document.querySelector('.navBtn2'); if (location.pathname.indexOf('/home/course/') != -1 && $navBtn2) { clearInterval(interval); setTimeout(() => { that._init(); }, 2000); $navBtn2.click(); } if (location.pathname == '/home/learn/index') { let $active = document.querySelector('.basic.active'); if ($active) { clearInterval(interval); // @ts-ignore $active.nextElementSibling.querySelector('.basic').click(); setTimeout(() => { that.pdPlayFn(location.href); }, 3000); } } }), 1000); }); }, getCurrentIndexByOption() { return new Promise(resolve => { for (let item of ElementObj.$allTask) { // @ts-ignore let name = item.querySelector('a'); if (name.innerText.indexOf('测试') != -1) continue; let $basic = item.querySelector('.basic'); if (!$basic.classList.contains('looked')) { MyTool.setValue('homeUrl', location.href); name.click(); break; } } resolve(0); }); }, playNext() { return __awaiter(this, void 0, void 0, function* () { location.href = MyTool.getValue('homeUrl'); }); }, listenRebortFn() { let $playBtn = document.querySelector('.vjs-big-play-button'); $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click(); ElementObj.$video.volume = 0; ElementObj.$video.play(); } } }, das01: { id: 109, mainClass: 'CTXCommon', option: { nodeListClass: 'ul>li:first-child', activeClass: 'list', openListenPlayStatus: false, _init: () => { return new Promise(resolve => { let timer = setInterval(() => { ElementObj.$handleSpeedUp.style.display = 'none'; if (location.pathname == '/online/learn') { let $btn = document.querySelector('.toStudy'); if ($btn) { clearInterval(timer); setTimeout(() => { window.close(); }, 1000 * 10); $btn.click(); resolve(true); return; } } if (location.pathname == '/admin/lock/Study') { ElementObj.$allTask = document.querySelectorAll('ul>li'); if (ElementObj.$allTask.length) { clearInterval(timer); toolOption.CtxMain.getCurrentIndex(); resolve(true); return; } } }, 500); }); }, listenRebortFn: () => { let $ipt = document.querySelector('.layui-input'); if ($ipt) { let num = $ipt.getAttribute('data-num3'); // @ts-ignore $ipt.value = num; document.querySelector('.layui-layer-btn0').click(); } }, playNext: (that) => { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { if (that.currentIndex >= ElementObj.$allTask.length - 1) { location.href = 'http://hzsdadmin.zhihuiteacher.com/online/learn'; return; } yield sleep(2500); that.currentIndex += 1; let $nextBtn = ElementObj.$allTask[that.currentIndex]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { that._o1(); }, 5000); })); } } }, aa101: { id: 110, mainClass: 'CTXCommon', option: { nodeListClass: '.level2>a', activeClass: 'cur', } }, sdf1: { id: 111, mainClass: 'CTXCommon', option: { nodeListClass: '.ml_2 li', activeClass: 'cur', nextClass: '.littletit', openListenPlayTime: false, getCurrentIndexByOption: () => { return new Promise(resolve => { for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i].querySelector('.littlebot'); let $status = item.querySelector('.el-progress'); let title = ElementObj.$allTask[i].querySelector('.elli').innerText.trim(); if ($status && (title.indexOf('在线作业') == -1 && title.indexOf('习题测验') == -1 && title.indexOf('Test') == -1)) { resolve(i); break; } } }); }, listenRebortFn: () => { var _c; let $cur = document.querySelector('._active.elli'); let $parent = (_c = $cur === null || $cur === void 0 ? void 0 : $cur.parentElement) === null || _c === void 0 ? void 0 : _c.parentElement; let $icon = $parent.querySelector('.el-icon-circle-check'); let txt = $cur.innerText.trim(); if ($icon || txt == '在线作业' || txt.indexOf('习题测验') != -1 || txt.indexOf('Test') != -1) { toolOption.CtxMain.playNext(); } } } }, sdf3: { id: 112, mainClass: 'CTXCommon', option: { nodeListClass: '#classes li', activeClass: 'li_current_index', openListenPlayTime: false, } }, dsfs: { id: 112, mainClass: 'CTXCommon', option: { nodeListClass: '#content a', _init() { return new Promise(resolve => { let timer = setInterval(() => { ElementObj.$allTask = document.querySelectorAll('#content a'); ElementObj.$handleSpeedUp.style.display = 'none'; if (ElementObj.$allTask.length) { clearInterval(timer); let preClassName = MyTool.getValue('preClassName'); if (!preClassName) { MyTool.setValue('homeUrl', location.href); ElementObj.$allTask[0].click(); } else { for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (preClassName == item.innerText.trim()) { MyTool.setValue('homeUrl', location.href); ElementObj.$allTask[i + 1].click(); break; } } } resolve(true); } let btn = document.querySelector('.item-title.label h1 a'); if (btn && location.pathname == '/m/Exam/Student/startStudy') { clearInterval(timer); btn.click(); resolve(true); } if (location.pathname == '/m/Exam/Student/startStudy') { clearInterval(timer); toolOption.CtxMain.pdPlayFn(location.href); resolve(true); } }, 500); }); }, playNext(that) { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let til = document.querySelector('.startStudy-title>p'); let curClassName = til === null || til === void 0 ? void 0 : til.innerText.trim(); MyTool.setValue('preClassName', curClassName); let $btn = document.querySelector('.bottom-pc-btn button'); $btn.click(); yield sleep(2000); setTimeout(() => { location.reload(); }, 3000); document.querySelector('.modal-button.modal-button-bold').click(); })); } } }, bsd11: { id: 114, mainClass: 'CTXCommon', option: { nodeListClass: 'a.title', getCurrentIndexByOption() { return new Promise((resolve, reject) => { for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.parentElement.classList.contains('active')) { resolve(i); break; } } }); } } }, s221s: { id: 115, mainClass: "CTXCommon", option: { nodeListClass: '.tab-content-desc', activeClass: 'desc-item-sel', playFn: (that) => __awaiter(this, void 0, void 0, function* () { let studyType = yield that.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); yield sleep(1000); ElementObj.$video.currentTime += 7200; yield sleep(1000); ElementObj.$video.currentTime += 7200; yield sleep(1000); that.playNext(); }) } }, ifsbds: { id: 116, mainClass: "CTXCommon", option: { nodeListClass: '.tab-content-desc', activeClass: 'desc-item-sel', _init: () => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => { ElementObj.$handleSpeedUp.style.display = 'none'; if (location.pathname == '/kaoshi_qnzzxy/majorlist.html') { clearInterval(timer); alert('请选择一个课程,点击进去'); return; } ElementObj.$allTask = document.querySelectorAll('.list-group-item'); if (ElementObj.$allTask.length > 0) { clearInterval(timer); for (let item of ElementObj.$allTask) { let $status = item.querySelector('.list-group-item-text.text-muted'); if ($status.innerText != '学习进度:100.00%') { MyTool.setValue('homeUrl', location.href); item.click(); break; } } } if (location.pathname == '/kaoshi_qnzzxy/test.html') { clearInterval(timer); toolOption.CtxMain.pdPlayFn(location.href); } }, 500); }), playNext: (that) => __awaiter(this, void 0, void 0, function* () { location.href = MyTool.getValue('homeUrl'); }) } }, sfps: { id: 117, mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', openListenPlayStatus: true, _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = document.querySelectorAll('.lesson li'); if (ElementObj.$allTask.length) { clearInterval(timer); for (let item of ElementObj.$allTask) { if (!item.classList.contains('history')) { MyTool.setValue('homeUrl', location.href); item.querySelector('a').click(); break; } } } if (location.pathname == '/course-section-video-play') { clearInterval(timer); window.alert = () => { }; that._o1(); } }), 200); }), playNext: (that) => __awaiter(this, void 0, void 0, function* () { window.alert = () => { }; location.href = MyTool.getValue('homeUrl'); }), listenRebortFn: () => __awaiter(this, void 0, void 0, function* () { let $checkCode = document.querySelector('#checkCode'); if ($checkCode.innerText) { let $inputCode = document.querySelector('#inputCode'); $inputCode.value = $checkCode.innerText; yield sleep(1500); document.querySelector('.Button1.Button').click(); } window.alert = () => false; if (ElementObj.$video && (ElementObj.$video.currentTime >= ElementObj.$video.duration)) { toolOption.CtxMain.playNext(); } }) } }, sf1101: { id: 118, mainClass: "CTXCommon", option: { nodeListClass: 'span.studiedLesson', activeClass: 'RED', openListenPlayStatus: true, getCurrentIndex(that) { return __awaiter(this, void 0, void 0, function* () { for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (!item.classList.contains('studiedLessonMark')) { that.currentIndex = i; showTip('初始化完成,3秒后开始自动播放', 3000); item.click(); setTimeout(() => { that.pdPlayFn(location.href); }, 2000); break; } } if (that.currentIndex === -1) { alert('当前章节所有视频已经学习完'); } }); }, videoEle: () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { var _c, _d; count += 1; ElementObj.$video = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, listenRebortFn(that) { var _c, _d; return __awaiter(this, void 0, void 0, function* () { let $btn = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('#popup_panel input'); if ($btn) { $btn.click(); that.play(); } }); }, playNext() { return __awaiter(this, void 0, void 0, function* () { location.reload(); }); } } }, usd01: { id: 119, mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; let $icon = document.querySelector('.iconfont.icon-fujian'); if ($icon) { clearInterval(timer); showTip('判断此视频章节为非视频,即将自动跳过', 3000); yield sleep(2500); that.playNext(); return; } ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(timer); document.querySelector('.xt_video_player_common_icon').click(); that._o1(); return; } if (location.pathname.indexOf('/v2/web/studentLog') != -1) { clearInterval(timer); let classroom_id = location.pathname.replace('/v2/web/studentLog/', ''); forData: for (let item of new Array(100)) { let page = 0; let url = `https://www.yuketang.cn/v2/api/web/logs/learn/${classroom_id}?actype=15&page=${page}&offset=20&sort=-1`; let ClassData = yield getClassData(url); if (!ClassData.data.activities) { break; } let arr = ClassData.data.activities.map((item) => { return item.courseware_id; }); let option = { cid: classroom_id, new_id: arr }; let classStatus = yield getStatus(JSON.stringify(option)); for (let item2 of ClassData.data.activities) { let courseware_id = item2.courseware_id; // if (classStatus.data[courseware_id] && classStatus.data[courseware_id].total_done != 1) { let classUrl = `https://www.yuketang.cn/v2/web/xcloud/video-student/${classroom_id}/${item2.content.leaf_id}`; MyTool.setValue('homeUrl', location.href); location.href = classUrl; break forData; } } page += 1; } } }), 500); function getClassData(url) { let csrftoken = document.cookie.split(';')[0].replace('csrftoken=', ''); return new Promise(resolve => { fetch(url, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "classroom-id": "19933500", "priority": "u=1, i", "sec-ch-ua": "\"Google Chrome\";v=\"125\", \"Chromium\";v=\"125\", \"Not.A/Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "university-id": "2760", "uv-id": "2760", "x-client": "web", "x-csrftoken": csrftoken, "xt-agent": "web", "xtbz": "ykt" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); } function getStatus(option) { let csrftoken = document.cookie.split(';')[0].replace('csrftoken=', ''); return new Promise(resolve => { fetch("https://www.yuketang.cn/mooc-api/v1/lms/learn/course/pub_new_pro", { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "classroom-id": "19933500", "content-type": "application/json;charset=UTF-8", "priority": "u=1, i", "sec-ch-ua": "\"Google Chrome\";v=\"125\", \"Chromium\";v=\"125\", \"Not.A/Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "university-id": "2760", "uv-id": "2760", "x-csrftoken": csrftoken, "xt-agent": "web", "xtbz": "ykt" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": option, "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); } }), playNext: () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅即将切换下一个章节'); yield sleep(2000); location.href = MyTool.getValue('homeUrl'); }) } }, sdhfks01: { id: 120, mainClass: "CTXCommon", option: { nodeListClass: '.video .chapterhead.chapterhead1 li', activeClass: 'current', getCurrentIndexByOption: () => { return new Promise(resolve => { let $span = document.querySelector('.video_header .video_number'); let $num = $span.innerText.replace(/第|讲/g, ''); resolve(Number($num) - 1); }); }, playNext(that) { return new Promise(resolve => { if (that.currentIndex >= ElementObj.$allTask.length - 1) { alert('已全部播放完'); return; } showTip('✅✅✅即将自动切换下一节'); let tiemr = setInterval(() => { let $btn = document.querySelector('.el-message-box__btns button'); if ($btn) { that.currentIndex += 1; clearInterval(tiemr); setTimeout(() => { that._o1(); }, 4000); $btn.click(); } }, 500); }); } } }, s01r: { id: 121, mainClass: "CTXCommon", option: { nodeListClass: '.video .chapterhead.chapterhead1 li', activeClass: 'current', openListenPlayTime: true, _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; // 公需课2 ElementObj.$allTask = document.querySelectorAll('.ul-course li'); if (location.host === 'jxjy.ahhjsoft.com' && ElementObj.$allTask) { clearInterval(timer); showTip('🔊🔊🔊仅支持公需课4、公需课3', 4000); return; } // 公需课3 ElementObj.$allTask = document.querySelectorAll('.zdBox'); if (location.host === 'ah.zhuanjipx.com' && ElementObj.$allTask.length) { clearInterval(timer); showTip('🔊🔊🔊正在初始化', 4000); that.classType = 3; for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('childBox_item_on')) { that.currentIndex = i; showTip('✅✅✅初始化完成,开始播放', 2000); that._o1(); break; } } return; } // 公需课4 let $parent = document.querySelectorAll('.ant-collapse-item'); if ($parent.length > 0) { clearInterval(timer); showTip('🔊🔊🔊正在初始化', 4000); that.classType = 4; for (let item of $parent) { if (!item.classList.contains('ant-collapse-item-active')) { item.querySelector('.ant-collapse-header').click(); yield sleep(100); } } ElementObj.$allTask = document.querySelectorAll('.video_box_k_t_lx'); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('video_box_k_active')) { that.currentIndex = i; showTip('✅✅✅初始化完成,开始播放', 2000); that._o1(); break; } } } }), 300); }), playFn: (that) => __awaiter(this, void 0, void 0, function* () { var _c; yield that.getVideoDom(); if (that.classType === 2 || that.classType === 3) { clearInterval(that.timer); clearInterval(that.listenVidoeStatusTimer); clearInterval(that.listenRebortTime); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); that.playNext(that); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (that.classType === 4) { yield that.changeHtml($el('#video-content-box')); yield that.getVideoDom(); that.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); yield sleep(1000); showTip('🔉课件正在学习,请务点击或长时间隐藏'); ElementObj.$video.volume = 0; (_c = document.querySelector('.vjs-big-play-button')) === null || _c === void 0 ? void 0 : _c.click(); ElementObj.$video.play(); setTimeout(() => __awaiter(this, void 0, void 0, function* () { let videoDuration = Math.ceil(ElementObj.$video.duration); if (!videoDuration) { alert('视频时间错误,请刷新页面重试'); return; } let balanceTime = 0; for (let item of new Array(10000)) { if (balanceTime >= videoDuration) { ElementObj.$video.currentTime = videoDuration - 10; yield sleep(1000); ElementObj.$video.currentTime = videoDuration; that.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); yield sleep(3000); that.playNext(); break; } if (item % 60 == 0 && item > 0) { ElementObj.$video.currentTime = balanceTime; } balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator; that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); yield sleep(1000); } }), 2000); } }), playNext(that) { return __awaiter(this, void 0, void 0, function* () { location.reload(); }); } } }, hsduf: { id: 122, mainClass: "CTXCommon", option: { nodeListClass: '.menu_body dd', activeClass: 'active', _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; let $nav = document.querySelector('#a2'); if (!!$nav) { clearInterval(timer); $nav.click(); yield MyTool.sleep(2500); let $parents = document.querySelectorAll('li[data-trainid]'); for (let i = 0; i < $parents.length; i++) { let item = $parents[i]; MyTool.setValue('homeUrl', location.href); setTimeout(() => { window.close(); }, 20 * 1000); item.querySelector('a').click(); } } ElementObj.$allTask = document.querySelectorAll('.menu_body dd'); if (ElementObj.$allTask.length > 0) { clearInterval(timer); let isFinish = true; for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (!item.classList.contains('active')) { isFinish = false; that.currentIndex = i; if (!item.classList.contains('hover')) { item.querySelector('a').click(); } showTip('✅✅✅正在初始化', 3000); that._o1(); break; } } if (isFinish) { let homeurl = MyTool.getValue('homeUrl') || 'https://www.ejxjy.com/a/sys/portal/person'; location.href = homeurl; } } }), 300); }), openListenPlayTime: true, playNext() { return __awaiter(this, void 0, void 0, function* () { location.reload(); }); }, playFn: (that) => __awaiter(this, void 0, void 0, function* () { yield that.getVideoDom(); yield that.changeHtml(ElementObj.$video.parentElement); let videoDuration = Math.ceil(ElementObj.$video.duration); let balanceTime = 0; // let $id = (document.querySelector('#studentRuleId') as HTMLInputElement | null)?.value let $id = yield getStudentRuleId(); if (!$id || !videoDuration) { showTip('视频时间错误,请刷新页面重试'); location.reload(); return; } setInterval(() => { let jbox = document.querySelector('.jbox-button-focus'); jbox === null || jbox === void 0 ? void 0 : jbox.click(); }, 300); let videoTime = ElementObj.$video.duration; for (let item of new Array(10000)) { let res = yield saveData(balanceTime, videoTime, $id); if (res != false) { if (balanceTime >= videoDuration) { that.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); yield sleep(3000); that.playNext(that); break; } } if (res.data == 'success') { balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator; } that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); yield sleep(500); } function saveData(time, videoTime, id) { return new Promise(resolve => { try { fetch(`https://www.ejxjy.com/a/onlinelearn/stuCourse/saveVideo?id=${id}`, { "headers": { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "priority": "u=0, i", "sec-ch-ua": "\"Google Chrome\";v=\"125\", \"Chromium\";v=\"125\", \"Not.A/Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": `nowTime=${time}&videoTime=${videoTime}`, "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); } catch (e) { resolve(false); } }); } function getStudentRuleId() { return new Promise(resolve => { fetch(location.href, { "headers": { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-language": "zh-CN,zh;q=0.9", "priority": "u=0, i", "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "document", "sec-fetch-mode": "navigate", "sec-fetch-site": "same-origin", "sec-fetch-user": "?1", "upgrade-insecure-requests": "1" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.text()).then(res => { var _c; let $id = (_c = res.match(/saveVideo\?id=(.+)"/)) === null || _c === void 0 ? void 0 : _c[1]; resolve($id); }); }); } }), } }, pa1: { id: 123, mainClass: "CTXCommon", option: { activeClass: '', nodeListClass: '', _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => { var _c, _d, _f; ElementObj.$handleSpeedUp.style.display = 'none'; let $nav = document.querySelectorAll('.navItem'); if ($nav.length > 0) { if (!((_c = $nav[1].querySelector('span')) === null || _c === void 0 ? void 0 : _c.classList.contains('active'))) { // @ts-ignore $nav[1].click(); } } ElementObj.$parentNodes = (_f = (_d = document.querySelector('iframe')) === null || _d === void 0 ? void 0 : _d.contentDocument) === null || _f === void 0 ? void 0 : _f.querySelectorAll('.itemList .contentItem'); if (ElementObj.$parentNodes.length > 0) { clearInterval(timer); for (let item of ElementObj.$parentNodes) { if (!!item.querySelector('.ready')) { MyTool.setValue('homeUrl', location.href); item.querySelector('a').click(); break; } } return; } ElementObj.$allTask = document.querySelectorAll('.listGroup .listItem'); if (ElementObj.$allTask.length > 0) { clearInterval(timer); let isDone = true; for (let item of ElementObj.$allTask) { let status = item.querySelector('button'); if (status.innerText === '未学习') { isDone = false; setTimeout(() => { that._o1(); }, 3000); item.querySelector('.text').click(); break; } } if (isDone) { location.href = MyTool.getValue('homeUrl') || 'https://aqscpx.91huayi.com/Exercise/ExerciseHome/index'; } return; } }, 500); }) } }, bj1: { id: 124, mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _d; ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$parentNodes = document.querySelectorAll('.iv-personal-course-content li'); if (ElementObj.$parentNodes.length) { clearInterval(timer); forData: for (let item of new Array(2)) { for (let i = 0; i < ElementObj.$parentNodes.length; i++) { let $li = ElementObj.$parentNodes[i]; let status = $li.querySelector('.ivu-progress-text span').innerText; if (parseInt(status) != 100) { MyTool.setValue('homeUrl', location.href); $li.querySelectorAll('.iv-course-myClass span')[1].click(); break forData; } } let $nextBtn = document.querySelector('.iv-page-next'); $nextBtn.click(); showTip('🔊正在切换下一页...', 3000); yield sleep(3000); } return; } ElementObj.$allTask = (_d = document.querySelector('.iv-course-play-detail-menu-item')) === null || _d === void 0 ? void 0 : _d.querySelectorAll('li'); if (ElementObj.$allTask.length > 0) { clearInterval(timer); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; let status = item.querySelector('.iv-fs-12').innerText; if (parseInt(status) != 100) { that.currentIndex = i; item.click(); showTip('✅✅✅正在初始化', 3000); setTimeout(() => { that._o1(); }, 3000); break; } } } }), 300); }), playNext(that) { return __awaiter(this, void 0, void 0, function* () { if (that.currentIndex >= ElementObj.$allTask.length - 1) { let homeurl = MyTool.getValue('homeUrl') || 'https://bjce.bjdj.gov.cn/#/personalSpace/MyCourse'; window.open(homeurl); window.close(); return; } that.currentIndex += 1; let $nextBtn = ElementObj.$allTask[that.currentIndex]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { that._o1(); }, 2000); }); } } }, sd2: { id: 125, mainClass: "CTXCommon", option: { nodeListClass: '.numCHapter', activeClass: 'active', } }, sfd9: { id: 126, mainClass: "CTXCommon", option: { nodeListClass: '.videoList .item', activeClass: 'active', _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; let $iframe = document.querySelector('iframe'); if (location.host === 'jxzj.zpwedu.com' && $iframe) { location.href = $iframe.src; } ElementObj.$allTask = document.querySelectorAll('.videoList .item'); if (ElementObj.$allTask.length > 0 && location.host === 'jxzjstu.zpwedu.com') { clearInterval(timer); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; let statusDom = item.querySelectorAll('div>div')[2]; // @ts-ignore let num = /\((.+)\)/.exec(statusDom.innerText)[1]; console.log('初始化num==>>', num); if (num != '100%') { if (!item.classList.contains('active')) { item.click(); } showTip('✅✅✅初始化完成,3秒后自动播放', 3000); that.currentIndex = i; setTimeout(() => { that._o1(); }, 2000); break; } } } }), 300); }), beforePlayVideo() { let $volumeon = document.querySelector('.pv-icon-volumeon'); $volumeon === null || $volumeon === void 0 ? void 0 : $volumeon.click(); }, beforePlayNext(that) { var _c; let statusDom = (_c = document.querySelector('.item.active')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('div>div')[2]; // @ts-ignore let num = /\((.+)\)/.exec(statusDom.innerText)[1]; if (num != '100%') { location.reload(); } }, listenRebortFn() { var _c; let statusDom = (_c = document.querySelector('.item.active')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('div>div')[2]; // @ts-ignore let num = /\((.+)\)/.exec(statusDom.innerText)[1]; console.log('num==>>', num); if (num == '100%') { location.reload(); } } } }, hds1: { id: 127, mainClass: "CTXCommon", option: { nodeListClass: '.ml.tab-info a', activeClass: 'dd_active', _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _f; ElementObj.$handleSpeedUp.style.display = 'none'; let $parentNodes = document.querySelectorAll('.content_unit'); if ($parentNodes.length) { clearInterval(timer); forData: for (let item of $parentNodes) { item.click(); yield MyTool.sleep(2000); let $cf06 = document.querySelector('.note>p').innerText; if ($cf06.indexOf('恭喜您已完成') > -1) continue; let $tr = document.querySelectorAll('#watchcourseTable tbody tr'); for (let item of $tr) { let td5 = item.querySelectorAll('td')[5]; let td6 = item.querySelectorAll('td')[6]; if ((td5.innerText.trim() != td6.innerText.trim()) && td6.innerText.trim() != '已完成') { let $open = item.querySelector('.studyBegin'); $open.click(); yield MyTool.sleep(2000); (_f = document.querySelector('.layui-layer-btn1')) === null || _f === void 0 ? void 0 : _f.click(); yield MyTool.sleep(1000); ElementObj.$allTask = document.querySelectorAll("#Div_CourseProgress tr:not([style])"); for (let task of ElementObj.$allTask) { let status = task.querySelector('.fa6').innerText; if (status != '100%') { MyTool.deleteValue('learnStatus'); // task.querySelector('.star').click() let url = task.querySelector('.star').href; MyTool.openInTab(url); // @ts-ignore GM_addValueChangeListener('learnStatus', (key, oldValue, newValue, remote) => { if (newValue === 'done') { MyTool.deleteValue('learnStatus'); location.reload(); } }); break forData; } } } } } return; } // if (location.host == 'xjnu.edueva.org') { // let $tabs = document.querySelectorAll('.content_unit') // if ($tabs.length) { // let $tab1 = $tabs[1]; // // if (!$tab1.classList.contains('content_current') || !$tab1.classList.contains('content_past')) { // // // @ts-ignore // $tab1.click() // } // } // } /* let $parentNodes2 = document.querySelectorAll('.snNewMod-item') as NodeListOf<HTMLElement>; if ($parentNodes2.length) { clearInterval(timer) forData:for (let item of $parentNodes2) { item.click(); await MyTool.sleep(2000); let $tr = document.querySelectorAll('#tblPackage tbody tr'); for (let item of $tr) { let td5 = item.querySelectorAll('td')[5]; if(td5.innerText.trim() != '已完成'){ let $open = item.querySelector('.studyBegin') as HTMLElement; $open.click(); await MyTool.sleep(2000); (document.querySelector('.layui-layer-btn1') as HTMLElement | null)?.click(); await MyTool.sleep(1000); let divPackCourseListTr = document.querySelectorAll("#divPackCourseList tbody tr:not([style])") as NodeListOf<HTMLElement>; for (let task of divPackCourseListTr) { let status = task.querySelector('.snMiddleconTable-link') as HTMLElement; if (status.innerText != '已完成') { MyTool.deleteValue('learnStatus') status.click() await MyTool.sleep(2000); ElementObj.$allTask = document.querySelectorAll("#divCourseResList tr:not([style])"); for (let i = 0; i < ElementObj.$allTask.length; i++) { if(i === 0) continue; let task = ElementObj.$allTask[i]; let status = task.querySelector('.xkTdProgressTxt').innerText; if (status != '100%') { MyTool.deleteValue('learnStatus') let url = task.querySelector('a').href MyTool.openInTab(url) // @ts-ignore GM_addValueChangeListener('learnStatus', (key: any, oldValue: any, newValue: any, remote: any) => { if (newValue === 'done') { MyTool.deleteValue('learnStatus') location.reload() } }) break forData } } } } } } } } */ ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(timer); showTip('✅✅✅初始化完成,3秒后自动播放', 3000); that.pdPlayFn(location.href); } }), 300); }), playNext() { return __awaiter(this, void 0, void 0, function* () { MyTool.setValue('learnStatus', 'done'); yield sleep(1000); window.close(); }); }, listenRebortFn() { let $abtn = document.querySelector('a.btn-ProofOk'); $abtn === null || $abtn === void 0 ? void 0 : $abtn.click(); } // playFn: async (that) => { // await that.changeHtml($el('.play_video')) // let balanceTime = 0; // let videoDuration = ElementObj.$video.duration // for (let item of new Array(10000)) { // balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator // that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟,(中途关闭进度不保存)`) // if (balanceTime >= videoDuration) { // // if(balanceTime >= 60){ // ElementObj.$video.currentTime = videoDuration + 60 // await sleep(1000) // ElementObj.$video.currentTime = videoDuration + 60 // await sleep(1000) // ElementObj.$video.dispatchEvent(new Event('ended')) // MyTool.setValue('learnStatus', 'done') // await sleep(1000) // window.close() // break // } // await sleep(1000) // } // } } }, asds1: { id: 128, mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(timer); let $wrap = document.querySelector('.rightcontent') || ElementObj.$video.parentElement; yield that.changeHtml($wrap); that.addInfo('正在获取token...'); // @ts-ignore let token = dsf.getToken(); that.addInfo(`✅✅✅token:${token}`); that.addInfo('正在获取课程列表...'); // @ts-ignore let courseId = location.href.match(/id=(.+)/)[1]; let tasks = []; let businessId; if (location.href.indexOf('commonpage/classcolumn') != -1) { that.addInfo('正在获取parents'); let parentData = yield getParentList(courseId, token); fordata: for (let parent2 of parentData.data) { that.addInfo(`【${parent2.name}】`); for (let item of parent2.subList) { that.addInfo(`正在获取${item.name}的课程,已完成进度${item.progress}`); if (item.progress > 95) continue; let taskData = yield getCourseList(item.businessId, token); let arr = taskData.data.playTree.children.map((_item) => { return Object.assign(Object.assign({}, _item), { businessId: item.businessId }); }); tasks.push(...arr); break fordata; } } } else { let taskData = yield getCourseList(courseId, token); tasks.push(...taskData.data.playTree.children); } that.addInfo('✅✅✅课程列表获取成功'); for (let item of tasks) { if (item.finishedRate >= 100) continue; that.addInfo(`即将开始学习${item.title}`); courseId = location.href.indexOf('commonpage/classcolumn') != -1 ? item.businessId : courseId; let option = { courseId: courseId, coursewareId: item.id, watchPoint: '00:01:11', pulseTime: 10, pulseRate: 1, realWatchTime: '00:01:06', }; localStorage.setItem('fetchOption', JSON.stringify(option)); localStorage.setItem('token', token); yield that._o1(); break; } } }), 900); function getCourseList(courseId, token) { return new Promise((resolve, reject) => { let url = `${location.origin}/inc/nc/course/play/getPlayTrend`; let url2 = `${location.origin}/inc/nc/course/play/getPlayTrend`; fetch(`${url2}?courseId=${courseId}`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "authorization_token": token, "client": "pc", "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); } function getParentList(courseId, token) { return new Promise((resolve, reject) => { let url = `${location.origin}/nc/pack/channel/course/list`; let url2 = `${location.origin}/nc/pack/channel/course/list`; fetch(`${url2}?id=${courseId}`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "authorization_token": token, "client": "pc", "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrer": `${location.origin}/page.html`, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); } }), playFn: (that) => __awaiter(this, void 0, void 0, function* () { let option = localStorage.getItem('fetchOption'); option = JSON.parse(option); let token = localStorage.getItem('token'); for (let item of new Array(10000)) { that.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,(中途关闭进度不保存)`); let res = yield saveData(); that.addInfo(`已学习${res.data.finishedRate}%`); if (res.data.finishedRate >= 100) { location.reload(); break; } yield sleep(1000); } function saveData() { // let url = "${location.origin}/inc/nc/course/play/pulseSaveRecord" let url = `${location.origin}/inc/nc/course/play/pulseSaveRecord`; return new Promise(resolve => { fetch(`${url}`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "authorization_token": token, "client": "pc", "content-type": "application/x-www-form-urlencoded;charset=UTF-8", "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrer": `${location.origin}/page.html`, "referrerPolicy": "strict-origin-when-cross-origin", "body": `courseId=${option.courseId}&coursewareId=${option.coursewareId}&watchPoint=00%3A06%3A19&pulseTime=10&pulseRate=2&realWatchTime=00%3A02%3A33`, "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); } }) }, }, sdfs: { id: 129, mainClass: "CTXCommon", option: { nodeListClass: '.n-collapse-transition .cursor-pointer', activeClass: 'bg-[#1C2630]', openListenPlayStatus: false, openListenPlayTime: false, _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$parentNodes = document.querySelectorAll('.items-center.justify-between.border-solid'); if (ElementObj.$parentNodes.length > 0) { clearInterval(timer); showTip('正在初始化'); for (let item of ElementObj.$parentNodes) { if (!item.nextSibling.childNodes.length) { item.click(); } } ElementObj.$allTask = document.querySelectorAll('.n-collapse-transition .cursor-pointer'); that.getCurrentIndex(); } }, 500); }) } }, yrt5: { id: 130, mainClass: "CTXCommon", option: { nodeListClass: '.n-collapse-transition .cursor-pointer', activeClass: 'bg-[#1C2630]', openListenPlayStatus: false, openListenPlayTime: false, _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => { ElementObj.$handleSpeedUp.style.display = 'none'; let $parentNodes = document.querySelectorAll('ul>li'); if ($parentNodes.length && location.pathname.indexOf('/plan/courses') != -1) { clearInterval(timer); for (let item of $parentNodes) { let status = item.querySelector('.CourseList_per_1kb87BEO'); if (status.innerText != '100%') { MyTool.setValue('homeUrl', location.href); item.querySelectorAll('button')[1].click(); break; } } } ElementObj.$allTask = document.querySelectorAll('.AsideChapter_Item_2dfPMpnP'); if (ElementObj.$allTask.length) { clearInterval(timer); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.querySelector('.AsideChapter_ItemState_2nxPLU4r')) { that.currentIndex = i; that._o1(); break; } } } }, 500); }), playNext(that) { var _c; return __awaiter(this, void 0, void 0, function* () { if (that.currentIndex >= ElementObj.$allTask.length - 1) { let homeurl = MyTool.getValue('homeUrl'); window.open(homeurl); return; } that.currentIndex += 1; (_c = ElementObj.$allTask[that.currentIndex]) === null || _c === void 0 ? void 0 : _c.click(); setTimeout(() => { that._o1(); }, 2000); }); }, } }, hf01: { id: 132, mainClass: "CTXCommon", apis: { coursefind: (studentCourseId) => { return new Promise(resolve => { fetch(`https://www.secxm.com/api/student/course/find/${studentCourseId}?page=1&size=10000`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "authorization": "Bearer 12fe24bac5d14dcf8a5509b979a21eaa", "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); }, appendHours: (option) => { return new Promise(resolve => { fetch("https://www.secxm.com/api/student/appendHours", { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "authorization": "Bearer 12fe24bac5d14dcf8a5509b979a21eaa", "content-type": "application/json", "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": option, "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); } }, option: { nodeListClass: '', activeClass: '', openListenPlayStatus: false, openListenPlayTime: false, _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; let $wrap = document.querySelector('.video-lt'); if (location.pathname === '/courseintroduction' && $wrap) { clearInterval(timer); // @ts-ignore let studentCourseId = /id=(.+)&loopPlay/.exec(location.href)[1]; // @ts-ignore let course = yield _i1.hf01.apis.coursefind(studentCourseId); $wrap.style.position = 'relative'; yield that.changeHtml($wrap); forData: for (let i = 0; i < course.result.elements.length; i++) { for (let item of course.result.elements[i].subContentTemplate) { if (item.totalClassHours < item.duration) { that.addInfo('即将进行未完成课程', item.title); localStorage.setItem('itemdata', JSON.stringify(item)); yield that._o1(that); } yield MyTool.sleep(1000); } } } }), 500); }), playFn(that) { return __awaiter(this, void 0, void 0, function* () { let itemdata = localStorage.getItem('itemdata'); if (!itemdata) { return alert('参数错误 #1'); } itemdata = JSON.parse(itemdata); let totalClassHours = itemdata.totalClassHours || 0; let option = { studentCourseId: '', contentId: itemdata.id, duration: 180 }; // @ts-ignore option.studentCourseId = /id=(.+)&loopPlay/.exec(location.href)[1]; for (let item of new Array(1000)) { that.addInfo(`已成功学习${totalClassHours}秒,当前任务需完成${itemdata.duration}秒`); if (totalClassHours >= itemdata.duration) { that.addInfo(`🎉🎉🎉【${itemdata.title}】,学习完成🎉🎉🎉`); break; } // @ts-ignore let course = yield _i1.hf01.apis.appendHours(JSON.stringify(option)); totalClassHours += 180; yield MyTool.sleep(1000); } }); } } }, qf01: { id: 133, mainClass: "CTXCommon", apis: { appendHours: (option) => { return new Promise(resolve => { MyTool.axfedata({ method: 'GET', url: `https://www.gsgbpx.cn/course/saveCoursewareRecord.do?${option}`, headers: { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9", "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" } }).then(res => resolve(res)); // fetch(, { // "headers": , // "referrerPolicy": "strict-origin-when-cross-origin", // "body": null, // "method": "GET", // "mode": "cors", // "credentials": "include" // }).then(res=>res.json()).then(res=>resolve(res)) }); } }, option: { nodeListClass: '', activeClass: '', openListenPlayStatus: false, openListenPlayTime: false, _init: (that) => __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$parentNodes = document.querySelectorAll('#courseResouse ul li>div'); if (ElementObj.$parentNodes.length) { clearInterval(timer); for (let item of ElementObj.$parentNodes) { let status = item.querySelector('.learned-section-num').innerText; if (status != '100.00%') { MyTool.setValue('homeUrl', location.href); item.querySelector('button').click(); break; } } } let $wrap = document.querySelector('.coursePanelRight'); if (location.pathname === '/course/studycourseware.do' && $wrap) { clearInterval(timer); $wrap.style.position = 'relative'; yield that.changeHtml($wrap); yield that._o1(that); } }), 500); }), playFn(that) { return __awaiter(this, void 0, void 0, function* () { let totalClassHours = 0; // @ts-ignore let ID = /COURSEWAREID=(.+)&FILENAME/.exec(location.href)[1]; // @ts-ignore let TCID = /TCID=(.+)/.exec(location.href)[1]; let option = `ID=${ID}&studyTime=60&TIMEPOINT=${totalClassHours}&jsp=true&LENGTH=1&CHAPTER=1&STUDYSTATUS=incomplete&task=continuestudy&TCID=${TCID}`; for (let item of new Array(1000)) { totalClassHours += 60; // @ts-ignore let result = yield _i1.qf01.apis.appendHours(option); that.addInfo(`已成功学习${60}秒,当前任务已完成${result.msg}%`); if (parseInt(result.msg) >= 100) { that.addInfo(`🎉🎉🎉当前视频学习完成🎉🎉🎉`); yield MyTool.sleep(1000); that.playNext(); break; } yield MyTool.sleep(1000); } }); }, playNext() { return __awaiter(this, void 0, void 0, function* () { location.href = MyTool.getValue('homeUrl'); }); } } }, sf93: { id: 134, mainClass: "CTXCommon", apis: { reportCourseStudyProgress: (option) => { return new Promise(resolve => { fetch("http://media.lllnet.cn/media/reportCourseStudyProgress", { "headers": { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "x-requested-with": "XMLHttpRequest" }, "referrer": "http://media.lllnet.cn/media/accessCourseInfo", "referrerPolicy": "strict-origin-when-cross-origin", "body": option, "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); } }, option: { nodeListClass: '', activeClass: '', openListenPlayStatus: false, openListenPlayTime: false, _init(that) { return __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = document.querySelectorAll('#contents_list a'); if (ElementObj.$allTask.length) { window.alert = () => { }; clearInterval(timer); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('current')) { that.currentIndex = i; yield that._o1(that); break; } } } }), 500); }); }, playFn(that) { return __awaiter(this, void 0, void 0, function* () { yield that.getVideoDom(); let $wrap = ElementObj.$video.parentElement; yield that.changeHtml($wrap); ElementObj.$video.pause(); that.addInfo(`初始化已完成,5秒后 即将开始学习`); yield MyTool.sleep(5000); let position = 0; // let sessionTime = Math.trunc(ElementObj.$video.duration); let sessionTime = 6; let totalClassHours = ElementObj.$video.duration; for (let item of new Array(1000)) { position += sessionTime; if (position >= totalClassHours) { position = totalClassHours; } // @ts-ignore let option = `courseId=${courseId}&gradeId=${gradeId}&userId=${userId}&coursewareId=${coursewareId}&unameSN=${unameSN}&orgName=gclc-gzdk&position=${position}&sessionTime=${sessionTime}`; // @ts-ignore let result = yield _i1.sf93.apis.reportCourseStudyProgress(option); if (result.code == 200) { that.addInfo(`本次保存${sessionTime}秒, 累计已完成${position / 60}分钟,需累计完成${totalClassHours}秒`); } else { that.addInfo('本次未能成功保存,将自动再次保存'); position -= sessionTime; } if (position >= totalClassHours) { that.addInfo(`🎉🎉🎉当前视频学习完成🎉🎉🎉`); yield MyTool.sleep(1000); that.playNext(); break; } yield MyTool.sleep(3000); } }); }, } }, // 视频内有题目,暂时无法处理,已下架 wsre: { id: 135, mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', openListenPlayStatus: false, openListenPlayTime: false, _init(that) { return __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; let $iframe = document.querySelector('iframe'); if ($iframe) { clearInterval(timer); location.href = $iframe.src; } ElementObj.$allTask = document.querySelectorAll('#li_menu_1_0_id dd span'); if (ElementObj.$allTask.length) { clearInterval(timer); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('b_sel')) { that.currentIndex = i; yield that._o1(that); break; } } } }), 500); }); }, } }, tskf: { id: 136, mainClass: "CTXCommon", option: { nodeListClass: '.course_li', activeClass: 'videoListCur', openListenPlayStatus: false, openListenPlayTime: false, nextClass: 'a', _init(that) { return __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll('.course_li'); if (ElementObj.$allTask.length) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; if (location.href.indexOf('coursewareid') == -1) { ElementObj.$allTask[0].querySelector('a').click(); return; } for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; let status = item.querySelector('.study'); if (!status) { that.currentIndex = i; if (!item.classList.contains('videoListCur')) { item.querySelector('a').click(); break; } yield that._o1(that); break; } } } }), 500); }); }, playFn(that) { return __awaiter(this, void 0, void 0, function* () { let studyType = yield that.getVideoDom(); yield that.changeHtml(ElementObj.$video.parentElement); if (studyType == 1) { let end = Math.trunc(ElementObj.$video.duration); that.addInfo('🔊🔊🔊正在获取参数'); // @ts-ignore let course_id = /courseID=(.+)&coursewareid/.exec(location.href)[1]; // @ts-ignore let courseware_id = /coursewareid=(.+)&MyView/.exec(location.href)[1]; let student_id; if (document.cookie.split(',')[0].indexOf('student_id') != -1) { // @ts-ignore student_id = /student_id=([0-9]+)/.exec(document.cookie.split(',')[0])[1]; } else { // @ts-ignore student_id = /[0-9]+/.exec(document.cookie.split(',')[1].split(';')[3].split('&')[0])[0]; } that.addInfo('🔊🔊🔊正在请求数据'); yield fetch(`${location.origin}/VideoPlay/StudySurvey`, { "headers": { "accept": "*/*", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", }, "referrerPolicy": "strict-origin-when-cross-origin", "body": `course_id=${course_id}&courseware_id=${courseware_id}&start=0&end=${end}&student_id=${student_id}&project_id=&course_type=1`, "method": "POST", "mode": "cors", "credentials": "include" }); that.addInfo('✅✅✅StudySurvey请求完成'); that.addInfo('🔊🔊🔊正在等待响应'); for (let i of new Array(26)) { yield MyTool.sleep(1000); that.addInfo('⚠⚠⚠正在等待系统请求updateStudyStatue2,请勿关闭此页面, 预计25秒'); } // @ts-ignore // let wordkey = document.cookie.split(',')[1].split(';')[9].split('&')[5].trim().replace('key=','') // await fetch(`${location.origin}/VideoPlay/updateStudyStatue2`, { // "headers": { // "accept": "*/*", // "content-type": "application/x-www-form-urlencoded; charset=UTF-8", // }, // "body": `course_id=${course_id}&courseware_id=${courseware_id}&student_id=${student_id}&course_type=1&wordkey=${wordkey}&iPlaySec=${end}&playSec=${end}`, // "method": "POST", // "mode": "cors", // "credentials": "include" // }); } that.playNext(); }); } } }, gd891: { id: 137, mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', openListenPlayStatus: false, openListenPlayTime: false, _init(that) { return __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { if (location.host == 'gbpx.gd.gov.cn') { // @ts-ignore let iframe = document.querySelector('iframe').contentDocument.querySelector('iframe').contentDocument.querySelector('iframe'); // 修复w // @ts-ignore iframe.contentWindow.tab = null; // @ts-ignore iframe.contentWindow.w = (url) => { iframe.contentWindow.tab = window.open(url, "_blank", "height=750,width=1060,top=10,left=10,location=no,menubar=no,resizable=yes,status=no,toolbar=no"); }; // @ts-ignore let item = iframe.contentDocument.querySelector('.listrowd'); if (item) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; yield that._o1(); // @ts-ignore // await that.changeHtml(document.querySelector(iframe.contentDocument.body)); // that.addInfo('🔊🔊🔊正在学习中, 学习期间将多次刷新页面, 属于正常现象') // that.addInfo('🔊🔊🔊正在学习中, 学习期间将多次刷新页面, 属于正常现象') // that.addInfo('🔊🔊🔊正在学习中, 学习期间将多次刷新页面, 属于正常现象') item.querySelector('a.courseware-list-reed').click(); setTimeout(() => { var _c; location.replace(location.href); // @ts-ignore (_c = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _c === void 0 ? void 0 : _c.tab.close(); }, 1000 * 10); } } if (location.host == 'wcs1.shawcoder.xyz') { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; yield that.getVideoDom(); // @ts-ignore window.onbeforeunload(); } } catch (e) { } }), 500); }); } } }, }; let speedArr = [1, 2, 3, 5, 10, 16]; let toolOption = { accelerator: 1, CtxMain: null, SchoolType: -1 }; const version = '6.1.0.1'; let _bt = 'https://www.gaozhiwang.top'; let _b = 'http://47.115.205.88:7001'; // let _b: string = 'http://localhost:7001'; class Main { constructor() { this.studentType = 1; this.speedStatus = 0; this.isAdaptive = 1; this.listenVidoeStatusTimer = null; this.fingerprint = null; this.toolkey = null; this.init(); } init() { setTimeout(() => __awaiter(this, void 0, void 0, function* () { this.toolkey = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey'); let _schoolInfoColletion = MyTool.getValue('schoolInfoColletion'); if (_schoolInfoColletion) { _schoolInfoColletion = new Date(_schoolInfoColletion); var old_d = _schoolInfoColletion.getDate(); var new_d = new Date().getDate(); if (old_d < new_d) { this.colletionSchoolData(`/colletionschool?schoolType=${toolOption.SchoolType}&toolkey=${this.toolkey}&host=${location.origin}`); } } else { this.colletionSchoolData(`/colletionschool?schoolType=${toolOption.SchoolType}&toolkey=${this.toolkey}&host=${location.origin}`); } let fingerprintjs = localStorage.getItem('fingerprint'); if (!fingerprintjs && this.toolkey) { // @ts-ignore yield import('https://openfpcdn.io/fingerprintjs/v4') .then(FingerprintJS => FingerprintJS.load()) .then(fp => fp.get()) .then(result => { this.fingerprint = result.visitorId; }); localStorage.setItem('fingerprint', this.fingerprint); this.colletionSchoolData(`/colletionschool?schoolType=${toolOption.SchoolType}&toolkey=${this.toolkey}&fingerprint=${this.fingerprint}&host=${location.origin}`); } this._rn(); }), 2500); } /** * 更改倍速 * */ updateSpeedElement(num) { if (this.speedStatus == 0) return; ElementObj.$video.playbackRate = num; } /** * 点击加速按钮 * @isOpenListen 是否开启key的监测 * */ _o1(callback, isOpenListen = true) { return __awaiter(this, void 0, void 0, function* () { let key = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey'); if (!key) { alert('请先购买key'); window.open(_bt); } if (!toolOption.CtxMain) { location.reload(); } let r = yield axfedata({ method: 'GET', url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`, }); if (r.code == 200) { this.speedStatus = 1; this.isAdaptive = 1; yield toolOption.CtxMain.play(); } else { this.isAdaptive = 0; showTip(`🔉🔉🔉${r.message}`, 5000, true); return; } }); } /** * 解绑Key * */ handleRemoveKey() { MyTool.setValue('mytoolkey', null); localStorage.removeItem('mytoolkey'); localStorage.removeItem('_localSpeed'); ElementObj.$title3.innerText = '绑定key:'; ElementObj.$mytoolkey.style.display = 'none'; ElementObj.$ctxsection2.style.display = 'none'; ElementObj.$nokey.style.display = 'block'; ElementObj.$ipt.style.display = 'block'; ElementObj.$addKey.style.display = 'block'; ElementObj.$removeKey.style.display = 'none'; ElementObj.$handleSpeedUp.style.background = 'orange'; ElementObj.$handleSpeedUp.innerText = '点击加速'; this.updateSpeedElement(1); } /** * 停止加速 * */ stopSpeedUp() { this.speedStatus = 0; toolOption.CtxMain.updateSpeedElement(1); ElementObj.$handleSpeedUp.style.background = 'orange'; ElementObj.$handleSpeedUp.innerText = '点击加速'; showTip(`🔉停止加速成功`); } /** * 通过下拉框更改倍速 * */ handleChangeCtxSpeed(e) { let key = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey'); if (key) { if (this.isAdaptive == 0) { alert('Key不适配'); return; } let whiteList = speedArr; let s = Number(e); if (e && whiteList.includes(s)) { toolOption.accelerator = s; localStorage.setItem('_localSpeed', s.toString()); MyTool.setValue('_localSpeed', s); if (ElementObj.$video) { ElementObj.$video.playbackRate = s; } } } else if (!key) { alert('请先购买key'); window.open(_bt); } else { alert('程序错误,请联系客服'); } } /** * 记录平台数据 * */ colletionSchoolData(option) { return __awaiter(this, void 0, void 0, function* () { let result = yield axfedata({ method: 'GET', url: _b + option }); if (result.code == 200) { MyTool.setValue('schoolInfoColletion', `${new Date()}`); } if (result.code == 20231) { } }); } /** * 验证是否被破解 * */ _rn() { setInterval(() => { if (ElementObj.$video) { MyTool.axfedata({ method: 'GET', url: _b + `/ck/v1?ty=${this.toolkey}` }).then((res) => { if (res.code == 202) { erf(res.data); } }); } }, 10000); } /** * 监听视频状态 * */ listenVidoeStatus($video, callback) { if (!$video) return; let count = 0; this.listenVidoeStatusTimer = setInterval(() => { if ($video.readyState < 4) { count += 1; if (count >= 20) { location.reload(); } } let status = $video.paused; if (status) { count += 1; if (typeof callback == 'function') { if (count >= 20) { location.reload(); } else { callback(); } } else { } } }, 5000); } changeHtml($wrap) { return __awaiter(this, void 0, void 0, function* () { ElementObj.$ctxstatsbox = document.querySelector('.ctxstatsbox'); if (!ElementObj.$ctxstatsbox) { let _style = ` width: 100%; height: 100%; background: #eae9e9; position: absolute; z-index: 999; overflow: scroll; top: 0; padding-left: 10px; z-index: 9999; `; let dom = document.createElement('div'); dom.setAttribute('class', 'ctxstatsbox'); dom.setAttribute('style', _style); $wrap.appendChild(dom); yield sleep(300); ElementObj.$ctxstatsbox = document.querySelector('.ctxstatsbox'); } this.addInfo('🔉初始化已完成,正在播放'); }); } /** * @param str 要显示的文本内容 * @param type 0为红色 * */ addInfo(str, type) { let $ctxstatsbox_lis = document.querySelectorAll('.ctxstatsbox_li'); if ($ctxstatsbox_lis.length >= 15) { ElementObj.$ctxstatsbox.innerHTML = ''; } let li = `<li class="ctxstatsbox_li" style="color: ${type == 0 ? '#f01414' : '#000'};line-height: 30px;font-size: 16px;list-style: none;">${str}</li>`; ElementObj.$ctxstatsbox.innerHTML += li; } listenPageHide() { let timer3; document.addEventListener("visibilitychange", () => { if (document.hidden) { // 页面被隐藏 let count = 0; timer3 = setInterval(() => { count += 1; if (count >= 5) { this.addInfo('⚠️⚠️⚠️请勿长时间隐藏该学习页面', 0); } }, 5000); } else { clearInterval(timer3); // 页面被显示 } }); } /** * @description 判断该视频是否消耗过次数 * */ pdPlayFn(className) { let localData = MyTool.getValue('spanClassName') || []; if (localData.indexOf(className) != -1) { // toolOption.CtxMain.play() this._o1(); } else { localData.push(className); MyTool.setValue('spanClassName', localData); this._o1(); } } /** * @description 获取视频DOM * */ getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelectorAll('video')[0]; if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } } class CTXCommon extends Main { constructor(options) { super(); this.taskLength = 0; this.currentIndex = -1; this.nodeListClass = options.nodeListClass; this.activeClass = options.activeClass || ''; this.nextClass = options.nextClass || ''; this.openListenPlayStatus = typeof options.openListenPlayStatus == 'boolean' ? options.openListenPlayStatus : true; this.openListenPlayTime = typeof options.openListenPlayTime == 'boolean' ? options.openListenPlayTime : false; this.afterPlayEnd = options.afterPlayEnd; this.getCurrentIndexByOption = options.getCurrentIndexByOption; this.playNext = options.playNext ? options.playNext : this.playNext; this.listenRebortFn = options.listenRebortFn; this.getVideoDom = typeof options.videoEle == 'function' ? options.videoEle : this.getVideoDom; this.playFn = options.playFn; this.beforePlayVideo = options.beforePlayVideo; this.beforePlayNext = options.beforePlayNext; this.getCurrentIndex = options.getCurrentIndex ? options.getCurrentIndex.bind(this, this) : this.getCurrentIndex; options._init ? options._init(this) : this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll(this.nodeListClass); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { if (this.getCurrentIndexByOption) { this.currentIndex = yield this.getCurrentIndexByOption(); } else { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText; // if (parseInt(status) < 99) { // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains(this.activeClass)) { this.currentIndex = i; break; } } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 2000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelectorAll('video')[0]; if (!!ElementObj.$video && (ElementObj.$video.src || ElementObj.$video.querySelector('source'))) { clearInterval(Timer); resolve(1); return; } if (count >= 6) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (this.playFn) { yield this.playFn(this); } else { if (studyType == 1) { if (this.beforePlayVideo && typeof this.beforePlayVideo === 'function') { this.beforePlayVideo(); } ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); if (this.openListenPlayStatus) { this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } if (this.openListenPlayTime) { yield this.changeHtml(ElementObj.$video.parentElement); this.listenPlayTime(); } this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); // @ts-ignore this.playNext(this); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); // @ts-ignore this.playNext(this); } } }); } listenRebort() { this.listenRebortTime = setInterval(() => { if (this.listenRebortFn && typeof this.listenRebortFn == 'function') { this.listenRebortFn(this); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.beforePlayNext && typeof this.beforePlayNext === 'function') { this.beforePlayNext(this); } if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; if (this.nextClass) { $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector(this.nextClass); } $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); if (this.afterPlayEnd) { yield this.afterPlayEnd(); } setTimeout(() => { this._o1(); }, 5000); }); } listenPlayTime() { let count = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c, _d; count += 1; let currentTime = (_c = ElementObj.$video) === null || _c === void 0 ? void 0 : _c.currentTime; let time = (currentTime / 60).toFixed(2); let durtion = (_d = ElementObj.$video) === null || _d === void 0 ? void 0 : _d.duration; this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`); }), 5000); } } function _ex(hex) { var str = ''; for (var i = 0; i < hex.length; i += 2) { var hexChar = hex.substr(i, 2); var charCode = parseInt(hexChar, 16); str += String.fromCharCode(charCode); } return str; } /** * 福建师范 继续教育 */ class fujianshifan extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = 0; this.currentMidiaType = 'video'; this._init(); } _init() { // 获取所有章节 let $allchapters = document.querySelectorAll('.section'); new Promise((resolve) => { $allchapters.forEach((item, index) => { item.childNodes[0].click(); sleep(20); if (index == $allchapters.length - 1) { resolve(true); } }); }).then(res => { setTimeout(() => { ElementObj.$allStudyTask = document.querySelectorAll('.section li'); // this.getCurrentIndex(); }, 2000); }); } getCurrentIndex() { let $activeVideo = document.querySelector('.active'); let currentId = $activeVideo.id; ElementObj.$allStudyTask.forEach((item, index) => { if (item.id == currentId) { this.currentIndex = index; } }); } play() { // 判断当前当前任务是否已完成 // let isSuccess = ElementObj.$allStudyTask[this.currentIndex].lastChild.title ElementObj.$allStudyTask[this.currentIndex].click(); setTimeout(() => { // 判断是视频还是文档 ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { this.currentMidiaType = 'video'; this.handlePlayVideo(); } else { this.currentMidiaType = 'doc'; this.handlePlayDoc(); } }, 2000); } nextPlay() { sleep(1000); this.currentIndex += 1; this._o1(); } handlePlayVideo() { this.updateSpeedElement(toolOption.accelerator); ElementObj.$video.play(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; // 播放结束 ElementObj.$video.addEventListener('ended', () => { this.nextPlay(); }, false); } handlePlayDoc() { var _c; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; let totalDoc = (_c = document.querySelector('#lg-counter-all')) === null || _c === void 0 ? void 0 : _c.innerHTML; let $nextBtn = document.querySelector('.lg-actions>.lg-next'); let downCount = Number(totalDoc); let interval = setInterval(() => { if (downCount <= 0 || !$nextBtn) { clearInterval(interval); this.nextPlay(); return; } $nextBtn.click(); downCount -= 1; }, 1000); } } /** * 广西住房城乡建设行业专业人员继续教育平台 * @match jxjy.gxcic.net:9092 * */ class gxcic extends Main { constructor() { super(); this.parentIndex = 0; this.currentIndex = 0; this.currentTaskEle = null; this.taskLength = 0; this.timer = null; this._init(); } _init() { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$allTaskParentNodes = document === null || document === void 0 ? void 0 : document.querySelectorAll('.ant-collapse-item'); ElementObj.$allTask = document === null || document === void 0 ? void 0 : document.querySelectorAll('.course-detail-content-section-info-text'); if (ElementObj.$allTask.length && ElementObj.$allTaskParentNodes.length) { clearInterval(interval); this.getCurrentIndex(); } }), 1000); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTaskParentNodes.forEach((item, index) => { let hasClass = item.className.includes('ant-collapse-item-active'); if (hasClass) { this.parentIndex = index; } }); ElementObj.$allTask.forEach((item, index) => { let hasClass = item.className.includes('course-detail-current'); if (hasClass) { this.currentIndex = index; this.currentTaskEle = item; } }); if (!!this.currentTaskEle) { showTip('初始化完成,可点击加速'); } // await sleep(5000) // this._o1() }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); // await sleep(5000) yield this.getVideoDom(); ElementObj.$video.play(); this.updateSpeedElement(toolOption.accelerator); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.lisRebort(); // 播放结束 ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { let nextTask = this.currentTaskEle.parentElement.parentElement.nextSibling; if (nextTask) { this.currentIndex += 1; this.currentTaskEle = nextTask; this.currentTaskEle.click(); } else { this.parentIndex += 1; this.currentIndex += 1; var _$parentEle = ElementObj.$allTaskParentNodes[this.parentIndex].lastChild.firstChild.firstChild; _$parentEle.click(); yield sleep(1500); ElementObj.$allTask = document === null || document === void 0 ? void 0 : document.querySelectorAll('.course-detail-content-section-info-text'); this.currentTaskEle = ElementObj.$allTask[this.currentIndex]; this.currentTaskEle.click(); } yield sleep(5000); this._o1(); /* * if (this.currentIndex > ElementObj.$allTask.length) { return; } this.currentIndex += 1 ElementObj.$allTask[this.currentIndex].click() setTimeout(() => { location.reload() }, 2000) * */ }), false); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.play(); }, 1500); }); }); } lisRebort() { this.timer = setInterval(() => { // 确认弹框 let $confirm1 = document.querySelector('.sdk-ia-message-confirm'); $confirm1 === null || $confirm1 === void 0 ? void 0 : $confirm1.click(); // 验证码弹框 let $ver = document.querySelector('.sdk-ia-number-verify-image'); if (!!$ver) { let $ipt = document.querySelector('.sdk-ia-number-input input'); $ipt.value = $ver.innerText; let $btn = document.querySelector('.sdk-ia-number-button'); $btn.click(); } }, 1000 * 5); } } /** * 福建师范教育2 * nto.fjnu.cn * 10 * */ class fjsf2 extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = 0; this.currentIndex = 0; this.currentMidiaType = 'video'; this._init(); } _init() { // 获取所有章节 ElementObj.$allTaskParentNodes = document === null || document === void 0 ? void 0 : document.querySelectorAll('.section'); let $allchapters = document.querySelectorAll('.section'); this.getCurrentIndex(); } getCurrentIndex() { ElementObj.$allTaskParentNodes.forEach((item, index) => { let $lis = item.querySelectorAll('li'); $lis === null || $lis === void 0 ? void 0 : $lis.forEach(($ele, key) => { if ($ele.className.includes('active')) { this.parentIndex = index; this.currentIndex = key; ElementObj.$allTask = $lis; } }); }); } play() { return __awaiter(this, void 0, void 0, function* () { // 判断当前当前任务是否已完成 // let isSuccess = ElementObj.$allStudyTask[this.currentIndex].lastChild.title ElementObj.$allTask[this.currentIndex].click(); yield sleep(2000); // 判断是视频还是文档 let $clseDocBtn = document.querySelector('.lg-close'); if (!$clseDocBtn) { this.currentMidiaType = 'video'; this.handlePlayVideo(); } else { this.currentMidiaType = 'doc'; this.handlePlayDoc(); } }); } nextPlay() { return __awaiter(this, void 0, void 0, function* () { yield sleep(1000); if (this.currentIndex >= ElementObj.$allTask.length - 1) { this.parentIndex += 1; this.currentIndex = 0; if (this.parentIndex >= ElementObj.$allTaskParentNodes.length) { alert('已全部播放完'); return; } let $lis = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll('li'); if ($lis.length) { ElementObj.$allTask = $lis; } else { ElementObj.$allTaskParentNodes[this.parentIndex].childNodes[0].click(); yield sleep(300); ElementObj.$allTask = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll('li'); } } else { this.currentIndex += 1; } this._o1(); }); } handlePlayVideo() { ElementObj.$video = document.querySelector('video'); this.updateSpeedElement(toolOption.accelerator); ElementObj.$video.play(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; // 播放结束 ElementObj.$video.addEventListener('ended', () => { this.nextPlay(); }, false); } handlePlayDoc() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; yield sleep(1500); let $lgToggle = document.querySelector('.lg-toggle-thumb'); let downCount = 1; let currentPlayIndex = 0; if ($lgToggle) { $lgToggle.click(); let totalDoc = document.querySelectorAll('.lg-thumb-item'); downCount = totalDoc.length; } yield sleep(2000); // let interval = setInterval(async () => { // if (currentPlayIndex >= downCount) { // clearInterval(interval) // await sleep(1000) // // let $cleseBtn = document.querySelector('.lg-close') as HTMLElement; // $cleseBtn.click() // // this.nextPlay() // return // } // var $nextDoc = totalDoc[currentPlayIndex] as HTMLElement; // // $nextDoc.click() // // currentPlayIndex += 1 // }, 2000) let $cleseBtn = document.querySelector('.lg-close'); $cleseBtn.click(); this.nextPlay(); }); } } /** * 安徽专业技术人员继续教育在线 * 12 * */ class zjzx extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = 0; this._init(); } _init() { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.nLi'); this.getCurrentIndex(); } getCurrentIndex() { ElementObj.$allTask.forEach((item, index) => { let $li = item.querySelector('li'); if ($li.classList.contains('active')) { this.currentIndex = index; } }); } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$video = document.querySelector('video'); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', () => { setTimeout(() => { this._o1(); }, 5000); }); }); } } /** * 全国文化和旅游市场在线培训系统 * 13 * */ class zxpxmr extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = 0; this._init(); } _init() { //禁止 alert 弹窗 window.alert = function () { return false; }; let interval = setInterval(() => { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.kecheng_play_mian_list_item'); if (ElementObj.$allTask.length) { showTip('🔉初始化完成,可点击加速', 3000); clearInterval(interval); this.getCurrentIndex(); } }, 1000); } getCurrentIndex() { let activeClass = 'kecheng_play_mian_list_item_progress_playing'; ElementObj.$allTask.forEach((item, index) => { if (item.classList.contains(activeClass)) { this.currentIndex = index; } }); } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$video = document.querySelector('video'); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$video.play(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.simulationClick(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('课程已全部部分完'); return; } this.currentIndex += 1; let $nextTaskBtn = document.querySelector("#btn-sure"); yield sleep(2000); $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click(); setTimeout(() => { this._o1(); }, 5000); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.play(); }, 1000); }); }); } /** * 模拟点击 * */ simulationClick() { var e = new KeyboardEvent('keydown', { 'keyCode': 8, 'which': 8 }); this.timer = setInterval(() => { try { document.dispatchEvent(e); } catch (e) { } }, 1000 * 3); } } /** * 广东远程职业培训平台 * 14 ggfw * */ class ggfw extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = 0; this._init(); } _init() { ElementObj.$parentNodes = document.querySelectorAll('.learnList'); if (ElementObj.$parentNodes.length) { this.selectOneClass(); } new Promise((resolve) => { let interval = setInterval(() => { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.courseItem'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); resolve(true); } }, 1000); }).then(res => { ElementObj.$handleSpeedUp.style.display = 'none'; let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$video = document.querySelector('video'); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.setAttribute('autoplay', 'autoplay'); let $volumeicon = document.querySelector('.volume-icon'); $volumeicon.click(); yield sleep(500); $volumeicon.click(); if (!!ElementObj.$video) { clearInterval(interval); showTip('🔉初始化完成,即将自动播放', 3000); yield sleep(300); let $playBtn = document.querySelector('.prism-big-play-btn'); $playBtn.click(); yield this._o1(); } }), 1000); }); } getCurrentIndex() { let activeClass = 'active'; ElementObj.$allTask.forEach((item, index) => { if (item.classList.contains(activeClass)) { this.currentIndex = index; } }); } play() { return __awaiter(this, void 0, void 0, function* () { yield sleep(3000); localStorage.setItem('ctx-status', ''); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; }, 1500); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); ElementObj.$allTask = document.querySelectorAll('.courseItem'); yield sleep(300); if (this.currentIndex >= ElementObj.$allTask.length - 1) { localStorage.setItem('ctx-status', 'done'); // 取消收藏 let $saveBtn = document.querySelector('.sc-box'); $saveBtn.click(); yield sleep(1500); let $backBtn = document.querySelectorAll('.menu-box ul li')[3]; $backBtn.click(); yield sleep(2000); window.location.reload(); return; } this.currentIndex += 1; this._o1(); yield sleep(2500); ElementObj.$allTask[this.currentIndex].click(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.play(); }, 1000); }); }); } /** * 进入课程 * */ selectOneClass() { let T = setTimeout(() => __awaiter(this, void 0, void 0, function* () { clearInterval(T); let $label1 = document.querySelector('#tab-second'); $label1.click(); yield sleep(2500); ElementObj.$parentNodes = document.querySelectorAll('.course_item'); yield sleep(200); ElementObj.$parentNodes[0].click(); }), 3000); } } /** * 名师课堂 * 17 * */ class mingshiclass extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = 0; this.parentIndex = -1; this._init(); } _init() { let isParent = document.querySelector('.title-box .setMealName'); if (!!isParent) { this.selectOneClass(); } else { this.initPlayPage(); } } initPlayPage() { new Promise((resolve) => { let interval = setInterval(() => { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.course-list .course-item'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); resolve(true); } }, 1000); }).then(res => { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { ElementObj.$video = document.querySelector('video'); yield sleep(3000); if (!!ElementObj.$video) { showTip('🔉初始化完成,播放开始', 3000); resolve(true); } })); }).then(res => { // 消耗次数,并播放 this._o1(); }); } getCurrentIndex() { let activeClass = 'play-status'; ElementObj.$allTask.forEach((item, index) => { let $dom1 = item.querySelector('.course-name'); if ($dom1.classList.contains(activeClass)) { this.currentIndex = index; } }); } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$video = document.querySelector('video'); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.setAttribute('autoplay', 'autoplay'); // ElementObj.$video.setAttribute('controls', 'controls') ElementObj.$video.volume = 0; yield sleep(3500); let $play_btn = document.querySelector('.play_btn'); $play_btn.click(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let $back = document.querySelector('.back-img'); sleep(200); $back.click(); setTimeout(() => { location.reload(); }, 3000); return; } this.currentIndex += 1; let $nextTaskBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(5000); $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click(); setTimeout(() => { this._o1(); }, 2000); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.play(); }, 3000); }); }); } /** * 进入课程 * */ selectOneClass() { let T = setTimeout(() => __awaiter(this, void 0, void 0, function* () { clearInterval(T); ElementObj.$parentNodes = document.querySelectorAll('.content-box>.course-list>div'); yield sleep(200); ElementObj.$parentNodes.forEach((item, index) => { let $course = item.querySelector('.course_item_brief'); let $lastChild = $course.lastChild; let _innertext = $lastChild.innerText; if (_innertext == '未完成' && this.parentIndex == -1) { this.parentIndex = index; return true; } }); yield sleep(200); ElementObj.$parentNodes[this.parentIndex].click(); setTimeout(() => { this.initPlayPage(); }, 2500); }), 1000); } } mingshiclass.ctxid = 17; /** * 强师 * 18 * */ class qiangshi extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } _init() { try { let _win1 = document.querySelectorAll('iframe')[2].contentWindow; let _win2 = _win1.document.querySelectorAll('iframe')[0].contentWindow; this._document = _win2.document; } catch (e) { } let interval = setInterval(() => { // 获取所有章节 try { // @ts-ignore let _win1 = document.querySelector('.contentIframe').contentWindow; ElementObj.$allTask = _win1.document.querySelectorAll('.s_point'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }, 1000); } getCurrentIndex() { let activeClass = 'done_icon_show'; ElementObj.$allTask.forEach((item, index) => { let $item = item.querySelector('.item_done_icon'); if (!$item.classList.contains(activeClass) && this.currentIndex == -1) { this.currentIndex = index; } }); if (this.currentIndex == -1) { alert('当前章节课程已全部学完'); return; } showTip('⚠️⚠️⚠️初始化完成,即将开始播放', 3000); setTimeout(() => { this._o1(); }, 4500); ElementObj.$handleSpeedUp.style.display = 'none'; } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { try { // @ts-ignore let _document = document.querySelectorAll('iframe')[2].contentDocument.querySelectorAll('iframe')[0].contentDocument; ElementObj.$video = _document === null || _document === void 0 ? void 0 : _document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } } catch (e) { } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask[this.currentIndex].click(); yield sleep(3500); yield this.getVideoDom(); ElementObj.$video.volume = 0; let $playBtn = this._document.querySelector('#player_pause'); $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click(); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = localStorage.getItem('_localSpeed') || toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('课程已全部部分完'); return; } this.currentIndex += 1; showTip('⚠️⚠️⚠️正在切换课程', 3500); setTimeout(() => { this._o1(); }, 4000); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = localStorage.getItem('_localSpeed') || toolOption.accelerator; }, 1500); }); }); } } qiangshi.ctxid = 18; /** * 兰州理工大学 * * 19 * */ class lanzhgoulgjs extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } _init() { // 获取所有章节 let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { // 获取所有章节 let $nodes1 = document.querySelectorAll('.chapterlist .drop p'); // 公需课 let $nodes2 = document.querySelectorAll('.chapterlist .videoList p'); // 专业课 if ($nodes1.length || $nodes2.length) { clearInterval(interval); ElementObj.$allTask = $nodes1.length ? $nodes1 : $nodes2; this.getCurrentIndex(); } }), 1000); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let arr = []; ElementObj.$allTask.forEach((item, index) => { let $class_percent = item.querySelector('.class_percent'); if (!!$class_percent) { let status = $class_percent.innerText; arr.push(parseInt(status)); } else { arr.push(0); } }); arr.reverse(); for (var i = 0; i <= arr.length - 1; i++) { if (arr[i] < 98) { this.currentIndex = arr.length - i - 1; break; } } // 因为看不到第一个所以,跳一下再看 if (this.currentIndex == 0) { ElementObj.$allTask[1].querySelector('a').click(); yield sleep(4000); ElementObj.$allTask = document.querySelectorAll('.chapterlist .drop p'); yield sleep(200); let status = ElementObj.$allTask[0].querySelector('.class_percent').innerText; if (parseInt(status) < 98) { this.currentIndex = 0; } else { alert('当前科目课程已全部播放完'); return; } } if (this.currentIndex == -1) { alert('当前科目课程已全部播放完'); return; } ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉🔉🔉初始化完成,5s后开始播放', 3000); this.pdPlayFn(location.href); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); let videosrc = ElementObj.$video.src; let $iframe = document.querySelector('iframe'); if (!!videosrc) { clearInterval(Timer); resolve(1); } if ($iframe) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { let $nextP = ElementObj.$allTask[this.currentIndex]; let $nextBtn = $nextP.querySelector('a'); yield sleep(300); $nextBtn.click(); yield sleep(3000); let result = yield this.getVideoDom(); if (result == 1) { clearInterval(this.listenVidoeStatusTimer); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); let $wrap = document.querySelector('.ckplayer-ckplayer'); this.changeHtml($wrap); this.reloadPage(); this.listenPageHide(); this.listenAbnormal(1); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { location.reload(); })); } // 学生版本 if (result == 2) { let $thirdplayer = document.querySelector("#thirdplayer"); this.changeHtml($thirdplayer); this.reloadPage(); this.listenPageHide(); this.listenAbnormal(0); } }); } reloadPage() { return __awaiter(this, void 0, void 0, function* () { let count = 3 * 60; let studyInterval = setInterval(() => { if (count <= 0) { clearInterval(studyInterval); location.reload(); } count -= 1; }, 1000); }); } /** * 监听异常 * */ listenAbnormal(type) { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; setInterval(() => { count += 1; if (type == 0) { this.addInfo(`后台学习${count}次,当前状态正在学习`); } else { let time = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`); } let $layuilayerbtn0 = document.querySelector('.layui-layer-btn0'); if (!!$layuilayerbtn0) { location.reload(); return; } }, 5000); } changeHtml($wrap) { return __awaiter(this, void 0, void 0, function* () { let _style = ` width: 796px; height: 545px; background: #eae9e9; position: absolute; z-index: 10; overflow: scroll; top: 0; padding-left: 10px; `; let dom = document.createElement('div'); dom.setAttribute('class', 'ctxstatsbox'); dom.setAttribute('style', _style); $wrap.appendChild(dom); yield sleep(300); ElementObj.$ctxstatsbox = document.querySelector('.ctxstatsbox'); this.addInfo('🔉初始化已完成,正在播放'); this.addInfo('⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程', 0); }); } addInfo(str, type) { let $ctxstatsbox_lis = document.querySelectorAll('.ctxstatsbox_li'); if ($ctxstatsbox_lis.length >= 15) { ElementObj.$ctxstatsbox.innerHTML = ''; } let li = `<li class="ctxstatsbox_li" style="color: ${type == 0 ? '#f01414' : '#000'};line-height: 30px;font-size: 16px;">${str}</li>`; ElementObj.$ctxstatsbox.innerHTML += li; } listenPageHide() { let timer3; document.addEventListener("visibilitychange", () => { if (document.hidden) { // 页面被隐藏 let count = 0; timer3 = setInterval(() => { count += 1; if (count >= 5) { this.addInfo('⚠️⚠️⚠️请勿长时间隐藏该学习页面', 0); } }, 5000); } else { clearInterval(timer3); // 页面被显示 } }); } } /** * 北京教师学习网 * 20 * */ class beijingjiaoshi extends Main { constructor() { super(); this.taskLength = 0; this.topIndex = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let $item_btn = document.querySelector('.item_btn'); ElementObj.$topNode = document.querySelectorAll('.el-collapse-item__header'); if (!!$item_btn) { yield sleep(2000); $item_btn.click(); setTimeout(() => { window.close(); }, 1500); } else if (ElementObj.$topNode.length) { // let index = await this.getDoing() as number // // ElementObj.statusEles[index].click() // await sleep(3000) // this.getParentIndex() forData: for (let item of ElementObj.$topNode) { if (!item.classList.contains('is-active')) { item.click(); yield sleep(1500); } let trs = item.parentElement.nextSibling.querySelectorAll('tr.el-table__row'); for (let tr of trs) { let status = tr.querySelector('.el-progress-bar__inner').style.width; if (status != '100%') { MyTool.setValue('homeUrl', location.href); tr.querySelector('.btn.to-study').click(); break forData; } } } } else { // 获取所有章节 let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.course-info .video-title'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } }), 1000); } }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$topNode = document.querySelectorAll('.el-collapse-item'); yield sleep(200); let len = ElementObj.$topNode.length; let _interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (this.topIndex >= len - 1) { clearInterval(_interval); } yield sleep(2000); let $item = ElementObj.$topNode[this.topIndex]; if (this.topIndex != 0) { $item.querySelector('.item-title-col').click(); } yield sleep(300); ElementObj.$parentNodes = $item.querySelectorAll('.el-table__row'); yield sleep(300); ElementObj.$parentNodes.forEach((item, index) => __awaiter(this, void 0, void 0, function* () { let $course_num = item.querySelector('.course_num'); let _status = $course_num.innerText; if (_status != '课程:100%' && this.parentIndex == -1) { clearInterval(_interval); this.parentIndex = index; let $toStudyBtn = item.querySelector('.to-study'); yield sleep(200); $toStudyBtn.click(); setTimeout(() => { window.close(); }, 1500); } })); this.topIndex += 1; }), 3000); }); } /** * 获取最外层父类 * */ getDoing() { return new Promise((resolve) => { let isFirst = false; ElementObj.statusEles = document.querySelectorAll('.li-item .el-progress-bar__inner'); ElementObj.statusEles.forEach((item, index) => { let status = item.style.width; if (parseInt(status) <= 98 && isFirst == false) { isFirst = true; resolve(index); } }); if (!isFirst) { resolve(0); } }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let activeClass = 'on'; ElementObj.$allTask.forEach((item, index) => { let $fourEle = item.querySelector('.four'); let _status = $fourEle.innerText; if (_status != '100%' && this.currentIndex == -1) { this.currentIndex = index; } }); ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(200); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); yield this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $startBtn = document.querySelector('.xgplayer-start'); yield sleep(200); $startBtn.click(); ElementObj.$video.playbackRate = toolOption.accelerator; this.punchCard(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenVidoeStatus(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { setTimeout(() => { window.close(); }, 1500); let homeUrl = MyTool.getValue('homeUrl'); location.replace(homeUrl); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); })); ElementObj.$video.addEventListener('pause', () => { }); ElementObj.$video.addEventListener('playing', () => { }); ElementObj.$video.addEventListener('waiting', () => { }); }); } /** * 监听视频状态 * */ listenVidoeStatus() { this.timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { let status = ElementObj.$video.paused; if (status) { ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; ElementObj.$video.play(); } else { } } }, 3000); } /** * 课程打卡 * */ punchCard() { setInterval(() => { let $elem = document.querySelector('#comfirmClock'); if (!!$elem) { $elem.click(); } }, 5000); } } /** * 专技天下 * 21 * */ class qingyangzgzjzj extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this._init(); } _init() { let interval = setInterval(() => { // 获取所有章节 ElementObj.$parentNodes = document.querySelectorAll('.swiper-slide'); if (ElementObj.$parentNodes.length) { clearInterval(interval); this.getParentIndex(); } }, 1000); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('正在初始化', 1500); ElementObj.$parentNodes.forEach((item, index) => { let $progresstext = item.querySelector('.progresstext'); let status = $progresstext.innerText; if (parseInt(status) < 97 && this.parentIndex == -1) { this.parentIndex = index; ElementObj.$parentNodes[this.parentIndex].querySelector('.left-img').click(); } }); if (this.parentIndex == -1) { alert('课程已全部播放完'); return; } this.getCurrentIndex(); }); } _getParentIndex() { let result = 0; for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) { let $progresstext = ElementObj.$parentNodes[i].querySelector('.progresstext'); let status = $progresstext.innerText; if (parseInt(status) < 95) { result = i; break; } } return result; } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"); yield sleep(2000); ElementObj.$allTask[0].click(); // ElementObj.$allTask[7].click() this.currentIndex = 0; ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉初始化完成,5秒后自动开始播放', 3000); setTimeout(() => { this._o1(); }, 3000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); clearInterval(this.timer2); yield this.getVideoDom(); ElementObj.$video = document.querySelector('video'); ElementObj.$video.volume = 0; ElementObj.$video.currentTime = 0; ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$video.play(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenVidoeStatus(); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } listenVidoeStatus() { this.timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { let status = ElementObj.$video.paused; if (status) { ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; ElementObj.$video.play(); } } }, 3000); } listenRebort() { this.timer2 = setInterval(() => { var _c; let $rebort = (_c = document.querySelector('.progress')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('span')[1].innerText.trim(); if ($rebort == '100%') { location.reload(); } }, 3000); } playNext() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"); yield sleep(1500); if (this.currentIndex >= ElementObj.$allTask.length - 1) { location.reload(); return; } // this.currentIndex += 1 // let $nextTaskBtn = document.querySelector('.nextdontcheatorshit') as HTMLElement | null; // await sleep(200) // $nextTaskBtn?.click() // setTimeout(() => { // this._o1() // }, 5000) }); } } /** * 兰州文理学院继续教育 * 还未开发完,缺少视频连播 * jxjypt.luas.edu.cn * 22 * */ class lanzhouwenli extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this._init(); } _init() { let interval = setInterval(() => { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.video'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } }, 1000); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask.forEach((item, index) => { let $progress = item.querySelector('.el-progress__text'); let status = $progress.innerText; if (parseInt(status) < 96 && this.currentIndex == -1) { this.currentIndex = index; } }); if (this.currentIndex == -1) { alert('当前章节课程已全部播放完'); return; } showTip('🔉🔉🔉初始化完成,即将开始播放', 3000); yield sleep(2000); ElementObj.$allTask[this.currentIndex].click(); yield sleep(2500); this._o1(); }); } play() { return __awaiter(this, void 0, void 0, function* () { yield this.getVideoDom(); let $volume = document.querySelector('.volume-icon'); $volume.classList.add('mute'); ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$video.play(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { yield sleep(1500); if (this.currentIndex >= ElementObj.$allTask.length - 1) { this.parentIndex += 1; yield sleep(200); ElementObj.$parentNodes[this.parentIndex].querySelector('.left-img').click(); if (this.parentIndex >= ElementObj.$parentNodes.length - 1) { alert('课程已全部播放完了'); return; } } let $backBtn = document.querySelector('.videoleft img'); yield sleep(200); $backBtn.click(); showTip('正在切换课程', 3000); setTimeout(() => __awaiter(this, void 0, void 0, function* () { this.currentIndex += 1; let $nextTaskBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(2000); $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click(); setTimeout(() => { this._o1(); }, 5000); }), 5500); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.play(); }, 4000); }); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } } /** * 国家智慧教育公共服务平台 * 24 * */ class guojiazhihuijiaoyu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } _init() { // 获取所有章节 let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { // 获取所有章节 let $allTask1 = document.querySelectorAll('.video-title .four'); if ($allTask1.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = $allTask1; this.getCurrentIndex(); } }), 1000); } getCurrentIndex() { ElementObj.$allTask.forEach((item, index) => { if (item.innerText != '100%' && this.currentIndex == -1) { this.currentIndex = index; } }); if (this.currentIndex == -1) { this.currentIndex = 0; } showTip('🔉🔉🔉初始化完成,即将开始自动播放', 3000); this._o1(); } play() { return __awaiter(this, void 0, void 0, function* () { let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); $nextBtn.click(); yield sleep(3000); // @ts-ignore document.querySelector('video').volume = 0; let $playBtn = document.querySelector('.xgplayer-icon-play'); $playBtn.click(); yield this.getVideoDom(); ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; this.listenVidoeStatus(); let $btn0 = document.querySelector('.layui-layer-btn0'); if (!!$btn0) { $btn0.click(); } ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenTopic(); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { let $close = document.querySelector('.layui-layer-btn0'); yield sleep(3000); if (!!$close) { $close.click(); } this.currentIndex += 1; setTimeout(() => { this._o1(); }, 5000); })); }); } listenTopic() { let inter = setInterval(() => { try { let $submit = document.querySelector('#submit'); if (!!$submit) { this.answerTopic(); } } catch (e) { } }, 1000 * 5); } answerTopic() { return __awaiter(this, void 0, void 0, function* () { let $choice = document.querySelectorAll('.choice li')[0]; yield sleep(200); $choice.click(); let $submit = document.querySelector('#submit'); yield sleep(1000); $submit.click(); yield sleep(2000); $submit = document.querySelector('#submit'); yield sleep(200); $submit.click(); yield sleep(4500); let $close = document.querySelector('.layui-layer-btn0'); yield sleep(200); $close.click(); }); } /** * 监听视频状态 * */ listenVidoeStatus() { let count = 0; this.timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { let status = ElementObj.$video.paused; if (status) { ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; ElementObj.$video.play(); } else { } } }, 1000 * 10); } } /** * 兰州大学成人教育 * 25 * */ class lanzhouchengren extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = 3; this.loadedCount = 0; this.type = 1; this._init(); } _init() { let interval = setInterval(() => { // 公开课 if (location.pathname == '/courseVideo/index') { ElementObj.$allTask = document.querySelectorAll('.ant-tree-node-content-wrapper-normal .chapter-tree-level2'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } } else { // 获取所有章节 ElementObj.$allTask = document.querySelectorAll('.activity li'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } } }, 1000); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { // 公开课 if (location.pathname == '/courseVideo/index') { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $li = ElementObj.$allTask[i]; let $right = $li.querySelector('.right'); if (!$right) { this.currentIndex = i; break; } else { let $status = $right.querySelector('.percent-text'); if ($status.innerText != '已完成') { this.currentIndex = i; break; } } } if (this.currentIndex == -1) { alert('所有课程已播放完'); return; } ElementObj.$allTask[i].click(); } else { let activeClass = 'cur'; ElementObj.$allTask.forEach((item, index) => { if (item.classList.contains(activeClass)) { this.currentIndex = index; } }); if (this.currentIndex == -1) { this.currentIndex = 0; } } ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉初始化完成,5秒后开始播放', 3000); yield sleep(3000); this._o1(); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); // 判断是文档还是视频 let studyType = yield this.getVideoDom(); yield sleep(200); if (studyType == 1) { setTimeout(() => __awaiter(this, void 0, void 0, function* () { this.currentIndex += 1; let $li = ElementObj.$allTask[this.currentIndex]; let $nextTaskBtn = $li === null || $li === void 0 ? void 0 : $li.querySelector('h3'); yield sleep(2000); $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click(); }), 3000); } // 视频 if (studyType == 2) { ElementObj.$video.volume = 0; ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$video.play(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; if (location.pathname == '/venus/study/activity/video/study.do') { this.listenVidoeStatus(ElementObj.$video, () => { let $li = ElementObj.$allTask[this.currentIndex]; let $nextTaskBtn = $li === null || $li === void 0 ? void 0 : $li.querySelector('h3'); $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click(); }); this.reloadPage(); } ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { this.videoplaying = 1; setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1000); }); ElementObj.$video.addEventListener('playing', () => { this.videoplaying = 2; }); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { this.videoplaying = 3; yield sleep(1500); if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前章节课程已全部播放完了'); return; } this.currentIndex += 1; let $li = ElementObj.$allTask[this.currentIndex]; let $nextTaskBtn; if (location.pathname == '/courseVideo/index') { $nextTaskBtn = $li; $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click(); setTimeout(() => { this._o1(); }, 3000); } else { $nextTaskBtn = $li === null || $li === void 0 ? void 0 : $li.querySelector('h3'); yield sleep(2000); $nextTaskBtn === null || $nextTaskBtn === void 0 ? void 0 : $nextTaskBtn.click(); } }); } /** * 获取视频dom * */ getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); ElementObj.$myFrame = document.querySelector('#myFrame'); if (!!ElementObj.$video) { clearInterval(Timer); this.type = 2; resolve(2); } if (!!ElementObj.$myFrame) { clearInterval(Timer); this.type = 1; resolve(1); } }, 1000); }); } reloadPage() { return __awaiter(this, void 0, void 0, function* () { let count = 10 * 60; let watch = 0; let studyInterval = setInterval(() => { watch += 1; if (watch % 15 == 0) { console.clear(); } if (watch % 5 == 0) { } if (count <= 0) { clearInterval(studyInterval); location.reload(); } count -= 1; }, 1000); }); } } /** * 天水博通职业技术培训学校 * 26 * */ class tsbtchinamde extends Main { constructor() { super(); this.taskLength = 0; this.studyType = 1; this.currentIndex = -1; this._init(); } _init() { // 获取所有章节 let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { // 获取所有章节 let $allTask1 = document.querySelectorAll('.chapterlist .item p'); let $allTask2 = document.querySelectorAll('.chapterlist .chapter-li .drop p'); if ($allTask1.length || $allTask2.length) { clearInterval(interval); ElementObj.$allTask = $allTask2.length ? $allTask2 : $allTask1; this.getCurrentIndex(); ElementObj.$handleSpeedUp.style.display = 'none'; } }), 1000); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let arr = []; ElementObj.$allTask.forEach((item, index) => { let $class_percent = item.querySelector('.class_percent'); if (!!$class_percent) { let status = $class_percent.innerText; arr.push(parseInt(status)); } else { arr.push(0); } }); arr.reverse(); for (var i = 0; i <= arr.length - 1; i++) { if (arr[i] < 98) { this.currentIndex = arr.length - i - 1; break; } } // 因为看不到第一个所以,跳一下再看 if (this.currentIndex == 0) { ElementObj.$allTask[1].querySelector('a').click(); yield sleep(4000); ElementObj.$allTask = document.querySelectorAll('.chapterlist .drop p'); yield sleep(200); let status = ElementObj.$allTask[0].querySelector('.class_percent').innerText; if (parseInt(status) < 98) { this.currentIndex = 0; } else { alert('当前科目课程已全部播放完'); return; } } if (this.currentIndex == -1) { alert('当前科目课程已全部播放完'); return; } ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉🔉🔉初始化完成,5s后开始播放', 3000); this._o1(); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); let videosrc = ElementObj.$video.src; if (!!videosrc) { clearInterval(Timer); resolve(1); } else { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); let $nextP = ElementObj.$allTask[this.currentIndex]; let $nextBtn = $nextP.querySelector('a'); yield sleep(300); $nextBtn.click(); this.studyType = (yield this.getVideoDom()); if (this.studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); yield sleep(200); ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } let $wrap = this.studyType == 1 ? $el('#player') : $el('#thirdplayer'); this.changeHtml($wrap); this.reloadPage(); this.listenPageHide(); this.studyType == 1 ? this.listenAbnormal(1) : this.listenAbnormal(0); setTimeout(() => { this.addInfo('⚠️⚠️⚠️课程采用倒着播放,请勿手动更换课程', 0); }, 1000); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { location.reload(); })); }); } reloadPage() { return __awaiter(this, void 0, void 0, function* () { let count = 6 * 60; let studyInterval = setInterval(() => { if (count <= 0) { clearInterval(studyInterval); location.reload(); } count -= 1; }, 1000); }); } /** * 监听异常 * */ listenAbnormal(type) { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; setInterval(() => { count += 1; if (type == 0) { this.addInfo(`后台学习${count}次,当前状态正在学习`); } if (type == 1) { let time = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`); } let $layuilayerbtn0 = document.querySelector('.layui-layer-btn0'); if (!!$layuilayerbtn0) { location.reload(); return; } }, 5000); } } tsbtchinamde.ctxid = 26; /** * 浙江省住房和城乡建设行业专业技术人员继续教育系统 * 28 * */ class zjzjsrc extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.wrapParentIndex = 0; // 更改年份 【0代表第一个年份课程,1代表第二个年份的课程....以此类推】 this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (location.pathname == '/member/project_toMyCourseList.page') { clearInterval(interval); let $page1 = document.querySelectorAll('td .btn-xs')[this.wrapParentIndex]; $page1.click(); yield sleep(2000); let index = yield this.getParentIndex(); let $parentTask = document.querySelectorAll('.panel-body')[0].querySelectorAll('tbody tr'); let $item = $parentTask[index]; let $openBtn = $item.querySelector(".btn-xs[name='btn1']"); $openBtn === null || $openBtn === void 0 ? void 0 : $openBtn.click(); yield sleep(2000); // 查询第二层级的 ElementObj.$allTask = document.querySelectorAll(".btn-xs[name='btn1']"); this.step2(); // this.getCurrentIndex() } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); } }), 1000); }); } getParentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { let result = -1; let $parentTask = document.querySelectorAll('.panel-body')[0].querySelectorAll('tbody tr'); for (var i = 0; i <= $parentTask.length - 1; i++) { let tdIndex = location.host === '2j.zjjsrc.cn' ? 4 : 6; let $status = $parentTask[i].querySelectorAll('td')[tdIndex].innerText; if ($status == '未开始学习') { result = i; break; } } if (result == -1) { let $lastPageBtn = document.querySelector('#option1').lastChild; let $nextBtn = (_c = document.querySelector('#option1')) === null || _c === void 0 ? void 0 : _c.querySelector("a[title='Go to next page']"); if (!$lastPageBtn.classList.contains('active')) { $nextBtn.click(); yield sleep(2000); result = yield this.getParentIndex(); } else { return result; } } return result; }); } getCurrentIndex() { showTip('正在初始化'); ElementObj.$handleSpeedUp.style.display = 'none'; let $progressNodes = document.querySelectorAll('.progress-bar'); let result = -1; for (var i = 0; i <= $progressNodes.length - 1; i++) { let _ele = $progressNodes[i]; let status = _ele.style.width; if (parseInt(status) != 100) { result = i; break; } } return result; } step2() { var _c; return __awaiter(this, void 0, void 0, function* () { let index = 0; let $items = (_c = document.querySelector('#myModal .panel-body')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('tbody tr'); let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { let $openBtn = $items[index].querySelector(".btn-xs[name='btn2']"); $openBtn === null || $openBtn === void 0 ? void 0 : $openBtn.click(); yield sleep(500); let result = this.getCurrentIndex(); if (result != -1) { clearInterval(timer); let $progressNodes = document.querySelectorAll('#myModal1 tbody tr')[result]; let $a = $progressNodes.querySelector('a'); // @ts-ignore GM_openInTab($a.href, { active: true }); localStorage.setItem('learnStatus', '-1'); if (location.host === '2j.zjjsrc.cn') { window.addEventListener('storage', (event) => { if (event.key === 'learnStatus') { var message = event.newValue; if (message === 'done') { location.reload(); } } }); } if (location.host !== '2j.zjjsrc.cn') { setTimeout(() => { window.close(); }, 1000 * 15); } } index++; }), 2000); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); yield sleep(200); ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; this.changeHtml($el('#example_video_1')); this.listenPlayTime(); this.listenPageHide(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.videoplaying = -1; if (location.host === '2j.zjjsrc.cn') { localStorage.setItem('learnStatus', 'done'); } else { // @ts-ignore GM_openInTab('https://zj.zjjsrc.cn/member/project_toMyCourseList.page', { active: true }); } setTimeout(() => { window.close(); }, 1000 * 15); })); ElementObj.$video.addEventListener('pause', () => { let timer; clearInterval(timer); timer = setTimeout(() => { let $playBtn = document.querySelector('.vjs-play-control'); $playBtn.click(); }, 100); }); }); } listenPlayTime() { let count = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c, _d; count += 1; let currentTime = (_c = ElementObj.$video) === null || _c === void 0 ? void 0 : _c.currentTime; let time = (currentTime / 60).toFixed(2); let durtion = (_d = ElementObj.$video) === null || _d === void 0 ? void 0 : _d.duration; this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`); }), 5000); } } zjzjsrc.ctxid = 26; /** * 兰州资源环境职业技术大学 * 29 lzrejxjy * */ class lzrejxjy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$handleSpeedUp.style.display = 'none'; let $trans2 = document.querySelectorAll('.my-center2RM .pull-left a.trans')[1]; if (!!$trans2) { clearInterval(interval); // @ts-ignore GM_setValue("homeUrl", location.href); $trans2 === null || $trans2 === void 0 ? void 0 : $trans2.click(); showTip('🔉正在初始化'); yield sleep(2000); ElementObj.$parentNodes = document.querySelectorAll('.class2Li'); this.findParentIndex(); return; } let $menus = document.querySelectorAll('.learn-menu-cell'); if ($menus.length) { clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { if (location.host != 'zjdx-kfkc.webtrn.cn') { let $menu2 = document.querySelectorAll('.learn-menu-cell')[1]; if (!$menu2.classList.contains('learn-menu-cur')) { let $menu2_a = $menu2.querySelector('a'); $menu2_a.click(); } yield sleep(3000); } let $contentIframe = document.querySelector('.contentIframe'); ElementObj._document = $contentIframe.contentWindow.document; ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_point'); showTip('正在初始化'); ElementObj.$handleSpeedUp.style.display = 'none'; let activeClass = 'done_icon_show'; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i].querySelector('.item_done_icon'); if (!$item.classList.contains(activeClass)) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { // @ts-ignore let homeUrl = GM_getValue("homeUrl", null); // @ts-ignore GM_openInTab(homeUrl, { active: true }); setTimeout(() => { window.close(); }, 1500); return; } (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click(); showTip('初始化完成,5秒后开始播放'); this._o1(); }); } findParentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; let $a; ElementObj.$parentNodes.forEach((item, index) => { let $class2Li = item.querySelector('.color-theme'); let status = $class2Li.innerText; if (parseInt(status) <= 98 && this.currentIndex == -1) { this.currentIndex = index; $a = item.querySelector('a.btn-theme'); } }); if (this.currentIndex == -1) { alert('全部课程已学完'); return; } $a.click(); setTimeout(() => { window.close(); }, 1500); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { var _c; if (count > 7) { clearInterval(Timer); resolve(2); } let _document = (_c = ElementObj._document.querySelector('#mainFrame')) === null || _c === void 0 ? void 0 : _c.contentWindow.document; ElementObj.$video = _document === null || _document === void 0 ? void 0 : _document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); } count += 1; }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studytype = yield this.getVideoDom(); if (studytype == 2) { this.playNext(); } if (studytype == 1) { ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); yield sleep(200); ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; this.listenRebort(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } }); } updateSpeedElement(num) { localStorage.setItem('_localSpeed', num.toString()); ElementObj.$video.playbackRate = num; } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.layui-layer-btn0'); if (!!$btn) { setTimeout(() => { $btn.click(); ElementObj.$video.play(); }, 3000); } }, 10 * 1000); } playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { // @ts-ignore let homeUrl = GM_getValue("homeUrl", null); // @ts-ignore GM_openInTab(homeUrl, { active: true }); setTimeout(() => { window.close(); }, 1500); return; } this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); showTip('🔉正在切换课程'); setTimeout(() => { this._o1(); }, 5000); } } lzrejxjy.ctxid = 29; /** * 徐州医科大学 * 30 * xuzhouyikedaxue * */ class xuzhouyikedaxue extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.parentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $menu = document.querySelector('#courseware_main_menu'); let $menu_a = $menu.querySelector('a'); if (!!$menu_a) { clearInterval(interval); $menu_a.click(); this.findParentIndex(); } } catch (e) { } }), 1000); }); } findParentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('🔉正在初始化', 2500); yield sleep(4500); ElementObj.$handleSpeedUp.style.display = 'none'; let $contentIframe = document.querySelector('.contentIframe'); let _document = $contentIframe.contentWindow.document; ElementObj.$parentNodes = _document.querySelectorAll('.vcon li'); ElementObj.$parentNodes.forEach((item, index) => { let $span = item.querySelector('span'); if (($span.classList.contains('undo') || $span.classList.contains('doing')) && this.parentIndex == -1) { this.parentIndex = index; } }); if (this.parentIndex == -1) { alert('当前课程已全部播发完'); return; } ElementObj.$parentNodes[this.parentIndex].querySelector('a').click(); this.getCurrentIndex(); }); } getCurrentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { showTip('正在初始化', 2500); yield sleep(4500); let $contentIframe = document.querySelector('.contentIframe'); ElementObj._document = $contentIframe.contentWindow.document; ElementObj.$allTask = ElementObj._document.querySelectorAll('.menub'); this.currentIndex = 0; (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click(); showTip('初始化完成,5秒后开始播放'); this._o1(); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { let $contentIframe = document.querySelector('.contentIframe'); ElementObj._document = $contentIframe.contentWindow.document; let _document = ElementObj._document.querySelector('#mainFrame').contentDocument; ElementObj.$video = _document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } let $doc = _document.querySelector('#content_frame'); if (!!$doc) { clearInterval(Timer); resolve(2); } else { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer2); // @ts-ignore unsafeWindow.alert = () => { }; let studytype = yield this.getVideoDom(); this.listenRebort(); if (studytype == 1) { ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { yield sleep(3000); this.playNext(); })); } if (studytype == 2) { this.timer2 = setTimeout(() => { this.playNext(); }, 7000); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.layui-layer-btn a'); if (!!$btn) { $btn.click(); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅播放完成,正在切换课程', 3500); if (this.currentIndex >= ElementObj.$allTask.length - 1) { this.parentIndex += 1; ElementObj.$parentNodes[this.parentIndex].querySelector('a').click(); setTimeout(() => { this.getCurrentIndex(); }, 4500); return; } this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } } xuzhouyikedaxue.ctxid = 26; /** * 西北师范大学专业技术人员继续教育基地(甘肃省)网络学习平台 * xibeisfzyjy * 31 * */ class xibeisfzyjy extends Main { constructor() { super(); this.studyType = 2; this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.swiperIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $allTask1 = document.querySelectorAll('.el-tree-node'); // 选修课 let $allTask2 = document.querySelectorAll('.m-chapterList .section'); // 公需课 if ($allTask1.length || $allTask2.length) { this.studyType = $allTask1.length ? 2 : 1; ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2; clearInterval(interval); this.getCurrentIndex(); } ElementObj.$parentNodes = document.querySelectorAll('.project-courseBottom'); if (ElementObj.$parentNodes.length) { clearInterval(interval); this.getParentIndex(); } let _host = location.host; if (_host == 'preview.dccloud.com.cn') { clearInterval(interval); yield sleep(1500); window.close(); } } catch (e) { } }), 1000); }); } getParentIndex() { for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) { let status = ElementObj.$parentNodes[i].querySelector('span'); if (status != '已学习') { this.parentIndex = i; break; } } if (this.parentIndex == -1) { alert('课程已全部学完'); } ElementObj.$parentNodes[i].querySelector('.project-courseButton').click(); } // 选修课 获取章节下的第几个视频 getSwiperIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { // 文档 ElementObj.$video = document.querySelector('video'); yield sleep(200); if (!ElementObj.$video) { ElementObj.$docs = document.querySelectorAll('.abcd'); if (ElementObj.$docs.length) { this.playDoc(); } return; } ElementObj.$swiperItem = document.querySelectorAll('.public-articleSlideList'); if (!ElementObj.$swiperItem.length) { this._o1(); return; } for (var i = 0; i <= ElementObj.$swiperItem.length - 1; i++) { let status = ElementObj.$swiperItem[i].querySelector('.video-status').innerText; if (status != '已学习') { this.swiperIndex = i; break; } } if (this.swiperIndex == -1) { this.playNext(); } else if (this.swiperIndex == 0) { this._o1(); } else { ElementObj.$swiperItem[this.swiperIndex].querySelector('.el-icon-video-play').click(); showTip('⚠️⚠️⚠️正在初始化', 3500); let $btn = (_c = document.querySelector('.el-message-box__btns')) === null || _c === void 0 ? void 0 : _c.lastChild; yield sleep(2000); $btn.click(); setTimeout(() => { this._o1(); }, 5000); } }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; showTip('正在初始化', 2500); yield sleep(3500); let activeClass = this.studyType == 1 ? 'section-cur' : 'study'; ElementObj.$allTask.forEach((item, index) => { if (this.studyType == 1) { let $item = item; if ($item.classList.contains(activeClass)) { this.currentIndex = index; } } if (this.studyType == 2) { let $item = item.querySelector('i'); let status = $item.title; if (status != '已学习' && this.currentIndex == -1) { this.currentIndex = index; } } }); if (this.currentIndex == -1) { alert('当前课程章节已全部播放完'); return; } if (this.studyType == 2 && this.currentIndex != -1) { this.playNext(this.currentIndex - 1); } // if(this.currentIndex == -1){ // this.currentIndex = 0 // } showTip('⚠️⚠️⚠️初始化,请稍后', 3000); if (this.studyType == 1) { this._o1(); } if (this.studyType == 2) { this.getSwiperIndex(); } }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); if (this.studyType == 2) { let index = yield this.getDocIndex(); setTimeout(() => { this.eachPlayDoc(index); }, 3000); this.changeHtml($el('#video')); this.listenPageHide(); this.listenPlayTime(); this.reloadPage(); } this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { var _c; showTip('🔉正在切换课程', 2500); if (this.studyType == 2) { if (this.swiperIndex >= ElementObj.$swiperItem.length - 1) { location.reload(); } else { this.swiperIndex += 1; ElementObj.$swiperItem[this.swiperIndex].querySelector('.el-icon-video-play').click(); showTip('⚠️⚠️⚠️正在切换视频', 5000); let $btn = (_c = document.querySelector('.el-message-box__btns')) === null || _c === void 0 ? void 0 : _c.lastChild; yield sleep(2000); $btn.click(); setTimeout(() => { this._o1(); }, 5000); } } if (this.studyType == 1) { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前章节课程已学完'); return; } this.currentIndex += 1; let $nextBtn; $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a'); $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); } })); }); } getDocIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$docs = document.querySelectorAll('.abcd .file-box'); yield sleep(200); let index = -1; for (var i = 0; i <= ElementObj.$docs.length - 1; i++) { let status = ElementObj.$docs[i].querySelector('.fs12').innerText; if (status != '( 已完成 )') { index = i; break; } } return index; }); } playDoc(type) { return __awaiter(this, void 0, void 0, function* () { let index = yield this.getDocIndex(); if (index == -1) { this.playNext(); return; } this.eachPlayDoc(index, () => { setTimeout(() => __awaiter(this, void 0, void 0, function* () { this.playNext(); }), 2000); }); }); } eachPlayDoc(index = 0, callback) { if (index == -1) return; let T = setInterval(() => { if (index >= ElementObj.$docs.length - 1) { clearInterval(T); if (typeof callback == 'function') { callback(); } } ElementObj.$docs[index].querySelector('button').click(); index += 1; }, 2000); } playNext(nextIndex) { var _c; return __awaiter(this, void 0, void 0, function* () { if (nextIndex != undefined) { this.currentIndex = nextIndex; } if (this.currentIndex >= ElementObj.$allTask.length - 1) { // let $dingzhiFanhui = document.querySelector('.dingzhiFanhui') as HTMLElement; // await sleep(200) // $dingzhiFanhui.click() alert('当前章节课程已学完'); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelectorAll('span')[1]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); yield sleep(2000); let $btn = (_c = document.querySelector('.el-message-box__btns')) === null || _c === void 0 ? void 0 : _c.lastChild; if (!!$btn) { $btn.click(); } showTip('⚠️⚠️⚠️正在切换下一节', 4000); setTimeout(() => { this.getSwiperIndex(); }, 4500); }); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`); }, 5000); } reloadPage() { return __awaiter(this, void 0, void 0, function* () { let count = 6 * 60; let studyInterval = setInterval(() => { if (count <= 0) { clearInterval(studyInterval); location.reload(); } count -= 1; }, 1000); }); } } xibeisfzyjy.ctxid = 26; /** * 河南省专业技术人员学习公社 * 27 * henangongshe * */ class henangongshe extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { let $menuNodes = document.querySelectorAll('#bxkBtudyDiv a'); if ($menuNodes.length) { clearInterval(interval); this.getParentIndex($menuNodes); } ElementObj.$allTask = document.querySelectorAll('.course-info .video-title'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; }), 1000); }); } getParentIndex($menuNodes) { return __awaiter(this, void 0, void 0, function* () { $menuNodes[0].click(); showTip('⚠️⚠️⚠️正在初始化', 3000); yield sleep(3000); ElementObj.$parentNodes = document.querySelectorAll('tbody tr'); for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) { let status = ElementObj.$parentNodes[i].querySelector('span').innerText; if (parseInt(status) <= 98) { this.parentIndex = i; break; } } if (this.parentIndex == -1) { $menuNodes[1].click(); yield sleep(3000); ElementObj.$parentNodes = document.querySelectorAll('tbody tr'); for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) { let status = ElementObj.$parentNodes[i].querySelector('span').innerText; if (parseInt(status) <= 98) { this.parentIndex = i; break; } } } if (this.parentIndex == -1) { alert('全部课程已学完'); return; } // @ts-ignore let homeUrl = GM_setValue("homeUrl", location.href); ElementObj.$parentNodes[this.parentIndex].querySelector('button').click(); setTimeout(() => { window.close(); }, 5500); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️正在初始化', 3500); ElementObj.$allTask.forEach((item, index) => { let $fourEle = item.querySelector('.four'); let _status = $fourEle.innerText; if (_status != '100%' && this.currentIndex == -1) { this.currentIndex = index; } }); ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(200); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $startBtn = document.querySelector('.xgplayer-start'); yield sleep(200); $startBtn.click(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.punchCard(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { setTimeout(() => { window.close(); }, 1500); // @ts-ignore let homeUrl = GM_getValue("homeUrl", null); // @ts-ignore GM_openInTab(homeUrl, { active: true }); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); })); }); } /** * 课程打卡 * */ punchCard() { setInterval(() => { let $elem = document.querySelector('#comfirmClock'); if (!!$elem) { $elem.click(); } }, 5000); } updateSpeedElement(num) { localStorage.setItem('_localSpeed', num.toString()); ElementObj.$video.playbackRate = num; } } /** * 自贡开放大学 * zgrtvu * 32 * */ class zgrtvu extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { let $button = document.querySelector('.head_right button'); if (!!$button) { clearInterval(interval); $button.click(); } ElementObj.$allTask = document.querySelectorAll('.page-name'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️正在初始化', 3500); ElementObj.$allTask.forEach((item, index) => { let activeClass = 'complete'; if (!item.classList.contains(activeClass) && this.currentIndex == -1) { this.currentIndex = index; } }); ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(200); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $startBtn = document.querySelector('.mejs__overlay-button'); yield sleep(200); $startBtn.click(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.punchCard(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { setTimeout(() => { window.close(); }, 1500); let $backBtn = document.querySelector('.back-btn'); yield sleep(200); $backBtn.click(); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); })); }); } /** * 课程打卡 * */ punchCard() { setInterval(() => { let $elem = document.querySelector('.btn-submit'); if (!!$elem) { $elem.click(); } }, 5000); } } /** * 河南省专业技术人员继续教育网络学习平台 * henandikuang * 33 * */ class henandikuang extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$parentNodes = document.querySelectorAll('.state-l'); if (ElementObj.$parentNodes.length) { clearInterval(interval); ElementObj.$parentNodes[0].querySelector('.btn span').click(); return; } ElementObj.$parentNodes = document.querySelectorAll('.course-card-item'); if (ElementObj.$parentNodes.length) { clearInterval(interval); this.getParentIndex(); } ElementObj.$allTask = document.querySelectorAll('.pt5 li'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; }), 1000); }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { let index = -1; for (var i = 0; i < ElementObj.$parentNodes.length - 1; i++) { let status = ElementObj.$parentNodes[i].querySelector('.progress-bar').style.width; if (parseInt(status) < 98) { index = i; break; } } if (index == -1) { alert('当前课程已全部学完,请更换其它课程'); return; } ElementObj.$parentNodes[i].querySelector('a').click(); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️正在初始化', 1500); ElementObj.$allTask.forEach((item, index) => { let $pagress = item.querySelector('.badge'); let status = $pagress.innerText; if (parseInt(status) != 100 && this.currentIndex == -1) { this.currentIndex = index; } }); showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(200); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelectorAll('video')[1]; if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; // this.listenVidoeStatus(ElementObj.$video, () => { // ElementObj.$video.volume = 0 // ElementObj.$video.play() // }) ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let $backBtn = document.querySelector('a.back'); yield sleep(200); $backBtn.click(); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); })); }); } } /** * 泰安市专业技术人员续教育培训平台 * 34 * tazhuanjipx * */ class tazhuanjipx extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { this._o1(); }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { this._o1(); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️正在初始化', 1500); ElementObj.$allTask.forEach((item, index) => { let $pagress = item.querySelector('.badge'); let status = $pagress.innerText; if (parseInt(status) != 100 && this.currentIndex == -1) { this.currentIndex = index; } }); showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(200); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelectorAll('video')[1] || document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenTopic(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('全部课程已播放完'); return; } setTimeout(() => { this._o1(); }, 4500); })); }); } listenTopic() { this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; let topicList = document.querySelectorAll('.ccQuestionList li'); if (topicList.length) { clearInterval(this.timer); let result = MyTool.getValue('isRight'); if (!result) { let $item = topicList[0]; $item.click(); } else { let $item = topicList[1]; $item.click(); } yield sleep(3000); let $rightBtn = document.querySelector('#rightBtn'); if (!!$rightBtn) { MyTool.setValue('isRight', true); $rightBtn.click(); } else { MyTool.setValue('isRight', false); (_c = $el('#wrongBtn')) === null || _c === void 0 ? void 0 : _c.click(); } } }), 1000 * 10); } } /** * 浙江统计教育培训在线学习中心 * 36 * zhejiangtjj * */ class zhejiangtjj extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $allTask = document.querySelectorAll('.course_2'); // 最外层 let $allTask2 = document.querySelectorAll('tbody tr.el-table__row'); if ($allTask.length || $allTask2.length) { clearInterval(interval); ElementObj.$parentNodes = $allTask.length ? $allTask : $allTask2; let type = $allTask.length ? 1 : 2; this.getParentIndex(type); } ElementObj.$allTask = document.querySelectorAll('.page-name'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getParentIndex(type) { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️正在初始化', 1500); let startindex = type == 1 ? 0 : -1; ElementObj.$parentNodes.forEach((item, index) => { if (index > startindex) { let $pagress = item.querySelector('.el-progress__text'); let status = $pagress.innerText; if (parseInt(status) != 100 && this.currentIndex == -1) { this.currentIndex = index; } } }); if (this.currentIndex == -1 && type == 2) { let homeUrl = 'https://edu.tjj.zj.gov.cn/#/personal?componentId=ClassList&type=classlist'; // @ts-ignore GM_openInTab(homeUrl, { active: true }); setTimeout(() => { window.close(); }, 3500); return; } showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$parentNodes[this.currentIndex].querySelector('button'); yield sleep(200); $nextBtn.click(); setTimeout(() => { location.reload(); }, 3000); // setTimeout(()=>{ // window.close() // }, 4500) }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️正在初始化', 3500); ElementObj.$allTask.forEach((item, index) => { let activeClass = 'complete'; if (!item.classList.contains(activeClass) && this.currentIndex == -1) { this.currentIndex = index; } }); ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(200); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { var _c; // @ts-ignore let $iframe = (_c = document.querySelector('#playerFrame')) === null || _c === void 0 ? void 0 : _c.contentDocument; ElementObj.$video = $iframe.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $startBtn = document.querySelector('.mejs__overlay-button'); yield sleep(200); $startBtn.click(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.punchCard(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { setTimeout(() => { window.close(); }, 3500); let $backBtn = document.querySelector('.back-btn'); yield sleep(200); $backBtn.click(); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); })); }); } /** * 课程打卡 * */ punchCard() { setInterval(() => { let $elem = document.querySelector('.btn-submit'); if (!!$elem) { $elem.click(); } }, 5000); } } /** * 江西职业培训 * 38 * jiangxizhipeizaixian * */ class jiangxizhipeizaixian extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.units_wrap_box___1ncip'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️正在初始化', 1500); ElementObj.$allTask.forEach((item, index) => { let $pregree = item.querySelector('.progress_get_on___3TDga'); let $not_start = item.querySelector('.not_start___3dAwS'); if ((!!$pregree || !!$not_start) && this.currentIndex == -1) { this.currentIndex = index; } }); if (this.currentIndex == -1) { this.currentIndex = 0; } showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); ElementObj.$allTask[this.currentIndex].click(); showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); yield this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程视频已全部播放完'); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } } /** * 安徽继续教育在线 * 39 * anhuijixujyzx * */ class anhuijixujyzx extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; try { ElementObj.$btn_dropdown = document.querySelector('.btn_dropdown'); (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click(); let $nextBtn = document.querySelector('.btn.btn-green'); if (!!$nextBtn) { clearInterval(interval); yield sleep(300); $nextBtn.click(); } ElementObj.$allTask = document.querySelectorAll('.list-order ul li a:not(.toggle_lesson)'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getCurrentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500); yield sleep(1500); let $sectionlist = $el('#sectionlist'); if ($sectionlist.style.display != 'none') { (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click(); } setTimeout(() => { this._o1(); }, 4500); }); } getIndex() { let index = 0; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $parentElement = ElementObj.$allTask[i].parentElement; if ($parentElement.classList.contains('current')) { index = i; break; } } return index; } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelectorAll('video'); if (ElementObj.$video.length > 1) { ElementObj.$video = document.querySelectorAll('video')[1]; } else { ElementObj.$video = document.querySelectorAll('video')[0]; } if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); } else { clearInterval(Timer); resolve(2); } }, 3000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.listenPlayTime(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('🔉检测到没有视频,3秒后自动切换下一个', 3000); yield sleep(3000); let index = this.getIndex(); let $preNext = document.querySelector('.preNext.next'); if (!!$preNext) { $preNext.click(); return; } let $nextBtn = ElementObj.$allTask[index + 1]; yield sleep(200); $nextBtn.click(); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { }); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { count += 1; let $nextBtn = document.querySelector('.btn.btn-green'); if (!!$nextBtn) { clearInterval(this.timer); showTip('🔉检测到视频已学完,3秒后自动切换下一个'); setTimeout(() => { $nextBtn.click(); }, 3000); } }, 3000); } } /** * 兰州大学教育培训、甘肃省专业技术人员继续教育平台 * 40 * lanzhoudxgs * */ class lanzhoudxgs extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this.listenVidoeStatusTimer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; try { ElementObj.$btn_dropdown = document.querySelector('#catalogA'); (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click(); ElementObj.$allTask = document.querySelectorAll('li.activity-node'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getCurrentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500); yield sleep(1500); let $sectionlist = $el('#toolsContentDiv'); if ($sectionlist.style.display != 'none') { (_c = ElementObj.$btn_dropdown) === null || _c === void 0 ? void 0 : _c.click(); } let arr = []; ElementObj.$allTask.forEach((item, index) => { let $i = item.querySelector('.cedu-file-video'); if (!!$i) { arr.push(item); } }); ElementObj.$allTask = arr; this.currentIndex = 0; setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { let $playBtn = document.querySelector('.vjs-big-play-button'); ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video && !!$playBtn) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $playBtn = document.querySelector('.vjs-big-play-button'); yield sleep(200); $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click(); yield sleep(2500); ElementObj.$video.pause(); setTimeout(() => { ElementObj.$video.currentTime -= 30; ElementObj.$video.play(); }, 2500); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); this.changeHtml($el('#video_div')); this.listenPlayTime(); this.listenPageHide(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); }); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`); if (ElementObj.$video.currentTime >= ElementObj.$video.duration - 4) { this.playNext(); } }, 5000); } /** * 监听视频状态 * */ listenVidoeStatus($video, callback) { if (!$video) return; let count = 0; this.timer2 = setInterval(() => { if ($video.readyState < 4) { this.addInfo(`检测到${count}次,视频正在加载`, 0); count += 1; if (count >= 20) { location.reload(); } } let status = $video.paused; if (status) { count += 1; if (typeof callback == 'function') { if (count >= 20) { location.reload(); } else { callback(); } } else { } } }, 3000); } playNext() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); yield sleep(5000); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; yield sleep(300); let $i = $nextBtn.querySelector('.cedu-file-video'); if (!!$i) { $nextBtn.click(); } else { alert('当前课程视频已全部播放完'); } }); } } /** * 机电一体化设计系统 继续教育平台 * 41 * jidianshejijiaoyu * */ class jidianshejijiaoyu extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.swiperIndex = -1; this.timer = null; this.listenVidoeStatusTimer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $btn0 = document.querySelector('.layui-layer-btn0'); if (!!$btn0) { clearInterval(interval); this.playNext(); return; } ElementObj.$allTask = document.querySelectorAll('.course_chapter_item'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500); yield sleep(1500); ElementObj.$allTask.forEach((item, index) => { let $i = item.querySelector('i.fa-circle'); if (!$i && this.currentIndex == -1) { this.currentIndex = index; } }); if (this.currentIndex == -1) { alert('当前课程已全部播放完'); return; } ElementObj.$allTask[this.currentIndex].querySelector('.section_title').click(); showTip('⚠️⚠️⚠️正在初始化', 3500); setTimeout(() => { this.getSwiperIndex(); }, 4500); }); } getSwiperIndex() { ElementObj.$swiperItem = document.querySelectorAll('#menu_tarr_content .courseware_menu_item'); this.swiperIndex = -1; for (var i = 0; i <= ElementObj.$swiperItem.length - 1; i++) { let $item = ElementObj.$swiperItem[i]; let $i = $item.querySelector('.icon-note-video-learning'); if (!!$i) { this.swiperIndex = i; $item.click(); setTimeout(() => { this._o1(); }, 3500); break; } } if (this.swiperIndex == -1) { location.reload(); } } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { let $playBtn = document.querySelector('.vjs-big-play-button'); ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video && !!$playBtn) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; yield sleep(2500); ElementObj.$video.play(); this.changeHtml($el('.video-play')); this.listenPlayTime(); this.listenPageHide(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); }); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`); let $complete = document.querySelector('.complete'); if (!!$complete) { this.addInfo(`✅✅✅,当前视频播放完成,5秒后自动切换下一个视频`); if (this.swiperIndex >= ElementObj.$swiperItem.length - 1) { location.reload(); } else { this.swiperIndex += 1; $el('#right_tarr').click(); setTimeout(() => { this._o1(); }, 3500); } } if (ElementObj.$video.currentTime >= ElementObj.$video.duration - 4) { this.playNext(); } }, 5000); } /** * 监听视频状态 * */ listenVidoeStatus($video, callback) { if (!$video) return; let count = 0; this.timer2 = setInterval(() => { if ($video.readyState < 4) { this.addInfo(`检测到${count}次,视频正在加载`, 0); count += 1; if (count >= 20) { location.reload(); } } let status = $video.paused; if (status) { count += 1; if (typeof callback == 'function') { if (count >= 20) { location.reload(); } else { callback(); } } else { } } }, 3000); } playNext() { return __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); yield sleep(5000); let $btn0 = document.querySelector('.layui-layer-btn0'); if (!!$btn0) { $btn0.click(); yield sleep(2000); location.reload(); } }); } } /** * 兰州理工大学现代远程教育学习平台 * 44 * ycjyluteducn * */ class ycjyluteducn extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.parentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { window.alert = function () { }; let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { if (['/learnspace/learn/homework/blue/student/homework_complete.action', '/learnspace/course/test/coursewareTest_intoTestPage.action', "/learnspace/learn/learn/blue/content_video.action"].includes(location.pathname)) { clearInterval(interval); window.close(); return; } let $menu = document.querySelector('#courseware_main_menu'); let $menu_a = $menu.querySelector('a'); if (!!$menu_a) { clearInterval(interval); $menu_a.click(); yield this.findParentIndex(); } }), 500); }); } findParentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('🔉正在初始化', 2500); yield sleep(4500); // @ts-ignore unsafeWindow.alert = () => { }; ElementObj.$handleSpeedUp.style.display = 'none'; let $contentIframe = document.querySelector('.contentIframe'); let _document = $contentIframe.contentWindow.document; $contentIframe.contentWindow.alert = () => { }; ElementObj.$parentNodes = _document.querySelectorAll('.vcon li'); for (let i = 0; i < ElementObj.$parentNodes.length; i++) { let item = ElementObj.$parentNodes[i]; let $span = item.querySelector('span'); let isTest = item.innerText.indexOf('练习'); let isTest2 = item.innerText.indexOf('课程作业'); if (($span.classList.contains('undo') || $span.classList.contains('doing')) && this.parentIndex == -1 && isTest == -1 && isTest2 == -1) { this.parentIndex = i; ElementObj.$parentNodes[i].querySelector('a').click(); break; } } if (this.parentIndex == -1) { alert('当前课程已全部播发完'); return; } yield this.getCurrentIndex(); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('正在初始化', 2500); let timer = setInterval(() => { var _c; let $contentIframe = document.querySelector('.contentIframe'); ElementObj._document = $contentIframe.contentWindow.document; ElementObj.$allTask = ElementObj._document.querySelectorAll('.menub'); if (ElementObj.$allTask.length) { clearInterval(timer); this.currentIndex = 0; (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click(); showTip('初始化完成,5秒后开始播放'); this._o1(); } }, 1000); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { let _document = ElementObj._document.querySelector('#mainFrame').contentDocument; ElementObj.$video = _document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } let $doc = _document.querySelector('#content_frame'); if (!!$doc) { clearInterval(Timer); resolve(2); } else { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer2); // @ts-ignore unsafeWindow.alert = () => { }; let studytype = yield this.getVideoDom(); this.listenRebort(); console.log('studytype==>>', studytype); if (studytype == 1) { ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { yield sleep(3000); this.playNext(); })); } if (studytype == 2) { this.timer2 = setTimeout(() => { this.playNext(); }, 7000); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { // @ts-ignore unsafeWindow.alert = function () { }; let $btn = document.querySelector('.layui-layer-btn a'); if (!!$btn) { $btn.click(); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { // @ts-ignore unsafeWindow.alert = () => { }; showTip('✅✅✅播放完成,正在切换课程', 3500); if (this.currentIndex >= ElementObj.$allTask.length - 1) { this.parentIndex += 1; let isTest = ElementObj.$parentNodes[this.parentIndex].innerText.indexOf('练习'); if (isTest != -1) { this.parentIndex += 1; } ElementObj.$parentNodes[this.parentIndex].querySelector('a').click(); setTimeout(() => { this.getCurrentIndex(); }, 4500); return; } this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); yield sleep(5000); this._o1(); }); } } ycjyluteducn.ctxid = 26; /** * 广东人才继续教育网 * 45 * gdrcjxjyw * */ class gdrcjxjyw extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$parentNodes = document.querySelectorAll('.m-list .item'); if (ElementObj.$parentNodes.length) { clearInterval(interval); this.getParentIndex(); return; } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video && location.host == 'www.rcjxjy.com') { clearInterval(interval); this._o1(); return; } let $table = document.querySelectorAll('.player-table')[2]; ElementObj.$allTask = $table.querySelectorAll('td'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅正在初始化,请勿点击', 3000); let count = 0; let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$parentNodes[count].querySelector('.btn-continue-study').click(); yield sleep(500); ElementObj.$allTask = document.querySelectorAll('.video-item .f-cb'); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $status = ElementObj.$allTask[i].querySelector('.videoName').innerText; if ($status != '播放完成') { clearInterval(timer); showTip('✅✅✅初始化完成'); let $nextBtn = ElementObj.$allTask[i].querySelector('a.u-btn'); $nextBtn.click(); break; } } count += 1; }), 3000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let _currentIndex = -1; ElementObj.$allTask.forEach((item, index) => { let $pagress = item.querySelector('.playLine'); let status = $pagress.innerText; if (parseInt(status) != 100 && this.currentIndex == -1) { this.currentIndex = index; } if (item.classList.contains('couBg')) { _currentIndex = index; } }); if (this.currentIndex == -1) { alert('当前课程视频已全部播放完'); return; } if (this.currentIndex != _currentIndex) { let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a'); $nextBtn.click(); } showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 3500); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { ElementObj.$handleSpeedUp.style.display = 'none'; return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); return; } // @ts-ignore let $iframe = document.querySelector('#c_frame').contentDocument; ElementObj.$video = $iframe.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); yield sleep(3000); if (location.host == 'www.rcjxjy.com') { let $backBtn = document.querySelector('a.u-btn.normal'); $backBtn.click(); } else { location.reload(); } })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; }, 1500); }); }); } } /** * 师学通国培计划 * 47 * shixuetong * */ class shixuetong extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = document.querySelectorAll('.Nvideo-item li'); if (ElementObj.$allTask.length) { clearInterval(interval); $el('.Nvideo-playbox').style.position = 'relative'; this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { this.currentIndex = 0; showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 3500); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); } if (count > 10) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); clearInterval(this.timer2); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); this.changeHtml($el('.video')); this.listenPageHide(); this.listenPlayTime(); this.listenRebort(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; }, 1500); }); } if (studyType == 2) { showTip('⚠️⚠️⚠️检测到当前不是视频,5秒后自动切换下一个视频', 4500); this.playNext(); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { yield sleep(2000); if (this.currentIndex >= ElementObj.$allTask.length - 1) { let $courseStudyBestMinutesNumber = document.querySelector('#courseStudyBestMinutesNumber').innerText; let $courseStudyMinutesNumber = document.querySelector('#courseStudyMinutesNumber').innerText; if (parseFloat($courseStudyBestMinutesNumber) > parseFloat($courseStudyMinutesNumber)) { location.reload(); } return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn.click(); setTimeout(() => { let $confirm = document.querySelector('.layui-layer-btn- a'); $confirm === null || $confirm === void 0 ? void 0 : $confirm.click(); this._o1(); }, 4500); }); } listenPlayTime() { showTip('⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟`); if (count % 30 == 0) { let $endTime = $el('#courseStudyBestMinutesNumber').innerText; let refreshBtn = document.querySelector('.studyCourseTimeRefresh'); refreshBtn === null || refreshBtn === void 0 ? void 0 : refreshBtn.click(); yield sleep(2000); let currentStudyTime = $el('#courseStudyMinutesNumber').innerText; let str = `✅✅✅本课程最长可累计时间:${$endTime}分钟,您已成功学习${currentStudyTime}分钟`; this.addInfo(str, 0); } }), 5000); } listenRebort() { this.timer2 = setInterval(() => { let $codespan = document.querySelector('#codespan'); if ($codespan) { clearInterval(this.timer2); let $code = document.querySelector("#code"); let str = $codespan.innerText; $code.value = str; let $submit = document.querySelector('.layui-layer-btn0'); $submit.click(); this.listenRebort(); } }, 1000 * 8); } } /** * 山东省文化和旅游厅继续教育公共服务平台 * 48 * shandongenhualvyou * */ class shandongenhualvyou extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let $toolbarnav = document.querySelector('#dashboard-toolbar-nav li'); $toolbarnav === null || $toolbarnav === void 0 ? void 0 : $toolbarnav.click(); let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('li.task-item'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; let $icon = item.querySelector('.es-icon-iccheckcircleblack24px'); if (!$icon) { this.currentIndex = i; break; } } showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 3500); setTimeout(() => { this._o1(); }, 4500); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { let $iframe = document.querySelector('#task-content-iframe'); let _documet = $iframe.contentDocument; ElementObj.$video = $iframe.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); if (!ElementObj.$ctxstatsbox) { this.changeHtml($el('.video')); } this.listenPageHide(); this.listenPlayTime(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); yield sleep(3000); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; }, 1500); }); }); } listenPlayTime() { showTip('⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); let durrentTime = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durrentTime}`); }), 5000); } } /** * 甘肃省公务员网络培训网 * 49 * gansugongwuyuan */ class gansugongwuyuan extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $menus = $el('.min_le_1 a'); if (!!$menus) { clearInterval(interval); let mytoolkey = localStorage.getItem('mytoolkey'); MyTool.setValue('mytoolkey', mytoolkey); $menus.click(); yield sleep(2000); $el('.xuxi_1').click(); yield sleep(2000); this.getParentIndex(); return; } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); let mytoolkey = MyTool.getValue('mytoolkey'); // alert(mytoolkey) this.deleteDom(); this.handleClickSpeedUp2(mytoolkey); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }), 1000); }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { $el('a.my').click(); yield sleep(2000); let pageNum = Number($el('#pagenumtext').value); var pageNumArr = []; for (var i = pageNum; i > 0; i--) { pageNumArr.push(i); } let isFind = false; for (let i of pageNumArr) { if (isFind) break; yield sleep(1500); ElementObj.$allTask = document.querySelectorAll('.main_r_dd2'); for (var k = 0; k <= ElementObj.$allTask.length - 1; k++) { let $hqjd_btn = ElementObj.$allTask[k].querySelector('.hqjd_btn'); if (!!$hqjd_btn) { $hqjd_btn.click(); yield sleep(2500); } let $jinduSpan = ElementObj.$allTask[k].querySelector('.jindu div'); let status = parseInt($jinduSpan.style.width); if (status < 100) { isFind = true; MyTool.setValue('pageNum', i); MyTool.setValue('homeUrl', location.href); let $nextBtn = ElementObj.$allTask[k].querySelector('#playVideo'); $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { window.close(); }, 1000 * 10); break; } pageNum -= 1; let $prePage = $el('.syy'); $prePage === null || $prePage === void 0 ? void 0 : $prePage.click(); } } }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = MyTool.getValue('accelerator'); }, 3500); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { let homeurl = MyTool.getValue('homeUrl'); // window.open(homeurl) MyTool.openInTab(homeurl); setTimeout(() => { window.close(); }, 10000); return; })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => __awaiter(this, void 0, void 0, function* () { let $confirmBtn = document.querySelector('#dvMsgBtns input'); $confirmBtn === null || $confirmBtn === void 0 ? void 0 : $confirmBtn.click(); yield sleep(2000); ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; }), 2500); }); }); } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('#dvMsgBtns input'); if (!!$btn) { this.deleteDom(); setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); } }, 3000); } deleteDom() { let parent = document.querySelector('body'); let child = document.getElementById('dvMsgBox'); let child2 = document.getElementById('ShowBolightBox'); let newElement = document.createElement('div'); newElement.innerHTML = '<div></div>'; parent.replaceChild(newElement, child); parent.replaceChild(newElement, child2); } handleClickSpeedUp2(key, callback) { return __awaiter(this, void 0, void 0, function* () { if (key) { this.speedStatus = 1; let result = yield axfedata({ method: 'GET', url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`, }); if (result.code == 200) { this.speedStatus = 1; toolOption.CtxMain.play(); } else { showTip(`🔉🔉🔉${result.message}`, 5000, true); return; } } else if (!key) { alert('请先购买key'); window.open(_bt); } else { alert('程序错误,请联系客服'); } }); } handleChangeCtxSpeed(e) { let whiteList = speedArr; let s = Number(e); if (e && whiteList.includes(s)) { toolOption.accelerator = s; MyTool.setValue('accelerator', s.toString()); if (ElementObj.$video) { ElementObj.$video.playbackRate = s; } } } } /** * 乌鲁木齐建设职业培训中心 * wlmqcol * 50 */ class wlmqcol extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$handleSpeedUp.style.display = 'none'; let $menu = document.querySelector('#tab-second'); if (!!$menu) { clearInterval(interval); $menu.click(); this.getCurrentIndex(); return; } let $video = document.querySelector('video'); if (!!$video) { clearInterval(interval); this.pdPlayFn(location.href); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { yield sleep(1000); ElementObj.$allTask = document.querySelectorAll('.task-list'); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $done = ElementObj.$allTask[i].querySelector('.icon-yiwancheng'); if (!$done) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程已全部播放完'); return; } let $nextBtn = document.querySelectorAll('.task-list')[this.currentIndex].querySelector('span'); $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this._o1(); }, 3000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; }), 2500); }); }); } playNext() { return __awaiter(this, void 0, void 0, function* () { let $backBtn = document.querySelectorAll('.el-breadcrumb__inner.is-link')[1]; $backBtn === null || $backBtn === void 0 ? void 0 : $backBtn.click(); setTimeout(() => { location.reload(); }, 3500); }); } } /** * 山东省省直专业技术人员继续教育公需课平台 * shandongzhuanyejisu * 54 * */ class shandongzhuanyejisu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $menus = document.querySelectorAll('.learn-menu-cell'); if ($menus.length) { clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { showTip('正在初始化'); let $contentIframe = document.querySelector('.contentIframe'); ElementObj._document = $contentIframe.contentWindow.document; if (location.pathname == '/learnspace/learn/learn/templateeight/index.action') { ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_sectionwrap .s_pointwrap .s_point'); } else { ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_pointwrap .s_point'); } ElementObj.$handleSpeedUp.style.display = 'none'; console.log('ElementObj.$allTask===>>', ElementObj.$allTask); let activeClass = 'done_icon_show'; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i].querySelector('.item_done_icon'); if (!$item.classList.contains(activeClass)) { this.currentIndex = i; console.log('this.currentIndex', this.currentIndex); break; } } if (this.currentIndex == -1) { alert('当前课程已全部学完'); return; } (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click(); showTip('初始化完成,5秒后开始播放'); this._o1(); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { let _document = ElementObj._document.querySelector('#mainFrame').contentWindow.document; ElementObj.$video = _document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); } if (count >= 10) { clearInterval(Timer); resolve(2); } count++; }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studytype = yield this.getVideoDom(); if (studytype == 1) { ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenRebort(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } if (studytype == 2) { showTip('✅✅✅检测到该章节不是视频,即将切换下一节', 2000); yield sleep(2000); this.playNext(); } }); } updateSpeedElement(num) { localStorage.setItem('_localSpeed', num.toString()); ElementObj.$video.playbackRate = num; } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.layui-layer-btn0'); if (!!$btn) { setTimeout(() => { $btn.click(); ElementObj.$video.play(); }, 3000); } }, 10 * 1000); } playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程已全部学完'); return; } this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); showTip('🔉正在切换课程'); setTimeout(() => { this._o1(); }, 5000); } } shandongzhuanyejisu.ctxid = 26; /** * 职教云 2 * 54 * */ class zhijiaoyun2 extends Main { constructor() { super(); this.taskLength = 0; this.topIndex = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.authorization = null; this.classList = []; this.selectData = []; this.timer = null; this._init(); } _init() { return __awaiter(this, void 0, void 0, function* () { // 获取所有章节 let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { let $wrap = document.querySelector('.r.rFu'); if (location.pathname == '/study/coursePreview/spoccourseIndex/courseware') { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); } if (location.pathname == '/study/coursePreview/spoccourseIndex') { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; yield this.getCurrentIndex(); } }), 1000); }); } /** * @description 获取二级 * */ getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll('.listItem'); if (ElementObj.$allTask.length) { clearInterval(timer); let isFind = false; for (let item of ElementObj.$allTask) { let status = item.querySelector('.el-progress-bar__inner').style.width; if (parseInt(status) < 99) { isFind = true; item.click(); yield sleep(3000); item.querySelector('.items.iChild').click(); yield sleep(3000); setTimeout(() => { location.reload(); }, 2000); let btn = item.querySelector('.fItem'); if (!btn) { btn = item.querySelector('.fIteml'); } btn.click(); break; } } if (!isFind) { location.href = 'https://zjy2.icve.com.cn/study/course'; } } }), 2000); }); } getVideoDom() { return new Promise(resolve => { let count = 7; let Timer = setInterval(() => { if (count < 0) { clearInterval(Timer); resolve(2); } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } let $pages = document.querySelectorAll('.el-carousel__item'); if ($pages.length) { clearInterval(Timer); resolve(2); return; } count -= 1; }, 1000); }); } play() { var _c; return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); let studyType = yield this.getVideoDom(); (_c = document.querySelector('.el-message-box__btns button')) === null || _c === void 0 ? void 0 : _c.click(); yield this.changeHtml(document.querySelector('.video')); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 2500); this.listenVidoeStatus(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { yield this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3000); }); } if (studyType == 2) { this.addInfo('🔊🔊🔊即将开始播放文档'); let $pages = document.querySelectorAll('.el-carousel__item'); let $next = document.querySelector('.page>.next'); for (let item of $pages) { $next.click(); yield sleep(500); } this.addInfo('🎉🎉🎉🎉🎉🎉文档播放完成🎉🎉🎉🎉🎉🎉'); yield this.playNext(); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { let $nextBtn = document.querySelector('.next>a'); if (($nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.innerText) == '暂无') { setTimeout(() => { location.reload(); }, 2000); let backBtn = document.querySelector('.location .r'); backBtn.click(); return; } yield sleep(300); $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this._o1(); }, 2500); }); } /** * 监听视频状态 * */ listenVidoeStatus() { let count = 0; this.timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { this.addInfo(`🔉🔉🔉已成功监测${count}次,程序后台以${toolOption.accelerator}倍速正常学习中`); count += 1; } }, 3000); } render(type) { let renderData = type == 1 ? this.classList : this.selectData; let str = ''; for (let i = 0; i < renderData.length; i++) { let item = renderData[i]; str += ` <div class="item"> <div class="content"> <div class="name1">${item.courseInfoName}</div> <div class="name2">班级:${item.className}</div> <div class="name2">学期:${item.termName}</div> <div class="name2">完成进度:${item.studySpeed}%</div> </div> <div class="item-controls"> <button style='background: ${type == 1 ? '#409eff' : 'red'}'>${type == 1 ? '选择' : '移除'}</button> </div> </div> `; } let $pennelWrap = type == 1 ? document.querySelector('.leftPannel') : document.querySelector('.rightPannel'); $pennelWrap.innerHTML = str; // 绑定事件 for (let i = 0; i < $pennelWrap.children.length; i++) { let item = $pennelWrap.children[i]; let button = item.querySelector('button'); button.onclick = () => { if (type == 1) { this.moveDataToSelectData(i); } else { this.moveDataToClassList(i); } }; } } moveDataToSelectData(index) { this.selectData.push(this.classList[index]); this.classList.splice(index, 1); this.handleTemplekeyData(); this.render(1); this.render(2); } moveDataToClassList(index) { this.classList.push(this.selectData[index]); this.selectData.splice(index, 1); this.handleTemplekeyData(); this.render(1); this.render(2); } /** * @description 处理油猴上的缓存 * */ handleTemplekeyData() { MyTool.setValue('selectData', this.selectData); } } /** * 重庆专业技术人员继续教育 * chongqingzhuanye * 52 * */ class chongqingzhuanye extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c, _d; try { ElementObj.$parentNodes = document.querySelectorAll('.course__list--content .course__item'); if (ElementObj.$parentNodes.length) { clearInterval(interval); this.getParentIndex(); return; } let $nextPage = document.querySelector('.btn-next'); if ($nextPage && location.pathname == '/nms-frontend/index.html') { clearInterval(interval); MyTool.setValue('homeUrl', location.href); this.getParentIndex2(); return; } ElementObj.$allTask = document.querySelectorAll('ul li ul li .posCatalog_select'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } let $iframe_aliplayer = document.querySelector('#iframe_aliplayer'); if (!!$iframe_aliplayer) { clearInterval(interval); ElementObj.$video = (_c = $iframe_aliplayer === null || $iframe_aliplayer === void 0 ? void 0 : $iframe_aliplayer.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('video'); this.handleClickSpeedUp2(); return; } let $iframe_aliplayer2 = document.querySelector('#aliPlayerFrame'); if (!!$iframe_aliplayer2) { ElementObj.$allTask = (_d = $iframe_aliplayer2.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelectorAll('.section .section-item'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex2(); return; } } let $menu = document.querySelectorAll('.complete-status .btn-item')[2]; if (!!$menu) { clearInterval(interval); $menu.click(); yield sleep(1500); let $items = document.querySelectorAll('#pane-MUST .text-item'); if ($items.length === 0) { alert('全部公需课已学完'); return; } MyTool.setValue('homeUrl', location.href); let $first_item = $items[0]; $first_item.click(); setTimeout(() => { window.close(); }, 1000 * 20); } } catch (e) { } }), 1000); }); } getParentIndex() { ElementObj.$parentNodes.forEach((item) => { let $status = item.querySelector('span.num'); if ($status) { if (parseInt($status.innerText) <= 95) { item.querySelector('.enter-btn').click(); setTimeout(() => { location.reload(); }, 3000); } } }); } getParentIndex2() { return __awaiter(this, void 0, void 0, function* () { let $btn = document.querySelectorAll('.btn-box .btn-item')[2]; $btn.click(); yield sleep(3500); let $item = document.querySelectorAll('#pane-MUST .text-item')[0]; $item.click(); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { // let $contentIframe = document.querySelector('.contentIframe') as any; // ElementObj._document = $contentIframe.contentWindow.document as Document; // ElementObj.$allTask = ElementObj._document.querySelectorAll('.s_point'); showTip('✅✅✅正在初始化'); ElementObj.$handleSpeedUp.style.display = 'none'; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i].querySelector('.icon_Completed'); if (!$item) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程已全部学完'); return; } let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('.posCatalog_name'); $nextBtn.click(); showTip('初始化完成,5秒后开始播放'); this._o1(); }); } getCurrentIndex2() { return __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅正在初始化'); ElementObj.$handleSpeedUp.style.display = 'none'; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i].classList.contains('finish'); if (!$item) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { location.href = MyTool.getValue('homeUrl'); } ElementObj.$allTask[i].click(); showTip('✅✅✅完成初始化,5秒后开始播放'); setTimeout(() => { this.handleClickSpeedUp2(() => { }, 3); }, 4500); }); } getVideoDom(option) { return new Promise(resolve => { if (option) { let count = 0; let Timer = setInterval(() => { let $iframe = document.querySelector('#aliPlayerFrame'); let _document = $iframe.contentDocument; ElementObj.$video = _document.querySelector('video'); count += 1; if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } if (count > 10) { clearInterval(Timer); resolve(false); } }, 1000); } else { let count = 0; let Timer = setInterval(() => { var _c, _d; let $iframe = document.querySelector('#iframe'); let _document = (_d = (_c = $iframe.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('iframe')) === null || _d === void 0 ? void 0 : _d.contentDocument; ElementObj.$video = _document.querySelector('video'); count += 1; if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } if (count > 10) { clearInterval(Timer); resolve(false); } }, 1000); } }); } play() { var _c; return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = yield this.getVideoDom(); if (studyType) { ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); let $wrap = (_c = $el('#iframe').contentDocument.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument.querySelector('#reader'); this.changeHtml($wrap); this.listenPageHide(); this.listenPlayTime(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } if (!studyType) { showTip('⚠️⚠️⚠️未检测到视频,5秒后切换下一节', 4500); setTimeout(() => { this.playNext(); }, 3000); } }); } // 公需课play play2() { return __awaiter(this, void 0, void 0, function* () { if (!ElementObj.$video) { location.reload(); return; } ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { let homeUrl = MyTool.getValue('homeUrl'); yield sleep(2500); MyTool.openInTab(homeUrl); setTimeout(() => { window.close(); }, 1000 * 5); })); }); } // 公需课情况2 play play3() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = yield this.getVideoDom('#aliPlayerFrame'); ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let homeUrl = MyTool.getValue('homeUrl'); yield sleep(2500); MyTool.openInTab(homeUrl); setTimeout(() => { window.close(); }, 1000 * 15); return; } this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); showTip('⚠️⚠️⚠️正在切换课程', 4500); setTimeout(() => { this.handleClickSpeedUp2(() => { }, 3); }, 4500); return; })); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebortTime = setInterval(() => { var _c, _d; let $btn = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('.next-button'); if ($btn) { $btn.click(); } }, 13 * 1000); }); } playNext() { return __awaiter(this, void 0, void 0, function* () { yield sleep(3000); if (this.currentIndex >= ElementObj.$allTask.length - 1) { location.href = MyTool.getValue('homeUrl'); return; } this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].querySelector('.posCatalog_name').click(); showTip('⚠️⚠️⚠️正在切换课程', 4500); setTimeout(() => { this._o1(); }, 5000); }); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { var _c; count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); let videoDuration = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${videoDuration}分钟`); let $iframe = document.querySelector('#iframe'); let $statusDom = (_c = $iframe.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('.ans-job-icon'); let status = $statusDom === null || $statusDom === void 0 ? void 0 : $statusDom.getAttribute('aria-label'); if (status == '任务点已完成') { clearInterval(this.timer); this.addInfo(`✅✅✅监测到当前任务已完成,5秒后自动切换下一节`, 1); setTimeout(() => { this.playNext(); }, 3000); } }, 3000); } /** * @param str 要显示的文本内容 * @param type 0为红色 * */ addInfo(str, type) { var _c, _d; ElementObj.$ctxstatsbox = (_c = $el('#iframe').contentDocument.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument.querySelector('.ctxstatsbox'); let $ctxstatsbox_lis = (_d = $el('#iframe').contentDocument.querySelector('iframe')) === null || _d === void 0 ? void 0 : _d.contentDocument.querySelectorAll('.ctxstatsbox_li'); if ($ctxstatsbox_lis.length >= 15) { ElementObj.$ctxstatsbox.innerHTML = ''; } let li = `<li class="ctxstatsbox_li" style="color: ${type == 0 ? '#f01414' : '#000'};line-height: 30px;font-size: 16px;list-style: none;">${str}</li>`; ElementObj.$ctxstatsbox.innerHTML += li; } handleClickSpeedUp2(callback, type) { return __awaiter(this, void 0, void 0, function* () { let key = localStorage.getItem('mytoolkey'); if (key) { this.speedStatus = 1; let result = yield axfedata({ method: 'GET', url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`, }); if (result.code == 200) { this.speedStatus = 1; if (type == 3) { this.play3(); } else { this.play2(); } } else { showTip(`🔉🔉🔉${result.message}`, 5000, true); return; } } else if (!key) { alert('请先购买key'); window.open(_bt); } else { alert('程序错误,请联系客服'); } }); } } chongqingzhuanye.ctxid = 26; /** * 中国教育干部网络学院 * jiaoyuganbuwang * 53 * study.enaea.edu.cn * */ class jiaoyuganbuwang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $memnu = document.querySelectorAll('.customcur-tabs-wrapper li')[1]; if (!!$memnu) { clearInterval(interval); $memnu.click(); this.getParentIndex(); return; } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); this.getCurrentIndex(); return; } } catch (e) { } }), 1000); }); } getParentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅正在初始化', 3000); ElementObj.$handleSpeedUp.style.display = 'none'; yield sleep(3000); // @ts-ignore GM_setValue("homeUrl", location.href); showTip('初始化完成,5秒后开始播放'); yield sleep(3000); let $nextBtn = document.querySelectorAll('tr')[2].lastChild; (_c = $nextBtn.querySelector('a')) === null || _c === void 0 ? void 0 : _c.click(); this._o1(); setTimeout(() => { window.close(); }, 5000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll('.cvtb-MCK-course-content'); yield sleep(100); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $statusDom = ElementObj.$allTask[i].querySelector('.cvtb-MCK-CsCt-studyProgress'); let status = parseInt($statusDom.innerText); if (status != 100) { this.currentIndex = i; break; } } ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 3000); }); } play() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = yield this.getVideoDom(); ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); // this.changeHtml($el('#J_CC_videoPlayerDiv')) // this.listenPageHide() // this.listenPlayTime() this.listenRebort(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); }); } playNext() { return __awaiter(this, void 0, void 0, function* () { yield sleep(2000); if (this.currentIndex >= ElementObj.$allTask.length - 1) { // @ts-ignore let homeUrl = GM_getValue("homeUrl", null); // @ts-ignore GM_openInTab(homeUrl, { active: true }); setTimeout(() => { window.close(); }, 3000); return; } this.currentIndex += 1; setTimeout(() => { this._o1(); }, 5000); }); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { count += 1; let $statusDom = ElementObj.$allTask[this.currentIndex].querySelector('.cvtb-MCK-CsCt-studyProgress'); let status = parseInt($statusDom.innerText); let videoDuration = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,当前播放进度为${status}%,视频总时长为${videoDuration}分钟`); if (status == 100) { clearInterval(this.timer); this.addInfo(`✅✅✅监测到当前任务已完成,5秒后自动切换下一节`, 1); setTimeout(() => { this.playNext(); }, 3000); } }, 3000); } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.dialog-button-container button'); if (!!$btn) { $btn.click(); } }, 10 * 1000); } } jiaoyuganbuwang.ctxid = 26; /** * 在线学习 * 55 * zaixianxuexi * rsjapp.mianyang.cn * */ class zaixianxuexi extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $jAlertButton2 = document.querySelector('#jAlertButton2'); if (!!$jAlertButton2) { clearInterval(interval); $jAlertButton2.click(); yield sleep(2000); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); return; } ElementObj.$allTask = document.querySelectorAll('.videoList li'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { showTip('正在初始化'); ElementObj.$handleSpeedUp.style.display = 'none'; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i].querySelector('.overTitle'); if ($item.innerText != '【已完成】') { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程已全部学完'); return; } (_c = ElementObj.$allTask[this.currentIndex]) === null || _c === void 0 ? void 0 : _c.click(); showTip('初始化完成,5秒后开始播放'); this._o1(); }); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); yield this.getVideoDom(); ElementObj.$video.volume = 0; yield sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); // this.listenRebort() this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.getCurrentIndex(); })); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } } zaixianxuexi.ctxid = 26; /** * 国家开放大学 * 57 * guojiakaifangdaxue * lms.ouchn.cn * */ class guojiakaifangdaxue extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll("li[id]"); if (location.host == 'xczxzdbf.moodle.qwbx.ouchn.cn' && ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(); return; } let $nextBtn = document.querySelector('button.next-btn') || document.querySelector('.newgk-prenext.newgk-next'); if ($nextBtn) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); showTip('♥♥♥初始化完成'); this.pdPlayFn(location.href); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i]; if ($item.classList.contains('current')) { this.currentIndex = i; break; } } showTip('♥♥♥初始化完成'); this.pdPlayFn(location.href); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { var _c; count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } let _document = document.querySelector('#previewContentInIframe'); ElementObj.$video = (_c = _document === null || _document === void 0 ? void 0 : _document.contentDocument) === null || _c === void 0 ? void 0 : _c.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; yield sleep(200); let $playBtn = document.querySelector('.mvp-toggle-play'); if (!!$playBtn) { $playBtn.click(); } else { ElementObj.$video.play(); } setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); // this.listenRebort() ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('当前视频已播放完,5秒后播放下一个', 4500); yield sleep(4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { let $playBtn = document.querySelector('.mvp-toggle-play'); ElementObj.$video.volume = 0; $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click(); ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } playNext() { this.currentIndex += 1; let $nextBtn = document.querySelector('button.next-btn'); if (location.host == 'xczxzdbf.moodle.qwbx.ouchn.cn') { $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('.aalink'); if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this.pdPlayFn(location.href); }, 5000); } else if (location.host == 'moodle.syxy.ouchn.cn') { $nextBtn = document.querySelector('.newgk-prenext.newgk-next'); if ($nextBtn) { $nextBtn.click(); setTimeout(() => { this.pdPlayFn(location.href); }, 5000); } } else { $nextBtn = document.querySelector('button.next-btn'); if ($nextBtn) { $nextBtn.click(); setTimeout(() => { this.pdPlayFn(location.href); }, 5000); } } } } guojiakaifangdaxue.ctxid = 26; /** * 九江学院继续教育学院成教平台 * 58 * jjjxjy * jjxy.web2.superchutou.com * */ class jjjxjy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { if (location.host == 'hunau.web2.superchutou.com') { // 湖南 let interval = setInterval(() => { ElementObj.$handleSpeedUp.style.display = 'none'; if (location.href == 'https://hunau.web2.superchutou.com/#/') { clearInterval(interval); setTimeout(() => { this._init(); }, 1000 * 5); location.href = MyTool.getValue('homeUrl'); } if (location.href.indexOf('/#/onlineclass/curriculum') != -1) { let $item = document.querySelector('.ant-row.catalog_child_line'); if (!!$item) { clearInterval(interval); MyTool.setValue('homeUrl', location.href); setTimeout(() => { this._init(); }, 1000 * 5); $item.click(); } } ElementObj.$allTask = document.querySelectorAll('.ant-list-items div a'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } }, 1000); } else { // 自贡 window.addEventListener('urlchange', (info) => { setTimeout(() => { ElementObj.$allTask = document.querySelectorAll('.ant-list-items div a'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } let $item = document.querySelector('.ant-row.catalog_child_line'); if (!!$item) { clearInterval(interval); $item === null || $item === void 0 ? void 0 : $item.click(); } if (location.href == 'https://jjxy.web2.superchutou.com/#/') { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getParentIndex(); } }, 5000); }); let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.ant-list-items div a'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } let $item = document.querySelector('.ant-row.catalog_child_line'); if (!!$item) { clearInterval(interval); setTimeout(() => { this._init(); }, 5000); $item === null || $item === void 0 ? void 0 : $item.click(); } if (location.href == 'https://jjxy.web2.superchutou.com/#/') { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getParentIndex(); } } catch (e) { } }), 1000); } }); } getParentIndex() { let $parents = $el('.ant-table-tbody').querySelectorAll('.ant-table-tbody tr'); for (var i = 0; i <= $parents.length - 1; i++) { let $item = $parents[i].querySelector('.ant-progress-bg'); if (parseInt($item.style.width) < 99) { setTimeout(() => { this._init(); }, 5000); $parents[i].querySelector('.anticon-play-circle').click(); break; } } } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let cur = -1; for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('catalog_playing___3PDRN')) { cur = i; break; } } for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i].querySelector('i.anticon-check-circle'); if (!isDone) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } if (cur != this.currentIndex) { ElementObj.$allTask[this.currentIndex].click(); } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this.pdPlayFn(location.href); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer2); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; yield sleep(200); let $playBtn = document.querySelector('.mvp-toggle-play'); if (!!$playBtn) { $playBtn.click(); } else { ElementObj.$video.play(); } setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.ant-modal-body button'); let $btn2 = document.querySelector('.ant-btn.ant-btn-primary'); $btn === null || $btn === void 0 ? void 0 : $btn.click(); $btn2 === null || $btn2 === void 0 ? void 0 : $btn2.click(); }, 1 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(4500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; if ($nextBtn) { $nextBtn.click(); setTimeout(() => { this._o1(); }, 4000); } }); } } jjjxjy.ctxid = 26; /** * 河北干部网络学院 * 62 * hebeiganbu * hebgb.gwypx.com.cn * */ class hebeiganbu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; try { ElementObj.$parentNodes = document.querySelectorAll('.hoz_course_row'); if (ElementObj.$parentNodes.length) { clearInterval(interval); for (let item of ElementObj.$parentNodes) { let status = (_c = item.querySelector('.h_pro_percent')) === null || _c === void 0 ? void 0 : _c.innerText; if (parseFloat(status) < 100) { setTimeout(() => { window.close(); }, 45 * 1000); MyTool.setValue('homeUrl', location.href); item.querySelector('input').click(); break; } } } let $user_choise = document.querySelector('.user_choise'); if (!!$user_choise) { $user_choise.click(); } if (location.pathname == '/student/class_detail_course.do') { let $btn = document.querySelector('.hoz_course_row input'); if (!!$btn) { clearInterval(interval); setTimeout(() => { window.close(); }, 45 * 1000); MyTool.setValue('homeUrl', location.href); $btn.click(); } } if (location.pathname == '/portal/study_play.do') { ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(interval); this._o1(); } } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { setTimeout(() => { ElementObj.$video = document.querySelector('video'); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); // this.listenRebort() ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); }, 4500); let $btn = document.querySelector('.user_choise'); $btn === null || $btn === void 0 ? void 0 : $btn.click(); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { yield sleep(2500); location.href = MyTool.getValue('homeUrl'); }); } } /** * 广东省教师继续教育信息管理平台 * 63 * gdedujsxx * jsxx.gdedu.gov.cn * */ class gdedujsxx extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { this._o1(); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); ElementObj.$handleSpeedUp.style.display = 'none'; if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => __awaiter(this, void 0, void 0, function* () { let $labels = document.querySelectorAll('.m-question-lst label'); if ($labels.length) { clearInterval(this.listenRebortTime); $labels[0].click(); let $sumit = document.querySelector('.btn.u-main-btn'); $sumit.click(); yield sleep(3000); // 如果打错了 $labels = document.querySelectorAll('.m-question-lst label'); if ($labels.length) { $labels[1].click(); let $sumit = document.querySelector('.btn.u-main-btn'); $sumit.click(); } yield sleep(3000); this.listenRebort(); } }), 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { yield sleep(4500); this.currentIndex += 1; let $nextBtn = document.querySelector('a.btn.next.crt'); if ($nextBtn) { $nextBtn.click(); setTimeout(() => { this._o1(); }, 4000); } }); } } gdedujsxx.ctxid = 60; /** * 株洲教师教育网络学院 * 64 * zhuzhouteacher * www.zhuzhouteacher.com * */ class zhuzhouteacher extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $btn = document.querySelectorAll('.antd-pro-pages-my-center-my-center-menuItem')[2]; if (!!$btn) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); $btn.click(); yield sleep(1000); this.getCurrentIndex(); return; } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { yield sleep(2500); ElementObj.$allTask = document.querySelectorAll('.antd-pro-pages-my-center-course-learning-courseWrap>.ant-row'); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 let status = isDone.querySelector('.ant-progress-text').innerHTML; if (parseInt(status) < 99) { this.currentIndex = i; break; } } if (this.currentIndex != -1) { ElementObj.$allTask[this.currentIndex].querySelector('.ant-btn.ant-btn-primary').click(); setTimeout(() => { // window.close() }, 1000 * 15); return; } else { let $nextPage = document.querySelector('.ant-pagination-next'); if ($nextPage.classList.contains('ant-pagination-disabled')) { alert('全部课程已学完'); return; } $nextPage.click(); this.getCurrentIndex(); } }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { MyTool.openInTab('http://www.zhuzhouteacher.com/teacheredu/main/mycenter/course-learning'); setTimeout(() => { window.close(); }, 5000); }); } } zhuzhouteacher.ctxid = 60; /** * 专业技术人员继续教育网 【可以定制秒过脚本,次数的脚本有问题】 * 65 * zhuanyejishuryjxjy * gp.chinahrt.com * */ class zhuanyejishuryjxjy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.catalog-list p'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML; // if(parseInt(status) < 99){ // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); // this.listenRebort() ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].querySelector('a').click(); setTimeout(() => { this._o1(); }, 4000); }); } } zhuanyejishuryjxjy.ctxid = 60; /** * 英华学堂 * 65 * yinghuaxuetang * mooc.ycust.com * */ class yinghuaxuetang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll(".detmain .list .item a "); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML; // if(parseInt(status) < 99){ // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('on')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { let btn = document.querySelector('.promptchmqylqsxtfb'); let btn2 = document.querySelector('.mutechtkfjgkqelf'); if (btn) { btn.click(); } if (btn2) { btn2.click(); } ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); // this.listenRebort() ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } } yinghuaxuetang.ctxid = 60; /** * 上海开放大学 * shanghaikaifangdx * 67 * l.shou.org.cn * */ class shanghaikaifangdx extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.cell_info1 a'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML; // if(parseInt(status) < 99){ // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); // this.listenRebort() ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } } shanghaikaifangdx.ctxid = 60; /** * 广州市干部培训网络学院 * gzgbjy * 68 * gzgbjy.gzswdx.gov.cn * */ class gzgbjy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.tab-content-desc'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML; // if(parseInt(status) < 99){ // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('desc-item-sel')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); // this.listenRebort() ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } } gzgbjy.ctxid = 60; /** * 贵州省建设行业职业技能管理中心专业技术人员继续教育基地 * 70 * guizhoujianshezyjs * ware.cdeledu.com * */ class guizhoujianshezyjs extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.catalog div>a'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML; // if(parseInt(status) < 99){ // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('cur')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; let $vplay = document.querySelector('.vplay'); if (!$vplay.classList.contains('vmPause')) { $vplay.click(); } ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); // this.listenRebort() ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } } guizhoujianshezyjs.ctxid = 60; /** * 继续教育在线 * jixujiaoyuzaixian * 69 * ce.jllpa.cn * */ class jixujiaoyuzaixian extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.video-list-item-span'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML; // if(parseInt(status) < 99){ // this.currentIndex = i // break // } // 根据active判断 if (isDone.innerText.indexOf('已学完') == -1) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.el-message-box__btns .el-button--primary'); $btn === null || $btn === void 0 ? void 0 : $btn.click(); }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } } jixujiaoyuzaixian.ctxid = 60; /** * 广州市中小学教师继续教育网 * gzteacher * 72 * */ class gzteacher extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $allTask1 = document.querySelectorAll('.collapseactivityName2'); let $allTask2 = document.querySelectorAll('.resource-list .res-item'); ElementObj.$allTask = $allTask1.length ? $allTask1 : $allTask2; if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.jdb') as HTMLElement).innerHTML; // if(parseInt(status) < 99){ // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('isActive') || isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { var _c; let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { this.currentIndex += 1; if (location.host == 'gdipx.yanxiu.com') { yield sleep(3000); let $nextBtn = document.querySelector('.btns .next'); if (!$nextBtn) { alert('当前课程所有视频已播放完'); return; } else { $nextBtn.click(); } } else { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); let $closeBtn = document.querySelectorAll('.ant-modal-body button')[2]; $closeBtn === null || $closeBtn === void 0 ? void 0 : $closeBtn.click(); let $nextBtn = document.querySelectorAll('.studycontentBottom button')[2]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); } setTimeout(() => { this._o1(); }, 4000); }); } } gzteacher.ctxid = 60; /** * 新营造 * moocxinyingzao * 73 * mooc.xinyingzao.cn * */ class moocxinyingzao extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('#pane-category .resource-list-item'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 let status = isDone.querySelector('.resource-action span').innerText; if (!['已完成', '正在学'].includes(status)) { this.currentIndex = i; break; } // 根据active判断 // if (isDone.classList.contains('on')) { // this.currentIndex = i // break // } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } ElementObj.$allTask[this.currentIndex].click(); showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; let $iframe = document.querySelector('iframe'); if (!!$iframe) { clearInterval(Timer); resolve(2); return; } ElementObj.$video = document.querySelectorAll('video')[0]; if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { var _c; let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { this.getCurrentIndex(); }); } } moocxinyingzao.ctxid = 60; /** * 浙江文化干部网络学院 * zhejiangzjelib * 74 * mooc1.wht.zjelib.cn * */ class zhejiangzjelib extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$handleSpeedUp.style.display = 'none'; // @ts-ignore ElementObj.$allTask = document.querySelector('#iframepage').contentDocument.querySelectorAll('.ncells'); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 let status = isDone.querySelector('.roundpointStudent.blue'); if (!status) { this.currentIndex = i; break; } // 根据active判断 // if (isDone.classList.contains('on')) { // this.currentIndex = i // break // } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } // this.currentIndex = 0 ElementObj.$allTask[this.currentIndex].querySelector('a').click(); showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this.spanKeyCount(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; // @ts-ignore ElementObj.$video = document.querySelector('#iframepage').contentDocument.querySelector('#iframe').contentDocument.querySelector('iframe').contentDocument.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } _o1(callback) { return __awaiter(this, void 0, void 0, function* () { this.getCurrentIndex(); }); } spanKeyCount() { return __awaiter(this, void 0, void 0, function* () { let key = localStorage.getItem('mytoolkey'); if (key) { let result = yield axfedata({ method: 'GET', url: _b + `/speedup?toolkey=${key}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=${version}`, }); if (result.code == 200) { this.play(); } else { showTip(`🔉🔉🔉${result.message}`, 5000, true); return; } } else if (!key) { alert('请先购买key'); window.open(_bt); } else { alert('程序错误,请联系客服'); } }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { // @ts-ignore let curitem = document.querySelector('#iframepage').contentDocument.querySelector('.ncells .currents'); let isDone = curitem.querySelector('.roundpointStudent.blue'); if (isDone) { this.playNext(); } }, 10 * 1000); } playNext() { var _c; return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } this.currentIndex += 1; // @ts-ignore let $nextBtn = document.querySelector('#iframepage').contentDocument.querySelector('.orientationright '); $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); // @ts-ignore let $iframepage = document.querySelector('#iframepage').contentDocument; yield sleep(2000); (_c = $iframepage.querySelector('.wconter a')) === null || _c === void 0 ? void 0 : _c.click(); setTimeout(() => { this.spanKeyCount(); }, 4000); }); } } zhejiangzjelib.ctxid = 60; /** * 东北师范大学中小学教师网络培训平台 * dongbeishifandaxue * 76 * cn202341126.stu.t-px.cn * */ class dongbeishifandaxue extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.course-list-con .ovd'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelector('.resource-action span') as HTMLElement).innerText; // if (!['已完成', '正在学'].includes(status)) { // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('cur')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { var _c; let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a'); $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this._o1(); }, 6000); }); } } dongbeishifandaxue.ctxid = 60; /** * 济宁市高级职业学校(省级继续教育基地 * qzjystudy * 79 * jnrcpx.qzjystudy.com * */ class qzjystudy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.videoList .item'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); return; } let iframe = document.querySelector('iframe'); if (iframe) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); // @ts-ignore location.href = iframe.src; return; } ElementObj.$allTask = document.querySelectorAll('.videoList .item'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); return; } } catch (e) { } }), 1000); }); } getCurrentIndex() { var _c; return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 let status; if (['jnrcpx.qzjystudy.com', 'jnzjstu.qzjystudy.com'].includes(location.host)) { status = ((_c = isDone.querySelector('.text')) === null || _c === void 0 ? void 0 : _c.nextSibling).innerText; // @ts-ignore status = status.match(/\((.+)\)/)[1]; } else { status = isDone.querySelectorAll('span')[1].innerText; } if (parseInt(status) < 99) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } ElementObj.$allTask[this.currentIndex].click(); showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { var _c; let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this._o1(); }, 6000); }); } } qzjystudy.ctxid = 60; /** * 高顿教育 * GlivePro * 81 * glivepro.gaodun.com * */ class GlivePro extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $allTask = document.querySelectorAll('.animated .syllabus-tree-node-title'); let $allTask2 = document.querySelectorAll('.aside-node-child-inner .aside-node-child-inner li'); if ($allTask.length || $allTask2.length) { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = $allTask.length ? $allTask : $allTask2; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText; // if (parseInt(status) < 99) { // this.currentIndex = i // break // } if (location.host == 'cloud.gaodun.com') { let $icon = isDone.querySelector('i'); if (!$icon.classList.contains('aside-resource-progress2')) { this.currentIndex = i; break; } } else { if (isDone.classList.contains('is-active')) { this.currentIndex = i; break; } } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } if (location.host == 'cloud.gaodun.com') { let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { let dur = parseInt(ElementObj.$video.duration); let cur = Math.ceil(ElementObj.$video.currentTime); let isComplete = false; if (cur >= dur && !isComplete) { isComplete = true; showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); } }, 3 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); if (location.host == 'cloud.gaodun.com') { location.reload(); } else { this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); } }); } } GlivePro.ctxid = 60; /** * 高等学历继续教育网络学习平台 * gaodengxueli * 82 * kc.jxjypt.cn * */ class gaodengxueli extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.course-list-txt dd i'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // // 根据进度判断 // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText; // if (parseInt(status) < 99) { // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('fa-youtube-play')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } ElementObj.$allTask[this.currentIndex].parentElement.click(); showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { var _c; let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].parentElement; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this._o1(); }, 6000); }); } } gaodengxueli.ctxid = 60; /* * 河南专技在线 * henanzhuanjizaixian * 83 * hnzj.user.ghlearning.com * */ class henanzhuanjizaixian extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.timer = null; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.videoLi'); if (ElementObj.$allTask.length) { // ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据active判断 if (isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 5000); setTimeout(() => { this._o1(); }, 1000 * 5.5); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video.pv-video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } ElementObj.$canvas = document.querySelector('#bplayer-ffplayer'); if (!!ElementObj.$canvas) { clearInterval(Timer); resolve(3); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); ElementObj.$allTask[this.currentIndex].click(); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenRebort(); this.listenPlayTime(1); } if (studyType == 3) { let $volumeBtn = document.querySelector('.bplayer-volume-control'); if ($volumeBtn.getAttribute('data-show') == '0') { let $btn = $volumeBtn.querySelector('.icon'); $btn.click(); } yield sleep(3000); let $playBtn = document.querySelector('.pv-iconfont') || document.querySelector('.bplayer-play-btn'); if ($playBtn.querySelector('svg').id != 'stop') { $playBtn.click(); } this.listenPlayTime(3); } if (studyType == 1 || studyType == 3) { let $wrap = document.querySelector('.live.left'); this.changeHtml($wrap); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } play2() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = yield this.getVideoDom(); let $volumeBtn = document.querySelector('button.pv-volumebtn'); if (!$volumeBtn.classList.contains('pv-icon-volumenone')) { $volumeBtn.click(); } yield sleep(500); let $playBtn = document.querySelector('.pv-iconfont'); $playBtn.click(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } listenPlayTime(type) { this.timer = setInterval(() => { let progress = ElementObj.$allTask[this.currentIndex].querySelector('.progress-bar').style.width; if (parseInt(progress) >= 99) { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); return; } let dur, cur; if (type == 1) { // @ts-ignore dur = document.querySelector('.pv-time-current').innerText; // @ts-ignore cur = document.querySelector('.pv-time-duration').innerText; } if (type == 3) { let $playedTime = document.querySelector('.played-time'); if (!$playedTime) { this.play2(); return; } // @ts-ignore dur = $playedTime.innerText; // @ts-ignore cur = document.querySelector('.total-time').innerText; } this.addInfo(`🔊🔊🔊监测到视频正在学习中,已成功学习${dur},需学习${cur}`); if (cur == dur) { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); setTimeout(() => { location.reload(); }, 3000); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); }); } } henanzhuanjizaixian.ctxid = 60; /** * 湖南农民大学生 * hunannmdxs * 84 * study.ouchn.cn * */ class hunannmdxs extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { let $nextBtn = document.querySelector('.pull-right>a'); if ($nextBtn) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this._o1(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // // 根据进度判断 // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText; // if (parseInt(status) < 99) { // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('fa-youtube-play')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } ElementObj.$allTask[this.currentIndex].parentElement.click(); showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$sigleBtn = document.querySelector('.forumaddnew form button.btn.btn-secondary'); if (!!ElementObj.$sigleBtn) { clearInterval(Timer); resolve(3); return; } ElementObj.$video = document.querySelectorAll('video')[0]; if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 3) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { var _c; let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { (_c = $topicModal.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild($topicModal); } }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { let $nextBtn = document.querySelector('.pull-right>a'); if (!$nextBtn) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); $nextBtn === null || $nextBtn === void 0 ? void 0 : $nextBtn.click(); setTimeout(() => { this._o1(); }, 5000); }); } } hunannmdxs.ctxid = 60; /** * 百年树人 * bainianshuren * 89 * 'js.cc-edu.cn' * */ class bainianshuren extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.swiperIndex = 0; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$parentNodes = document.querySelectorAll('.project-course li'); if (ElementObj.$parentNodes.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getParentIndex(); return; } ElementObj.$allTask = document.querySelectorAll('.el-tree-node'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(); return; } } catch (e) { } }), 1000); }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) { let item = ElementObj.$parentNodes[i]; let status = item.querySelector('.project-courseTitle span').innerText; if (status == '学习中' || status == '未学习') { MyTool.setValue('homeUrl', location.href); item.querySelector('span.project-courseButton').click(); break; } } }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { yield sleep(2500); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let element = ElementObj.$allTask[i].querySelector('i').title.trim(); if (element != '已学习') { this.currentIndex = i; break; } } if (this.currentIndex == -1) { location.href = 'https://v3.dconline.net.cn/student.html#/project/index?project_id=13844'; setTimeout(() => { location.reload(); }, 3000); return; } let $nextBtn = ElementObj.$allTask[i].querySelector('.nav_menu'); $nextBtn.click(); yield sleep(2500); let isHasSwiperItem = yield this.getSwiperItem(); if (isHasSwiperItem == 1) { this.getSwiperIndex(); } else { this._o1(); } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); }); } getSwiperIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$swiperItem.length - 1; i++) { let element = ElementObj.$swiperItem[i].querySelector('.video-status').innerText.trim(); if (element != '已学习') { this.swiperIndex = i; break; } } let $nextBtn = ElementObj.$swiperItem[this.swiperIndex].querySelector('i.el-icon-video-play'); $nextBtn.click(); yield sleep(2500); let $btn = document.querySelector('.el-message-box__btns .el-button--primary'); $btn === null || $btn === void 0 ? void 0 : $btn.click(); setTimeout(() => { this._o1(); }, 4000); }); } getSwiperItem() { return __awaiter(this, void 0, void 0, function* () { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$swiperItem = document.querySelectorAll('.public-articleSlideList'); if (!!ElementObj.$swiperItem.length) { clearInterval(Timer); resolve(1); return; } if (count >= 3) { clearInterval(Timer); resolve(2); } }, 1000); }); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = 1; }, 3000); let $wrap = document.querySelector('#video'); this.changeHtml($wrap); this.listenPlayTime(); this.listenRebort(); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let homeUrl = MyTool.getValue('homeUrl'); location.href = homeUrl; setTimeout(() => { location.reload(); }, 3000); return; } setTimeout(() => { location.reload(); }, 3000); setTimeout(() => { this._o1(); }, 4000); }); } listenRebort() { this.listenRebortTime = setInterval(() => { let $dialog = document.querySelector('.el-dialog__body'); if ($dialog) { $dialog.style.display = 'none'; // location.reload() } }, 3000); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); let videoDuration = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${videoDuration}分钟`); }, 3000); } } bainianshuren.ctxid = 60; /** * 东营市继续教育网专业科目培训平台 * 90 * 'sddy.zyk.yxlearning.com' * */ class dyyxlearning extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.course-list ul ul .videoLi'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); return; } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // // 根据进度判断 // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText; // if (parseInt(status) < 99) { // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelectorAll('video')[1]; if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); // @ts-ignore let myClassId = location.href.match('myClassId=(.+)')[1]; let tasks = yield this.getClassList(myClassId); let curTask = tasks.attribute.data.myClassCourseRPList[0].videoRPs[this.currentIndex]; // 获取视频弹窗题目 let option = `videoId=${curTask.videoId}&isUse=1&startSecond=&myClassCourseVideoId=${curTask.myClassCourseVideoId}`; let questionList = yield this.getVideoTopic(myClassId, option); if (studyType == 1) { ElementObj.$video.volume = 0; let $playBtn = document.querySelector('.ccToggleBtn'); if (!$playBtn.classList.contains('ccH5TogglePause')) { $playBtn.click(); } setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); // this.listenVidoeStatus(ElementObj.$video, () => { // ElementObj.$video.volume = 0 // ElementObj.$video.play() // }) this.listenRebort(questionList.attribute.data); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; let $playBtn = document.querySelector('.ccToggleBtn'); if (!$playBtn.classList.contains('ccH5TogglePause')) { $playBtn.click(); } }, 3500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } // 监测题目弹窗 listenRebort(questionList) { this.listenRebortTime = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c; let $ccJumpOver = document.querySelector('#ccJumpOver'); let $topicType2 = document.querySelector('.pv-ask-modal-wrap'); if (!!$ccJumpOver || !!$topicType2) { // @ts-ignore let $questionName = document.querySelector('.ccProblem .text').innerText; let question = questionList.find((item) => { return item.videoQuestionEntitySet[0].questionName == $questionName; }); let answerIndex = -1; for (let i = 0; i <= question.videoQuestionEntitySet[0].videoAnswerEntitySet.length - 1; i++) { let item = question.videoQuestionEntitySet[0].videoAnswerEntitySet[i]; if (question.videoQuestionEntitySet[0].standardId.indexOf(item.videoAnswerId) != -1) { answerIndex = i; } } if (answerIndex == -1) { location.reload(); } (_c = document.querySelectorAll('.ccQuestionList li')[answerIndex]) === null || _c === void 0 ? void 0 : _c.click(); document.querySelector('#ccQuestionSubmit').click(); setTimeout(() => { document.querySelector('#rightBtn').click(); }, 2000); } }), 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); }); } getVideoTopic(myClassId, option) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve) => { fetch(`https://sddy.zyk.yxlearning.com/train/cms/study/query-video-random-popup-list.gson?${option}`, { "headers": { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9", "accountid": "33f3dd30-1e79-420b-9fe6-bf298fa1d550", "sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, "referrer": `https://sddy.zyk.yxlearning.com/learning/index?myClassId=${myClassId}`, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); }); } getClassList(myClassId) { return __awaiter(this, void 0, void 0, function* () { return new Promise(resolve => { fetch(`https://sddy.zyk.yxlearning.com/train/class/my-class.gson?myClassId=${myClassId}`, { "headers": { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9", "sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, "referrer": `https://sddy.zyk.yxlearning.com/learning/index?myClassId=${myClassId}`, "referrerPolicy": "strict-origin-when-cross-origin", "body": null, "method": "GET", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); }); }); } } /** * 河北教师教育网 * 91 * */ class hebeijiaoshijiaoyuwang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { var _c, _d; try { if (location.pathname == '/MyCourse/MyEventList') { ElementObj.$parentNodes = document.querySelectorAll('#mainList dd ul li'); if (ElementObj.$parentNodes.length > 0) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; for (let item of ElementObj.$parentNodes) { if (item.querySelector('i').innerText != '[已完成]') { MyTool.setValue('homeUrl', location.href); item.querySelector('a').click(); break; } } } } if (location.pathname == '/Event/MyjoinEvent') { ElementObj.$parentNodes = document.querySelectorAll('tr[class]'); if (ElementObj.$parentNodes.length > 0) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; if (ElementObj.$parentNodes.length > 0) { for (let item of ElementObj.$parentNodes) { let $status = item.querySelectorAll('td')[2].querySelector('span').innerText.trim(); if ($status != '已学完' && $status != '已完成') { item.querySelector('a').click(); break; } } } } } if (location.pathname == '/Event/CourseWare') { ElementObj.$parentNodes = document.querySelectorAll('tr[class]'); if (ElementObj.$parentNodes.length > 0) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; if (ElementObj.$parentNodes.length > 0) { for (let item of ElementObj.$parentNodes) { let $status = item.querySelectorAll('td')[2].querySelector('span').innerText.trim(); if ($status != '已学完') { item.querySelector('a').click(); break; } } } } } ElementObj.$video = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('video'); if (ElementObj.$video) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this._o1(); return; } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // // 根据进度判断 // let status = (isDone.querySelectorAll('span')[1] as HTMLElement).innerText; // if (parseInt(status) < 99) { // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this.pdPlayFn(location.href); }, 4000); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { var _c, _d; count += 1; ElementObj.$video = (_d = (_c = document.querySelector('iframe')) === null || _c === void 0 ? void 0 : _c.contentDocument) === null || _d === void 0 ? void 0 : _d.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); let $wrap = document.querySelector('#mian'); $wrap.style.position = 'relative'; yield this.changeHtml($wrap); this.listenPlayTime(); // this.listenVidoeStatus(ElementObj.$video, () => { // ElementObj.$video.volume = 0 // ElementObj.$video.play() // }) this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } // 监测题目弹窗 listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.school-sate button'); if (!!$btn) { $btn.click(); } }, 10 * 1000); } listenPlayTime() { showTip('🔉课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(() => { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); let videoDuration = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${videoDuration}分钟`); }, 3000); } playNext() { return __awaiter(this, void 0, void 0, function* () { let $nextBtn2 = document.querySelectorAll('.tishivalhui')[2]; let $nextBt1 = document.querySelectorAll('.tishivalhui')[1]; let $nextTitle = $nextBtn2 || $nextBt1; // @ts-ignore if ($nextTitle.innerText == '下一篇:没有了;') { location.href = MyTool.getValue('homeUrl'); return; } yield sleep(2500); let $tishivaljus = document.querySelectorAll('.tishivalju'); let $nextBtn = $tishivaljus.length > 1 ? $tishivaljus[1] : $tishivaljus[0]; $nextBtn.click(); }); } } /** * 山东干部网络学院 * 92 * shangdongganbu * */ class shangdongganbu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.class'); if (location.href.indexOf('/content#/personalCenter') != -1 && ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(); return; } if (location.href.indexOf('/content#/commend/coursedetail/?courseId=') != -1) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); return; } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 let status = isDone.querySelectorAll('.pro-t>div')[1].innerText; if (parseInt(status) != 100) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); let btn = ElementObj.$allTask[this.currentIndex].querySelector('.class-img>img'); btn.click(); setTimeout(() => { window.close(); }, 1000 * 120); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = yield this.getVideoDom(); if (studyType == 1) { let $wrap = document.querySelector('.video-player-box'); $wrap.style.position = 'relative'; yield this.changeHtml($wrap); let option = { courseId: '', idCardHash: '' }; // @ts-ignore option.courseId = /courseId=(.*)/.exec(location.href)[1]; // @ts-ignore option.idCardHash = JSON.parse(sessionStorage.getItem('userInfo')).data.idCardHash; if (!option.idCardHash) { alert('登录过期了,请重新登录'); return; } let result1 = yield this.fetchStart(option); this.listenPlayTime(option); this.listenRebort(); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } // 监测题目弹窗 listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.school-sate button'); if (!!$btn) { $btn.click(); } }, 10 * 1000); } listenPlayTime(option) { return __awaiter(this, void 0, void 0, function* () { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); yield sleep(3000); // ElementObj.$video.pause(); showTip('🔉课件正在学习,请务点击或长时间隐藏'); let videoDuration = Math.ceil(ElementObj.$video.duration); if (!videoDuration) { alert('视频时间错误,请刷新页面重试'); return; } let balanceTime = 0; for (let item of new Array(1000)) { if (balanceTime >= videoDuration) { yield this.saveProgress(option); yield this.saveProgress(option); yield this.saveEnd(option); this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); break; } balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator; option.studyTimes = balanceTime; let result1 = yield this.saveProgress(option); // let result2 = await this.saveProgress2(option) this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); yield sleep(1000); } this.playNext(); }); } playNext() { return __awaiter(this, void 0, void 0, function* () { yield sleep(2500); setTimeout(() => { location.reload(); }, 3000); location.href = 'https://gbwlxy.dtdjzx.gov.cn/content#/personalCenter'; }); } fetchStart(option) { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { let result = yield fetch("https://gbwlxy.dtdjzx.gov.cn/__api/api/study/start", { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/json;", "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, "referrer": "https://gbwlxy.dtdjzx.gov.cn/content", "referrerPolicy": "strict-origin-when-cross-origin", "body": `{\"courseId\":\"${option.courseId}\",\"idCardHash\":\"${option.idCardHash}\",\"studyType\":\"VIDEO\"}`, "method": "POST", "mode": "cors", "credentials": "include" }); resolve(result); })); } saveProgress(option) { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { fetch(`${location.origin}/__api/api/study/progress`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/json;", "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, "referrer": `${location.origin}/content`, "referrerPolicy": "strict-origin-when-cross-origin", "body": `{\"courseId\":\"${option.courseId}\",\"idCardHash\":\"${option.idCardHash}\",\"studyTimes\":${option.studyTimes}}`, "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(res => resolve(res)); })); } saveProgress2(option) { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { let result = yield fetch(`${location.origin}/apiStudy/gwapi/us/api/study/progress2`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/json;", "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-ca-key": "ac620187e5b8d7af", "x-ca-nonce": "e12f60e3-df8f-349f-55d0-626d597f5eaf", "x-ca-signature": "V16026136F33B05F06F275BE6CECF4A2F1", "x-ca-timestamp": "1706683430971", "x-requested-with": "XMLHttpRequest" }, "referrer": `${location.origin}/content`, "referrerPolicy": "strict-origin-when-cross-origin", "body": `{\"userId\":\"${option.idCardHash}\",\"courseCode\":\"${option.courseId}\",\"studyTimes\":${option.studyTimes}}`, "method": "POST", "mode": "cors", "credentials": "include" }); resolve(result); })); } saveEnd(option) { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { let result = yield fetch(`${location.origin}/__api/api/study/v2/end`, { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/json;", "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest" }, "referrer": `${location.origin}/content`, "referrerPolicy": "strict-origin-when-cross-origin", "body": `{\"courseId\":\"${option.courseId}\",\"idCardHash\":\"${option.idCardHash}\"}`, "method": "POST", "mode": "cors", "credentials": "include" }); resolve(result); })); } } /** * 云课堂 * 93 */ class yunketang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.el-collapse-item__content div.file-item'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(); return; } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据进度判断 // let status = (isDone.querySelectorAll('.pro-t>div')[1] as HTMLElement).innerText; // if (parseInt(status) != 100) { // this.currentIndex = i // break // } // 根据active判断 if (isDone.classList.contains('file-item-active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); let NextBtn = ElementObj.$allTask[this.currentIndex]; setTimeout(() => { let str = NextBtn.querySelector('div').innerHTML.replace(/ <.+>/, ''); this.pdPlayFn(str); }, 1000 * 3); }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; ElementObj.$video = document.querySelector('video'); let $playBtn = document.querySelector('.vjs-big-play-button'); if (!!ElementObj.$video && $playBtn) { clearInterval(Timer); $playBtn.click(); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { this.changeHtml($el('#vjs_video_3')); this.listenPlayTime(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenVidoeStatus(ElementObj.$video, () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { let $playBtn = document.querySelector('.vjs-big-play-button'); $playBtn === null || $playBtn === void 0 ? void 0 : $playBtn.click(); ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenPlayTime() { let count = 0; setInterval(() => { count += 1; let currentTask = ElementObj.$allTask[this.currentIndex].querySelector('.el-progress__text').innerText; if (currentTask == '100%') { location.reload(); } this.addInfo(`已成功监测${count}次,视频正在播放中,当前进度完成${currentTask}`); }, 3000); } playNext() { return __awaiter(this, void 0, void 0, function* () { location.reload(); }); } pdPlayFn(className) { let localData = MyTool.getValue('spanClassName') || []; if (localData.indexOf(className) != -1) { this.play(); } else { localData.push(className); MyTool.setValue('spanClassName', localData); this._o1(); } } } /** * 河南华夏基础教育学院 * 95 * */ class huaxiajiaoshiyanpei extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('.cou1-title>li'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(); return; } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据active判断 if (isDone.classList.contains('list_active')) { this.currentIndex = i; showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 1000 * 3); break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = yield this.getVideoDom(); this.listenRebort(); if (studyType == 1) { yield this.changeHtml($el('video').parentElement); let video_id = null; if (location.href.indexOf('/sort/') > -1) { // @ts-ignore video_id = /\/id\/(.+)\/sort/.exec(location.href)[1]; } else { // @ts-ignore video_id = /\/id\/(.+)/.exec(location.href)[1]; } // @ts-ignore let goods_id = unsafeWindow.goods_id; // @ts-ignore let user_id = unsafeWindow.user_id || $("#uid").val(); yield this.listenPlayTime({ user_id: user_id, goods_id: goods_id, video_id: Number(video_id), status: 1, times: 0, play_time: 0 }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } listenPlayTime(option) { return __awaiter(this, void 0, void 0, function* () { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); yield sleep(3000); showTip('🔉课件正在学习,请务点击或长时间隐藏'); let videoDuration = Math.ceil(ElementObj.$video.duration); if (!videoDuration) { // alert('视频时间错误,请刷新页面重试') console.log('#1 视频时间错误,请刷新页面重试'); location.reload(); return; } console.log('option==>>', option); if (!option.user_id || !option.goods_id || !option.video_id) { return alert('参数不正确'); } let balanceTime = 0; for (let item of new Array(10000)) { if (balanceTime >= videoDuration) { option.status = 2; yield this.saveProgress(option); this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); this.playNext(); break; } balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator; option.times = balanceTime; option.play_time = balanceTime; let result1 = yield this.saveProgress(option); this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); yield sleep(850); } }); } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.layui-layer-btn0'); $btn === null || $btn === void 0 ? void 0 : $btn.click(); }, 2000); } playNext() { return __awaiter(this, void 0, void 0, function* () { let count = 3; this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a'); let inter = setInterval(() => { this.addInfo('🐱🚀🐱🚀🐱🚀请稍后,正在保存数据......'); if (count <= 0) { clearInterval(inter); // @ts-ignore $nextBtn.click(); } count -= 1; }, 1000); }); } saveProgress(option) { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { let result = yield fetch(`${location.origin}/portal/lesson/update_study`, { "headers": { "accept": "application/json, text/javascript, */*; q=0.01", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "x-requested-with": "XMLHttpRequest" }, "referrerPolicy": "strict-origin-when-cross-origin", "body": `user_id=${option.user_id}&goods_id=${option.goods_id}&video_id=${option.video_id}&status=${option.status}×=${option.times}&play_time=${option.play_time}`, "method": "POST", "mode": "cors", "credentials": "include" }); resolve(result); })); } } /** * 浙里学习 * 96 * */ class zhelixuexi extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$parentNodes = document.querySelectorAll('.vi-item'); if (ElementObj.$parentNodes.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); for (var i = 0; i <= ElementObj.$parentNodes.length - 1; i++) { let isDone = ElementObj.$parentNodes[i]; // // 根据进度判断 let status = isDone.querySelector('.v-prosss').innerText.replace('已学习', ''); if (parseInt(status) < 99) { this.currentIndex = i; MyTool.setValue('homeUrl', location.href); isDone.click(); break; } } return; } ElementObj.$allTask = document.querySelectorAll('.set-content'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); return; } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); } } catch (e) { } }), 1000); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; // 根据active判断 if (isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); // this.listenVidoeStatus(ElementObj.$video, () => { // ElementObj.$video.volume = 0 // ElementObj.$video.play() // }) this.listenRebort(); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); yield sleep(3000); this.playNext(); } }); } // 监测题目弹窗 listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let homeUrl = MyTool.getValue('homeUrl'); setTimeout(() => { location.href = homeUrl; }, 3000); return; } yield sleep(2000); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 3000); }); } } /** * S云课堂网校 * 97 * */ class fhswifer extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$parentNodes = document.querySelectorAll('.c-directory-item'); if (ElementObj.$parentNodes.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; showTip('正在寻找全部课程,预计10-20秒,请稍等...'); this.getParentIndex(); } } catch (e) { } }), 1000); }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { for (let item of ElementObj.$parentNodes) { item.click(); yield sleep(500); } this.getCurrentIndex(); }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { ElementObj.$allTask = document.querySelectorAll('.c-directory-box .cc-directory-item'); for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i]; // 根据进度判断 let status = $item.querySelector('.cc-audition'); if (!status) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } ElementObj.$allTask[this.currentIndex].click(); showTip('初始化完成,第一次请手动播放视频', 1000 * 10); this.play(); return; }); } getVideoDom() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; let $video = document.querySelector('.icon.bplayer-play-btn'); if (!!$video) { clearInterval(Timer); resolve($video); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let $video = yield this.getVideoDom(); $video.click(); this.listenPlayTime(); this.listenRebort(); }); } listenPlayTime() { let count = 0; this.timer = setInterval(() => __awaiter(this, void 0, void 0, function* () { count += 1; // @ts-ignore let currentTime = document.querySelector('.played-time').innerText; // @ts-ignore let durtion = document.querySelector('.total-time').innerText; if (currentTime.trim() >= durtion.trim()) { clearInterval(this.timer); this.playNext(); } // this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`) }), 5000); } listenRebort() { this.listenRebortTime = setInterval(() => { let playBtn = document.querySelector('.bplayer-wrap'); if (!playBtn.classList.contains('bplayer-playing')) { // @ts-ignore document.querySelector('.icon.bplayer-play-btn').click(); } }, 1000); } playNext() { return __awaiter(this, void 0, void 0, function* () { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } yield sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(() => { }, false); }, 3000); }); } } /** * 宁夏专业技术人员继续教育在线培训平台 * 100 * */ class rrhisdgf283y7jvdf extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$allTask = document.querySelectorAll('ul.cb.oh li'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(1); } ElementObj.$allTask = document.querySelectorAll('.section-item'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(2); } let $iframe = document.querySelector('iframe'); if ((location.href.indexOf('v_video?platformId=') != -1 || location.href.indexOf('/play_video/') != -1) && $iframe) { clearInterval(interval); location.href = $iframe.src; } if (['/videoPlay/play', '/videoPlay/playEncrypt'].indexOf(location.pathname) != -1) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); } } catch (e) { } }), 1000); }); } getCurrentIndex(type) { return __awaiter(this, void 0, void 0, function* () { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $item = ElementObj.$allTask[i]; if (type == 1) { let status = $item.querySelector('.button.titlecolor'); if (status.innerText.indexOf('已学完') == -1) { this.currentIndex = i; break; } } if (type == 2) { // @ts-ignore let $status = $item.querySelectorAll('.n-text.__text-q8o5bu-d')[2].innerText.trim(); if ($status != '已学完') { this.currentIndex = i; break; } } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } setTimeout(() => { window.close(); }, 1000 * 120); MyTool.setValue('homeUrl', location.href); if (type == 1) { ElementObj.$allTask[this.currentIndex].querySelector('.button.titlecolor').click(); } if (type == 2) { ElementObj.$allTask[this.currentIndex].click(); } return; }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', () => __awaiter(this, void 0, void 0, function* () { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); })); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); }); } listenPlayTime() { return __awaiter(this, void 0, void 0, function* () { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); yield sleep(1000); showTip('🔉课件正在学习,请务点击或长时间隐藏'); let videoDuration = Math.ceil(ElementObj.$video.duration); if (!videoDuration) { alert('视频时间错误,请刷新页面重试'); return; } let balanceTime = 0; for (let item of new Array(1000)) { if (balanceTime >= videoDuration) { ElementObj.$video.currentTime = ElementObj.$video.duration - 10; yield sleep(1000); ElementObj.$video.currentTime = ElementObj.$video.duration; this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); this.playNext(); break; } balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator; this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); yield sleep(1000); } this.playNext(); }); } playNext() { return __awaiter(this, void 0, void 0, function* () { let homeUrl = MyTool.getValue('homeUrl'); if (!homeUrl) { showTip('官网该平台底部有注意事项,请按照该指示页面执行程序,否则无法自动连播', 1000 * 10); alert('官网该平台底部有注意事项,请按照该指示页面执行程序,否则无法自动连播'); return; } setTimeout(() => { location.href = homeUrl; }, 10 * 1000); }); } } /** * 隆泰达培训 * 101 * */ class f6872 extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } // 初始化 _init() { return __awaiter(this, void 0, void 0, function* () { let interval = setInterval(() => __awaiter(this, void 0, void 0, function* () { try { ElementObj.$parentNodes = document.querySelectorAll('.ant-table-tbody')[0].querySelectorAll('tr'); if (ElementObj.$parentNodes.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getParentIndex(); } ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); } } catch (e) { } }), 1000); }); } getParentIndex() { return __awaiter(this, void 0, void 0, function* () { for (let item of ElementObj.$parentNodes) { let status = item.querySelector('.ant-progress-text').innerText; if (parseInt(status) < 97) { item.click(); yield sleep(2000); this.getCurrentIndex(); break; } } }); } getCurrentIndex() { return __awaiter(this, void 0, void 0, function* () { let pageBtns = document.querySelectorAll('.ant-pagination')[1].querySelectorAll('li.ant-pagination-item'); forData: for (let item of pageBtns) { ElementObj.$allTask = document.querySelectorAll('.ant-table-tbody')[1].querySelectorAll('tr'); for (let i = 0; i <= ElementObj.$allTask.length - 1; i++) { let $li = ElementObj.$allTask[i]; if (!$li.querySelector('i')) { this.currentIndex = i; let startBtn = $li.querySelectorAll('.ant-table-row-cell-break-word a')[1]; startBtn.click(); yield sleep(2000); this._o1(); break forData; } } // @ts-ignore item.click(); yield sleep(2000); } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } return; }); } play() { return __awaiter(this, void 0, void 0, function* () { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = yield this.getVideoDom(); yield this.changeHtml($el('.input_video')); this.listenPlayTime(); }); } listenPlayTime() { return __awaiter(this, void 0, void 0, function* () { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); yield sleep(1000); showTip('🔉课件正在学习,请务点击或长时间隐藏'); let videoDuration = Math.ceil(ElementObj.$video.duration); if (!videoDuration) { alert('视频时间错误,请刷新页面重试'); return; } let balanceTime = 0; for (let item of new Array(1000)) { if (balanceTime >= videoDuration) { ElementObj.$video.currentTime = ElementObj.$video.duration; yield sleep(1000); ElementObj.$video.currentTime = ElementObj.$video.duration; this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); this.playNext(); break; } balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator; this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); yield sleep(3000); } this.playNext(); }); } playNext() { return __awaiter(this, void 0, void 0, function* () { setTimeout(() => { location.reload(); }, 1000); }); } } /** * 新增控制面板 * */ class Addpanel { constructor() { this.$panelWrap = document.createElement('div'); this.$panelStyle = document.createElement('style'); this._init(); } _init() { var _c, _d, _f, _g, _h, _j, _k; return __awaiter(this, void 0, void 0, function* () { this.$panelWrap.innerHTML = this.getCTXHTML(); this.$panelStyle.innerHTML = panelcss; (_c = document.querySelector('head')) === null || _c === void 0 ? void 0 : _c.appendChild(this.$panelStyle); if (toolOption.SchoolType == 3) { (_d = document.querySelector('#bigContainer')) === null || _d === void 0 ? void 0 : _d.appendChild(this.$panelWrap); } else if (toolOption.SchoolType == 7) { (_f = document.querySelector('.layout-content')) === null || _f === void 0 ? void 0 : _f.appendChild(this.$panelWrap); } else if (toolOption.SchoolType == 11) { (_g = document.querySelector('.task-dashboard-page')) === null || _g === void 0 ? void 0 : _g.appendChild(this.$panelWrap); } else if (toolOption.SchoolType == 18) { (_h = document.querySelector('.screen_wide_1')) === null || _h === void 0 ? void 0 : _h.appendChild(this.$panelWrap); } else { (_j = document.querySelector('body')) === null || _j === void 0 ? void 0 : _j.appendChild(this.$panelWrap); } ElementObj.$title3 = document.querySelector('.title3'); ElementObj.$mytoolkey = document.querySelector('.mytoolkey'); ElementObj.$nokey = document.querySelector('.nokey'); ElementObj.$addKey = document.getElementById('addKey'); ElementObj.$removeKey = document.getElementById('removeKey'); ElementObj.$ipt = document.querySelector('.mytoolkeyipt'); ElementObj.$handleSpeedUp = document.querySelector('.handleSpeedUp'); ElementObj.$ctxTipWrap = document.querySelector('#ctxTipWrap'); ElementObj.$ctxsection2 = document.querySelector('.ctxsection2'); ElementObj.$ctxcontrols = document.querySelector('.ctxcontrols'); let storageKey = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey'); if (storageKey) { let mytoolkeyInfo = MyTool.getValue('mytoolkeyInfo'); if (mytoolkeyInfo && mytoolkeyInfo.canuse == '2' && MyTool.isDateGreaterThanSevenDays(mytoolkeyInfo.createtime)) { localStorage.removeItem('mytoolkey'); MyTool.deleteValue('mytoolkey'); } else { this.handleSetHtml(storageKey); } } this.optimizePannel(); this.setSpeedOption(); this.addEvent(); this.getSlogan(); let isHideCtx = MyTool.getValue('hideCtx'); if (isHideCtx) { $el('.myTool').style.left = '-99999px'; $el('.myTool>.floatWin').style.left = '-35px'; (_k = document.querySelector('.myTool>.floatWin')) === null || _k === void 0 ? void 0 : _k.addEventListener('click', () => { MyTool.setValue("hideCtx", false); location.reload(); }); } MyTool.registerMenuCommand('隐藏脚本', 'h', () => { MyTool.setValue('hideCtx', true); location.reload(); }); MyTool.registerMenuCommand('显示脚本', 's', () => { MyTool.setValue('hideCtx', false); location.reload(); }); this._v0(); }); } /** * 根据不同的网课平台,适当调整 面板的样式 * */ optimizePannel() { if (toolOption.SchoolType == 2) { $el('.myTool').style.left = 'unset'; $el('.myTool').style.right = '44px'; $el('.ipt-wrap').style.marginTop = '3px'; ElementObj.$ipt.style.padding = '11px 3px'; } if (toolOption.SchoolType == 9) { $el('.handleKeyBtn').style.lineHeight = '16px'; } if (toolOption.SchoolType == 16) { ElementObj.$myTool = document.querySelector('.myTool'); if (_i1.gzjxjy.runtype == 2) { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$speedSelect = document.querySelector('.ctxsection2'); ElementObj.$speedSelect.style.display = 'none'; } if (_i1.gzjxjy.runtype == 1) { ElementObj.$ctxsection3 = document.querySelector('.cxtsection3'); ElementObj.$ctxsection3.style.display = 'none'; } } // 1倍速 if ([14, 24, 63, 65].indexOf(toolOption.SchoolType) != -1) { toolOption.accelerator = 1; speedArr = [1]; } // 1-2倍速 if ([40, 52, 54, 67, 80].indexOf(toolOption.SchoolType) != -1) { speedArr = [1, 2]; } // 1-3倍速 if ([7, 12, 22, 53].indexOf(toolOption.SchoolType) != -1) { speedArr = [1, 2, 3]; toolOption.accelerator = 3; } // 控制面板到右侧 if ([38, 45, 46, 52, 57, 58, 61, 64, 67, 97, 103].indexOf(toolOption.SchoolType) != -1) { $el('.myTool').style.left = 'unset'; $el('.myTool').style.right = '44px'; } if (toolOption.SchoolType == 18) { $el('.btn1').style.width = '74%'; $el('.btn1').style.paddingTop = '0'; $el('.btn1').style.paddingBottom = '0'; $el('#slogan').style.position = 'relative'; $el('#slogan').style.left = '-40px'; speedArr = [1, 2, 3, 5]; } if (toolOption.SchoolType == 19) { toolOption.accelerator = 1; $el('.myTool').style.width = '202px'; } if (toolOption.SchoolType == 23) { $el('.myTool').style.top = '176px'; toolOption.accelerator = 1; } if (toolOption.SchoolType == 25) { toolOption.accelerator = 2; speedArr = [1, 1.25, 1.5, 2]; } if (toolOption.SchoolType == 26) { $el('.myTool').style.width = '202px'; } if (toolOption.SchoolType == 29) { speedArr = [1, 1.5, 2, 3, 5, 10]; } if (toolOption.SchoolType == 30) { speedArr = [1, 2, 3, 5, 10, 15]; toolOption.accelerator = 2; } if (toolOption.SchoolType == 32 || toolOption.SchoolType == 36) { $el('.myTool').style.left = 'unset'; $el('.myTool').style.right = '44px'; speedArr = [1, 1.1]; } if ([37, 38, 41, 44, 54, 66, 71].indexOf(toolOption.SchoolType) != -1) { speedArr = [1, 1.5, 2, 3, 5, 10]; } if ([51, 52].indexOf(toolOption.SchoolType) != -1) { $el('.myTool').style.left = '76px'; speedArr = [1, 2, 3, 10]; toolOption.accelerator = 2; } if (toolOption.SchoolType == 60) { speedArr = [1, 1.5, 1.8, 2]; toolOption.accelerator = 2; } // 1, 1.5, 2, 3, 10倍速 if ([91, 96, 118, 122].indexOf(toolOption.SchoolType) != -1) { speedArr = [1, 1.5, 2, 3, 10]; toolOption.accelerator = 1; } } setSpeedOption() { ElementObj.$speedSelect = document.querySelector('#ctxspeed'); let html = ``; for (var i = 0; i < speedArr.length; i++) { let str = ` <option value="${speedArr[i] == 1.1 ? 1.0 : speedArr[i]}" class="option"> × ${speedArr[i] == 1.1 ? 1.2 : speedArr[i]}.0 </option> `; html += str; } ElementObj.$speedSelect.innerHTML = html; var _localSpeed = localStorage.getItem('_localSpeed') || MyTool.getValue('_localSpeed'); if (_localSpeed) { ElementObj.$speedSelect.value = _localSpeed; toolOption.accelerator = Number(_localSpeed); } } handleSetHtml(key) { try { ElementObj.$ipt.style.display = 'none'; ElementObj.$title3.innerText = '当前key:'; ElementObj.$mytoolkey.innerText = key; ElementObj.$mytoolkey.style.display = 'block'; ElementObj.$nokey.style.display = 'none'; ElementObj.$removeKey.style.display = 'block'; ElementObj.$addKey.style.display = 'none'; ElementObj.userKey = key; } catch (e) { } } /** * 给面板绑定事件 * */ addEvent() { ElementObj.$addKey.addEventListener('click', () => { this.handleAddKey((key) => { this.handleSetHtml(key); }); }); // 解绑key ElementObj.$removeKey.addEventListener('click', () => { MyTool.setValue('mytoolkey', null); localStorage.removeItem('mytoolkey'); localStorage.removeItem('_localSpeed'); ElementObj.$title3.innerText = '绑定key:'; ElementObj.$mytoolkey.style.display = 'none'; ElementObj.$ctxsection2.style.display = 'none'; ElementObj.$nokey.style.display = 'block'; ElementObj.$ipt.style.display = 'block'; ElementObj.$addKey.style.display = 'block'; ElementObj.$removeKey.style.display = 'none'; ElementObj.$handleSpeedUp.style.background = 'orange'; ElementObj.$handleSpeedUp.innerText = '点击加速'; }); ElementObj.$handleSpeedUp.addEventListener('click', () => { toolOption.CtxMain._o1(); }); ElementObj.$ctxsection2.addEventListener('change', (e) => { toolOption.CtxMain.handleChangeCtxSpeed(e.target.value); }); ElementObj.$ctxcontrols.addEventListener('click', () => { let $myToolContent = document.querySelector('.myTool-content'); // @ts-ignore let isHide = GM_getValue("hideCtx", null); if (isHide) { $myToolContent.style.height = 'auto'; ElementObj.$ctxcontrols.innerText = '×'; } else { $myToolContent.style.height = '0px'; ElementObj.$ctxcontrols.innerText = '🔛'; $el('.myTool').style.left = '-99999px'; } MyTool.setValue("hideCtx", !isHide); }); document.querySelectorAll('.targetHome').forEach((item) => { item.addEventListener('click', () => { location.href = _bt; }); }); } /** * 获取面板上的slogan * */ getSlogan() { axfedata({ url: _b + '/getslogan', method: "GET" }).then((res) => { ElementObj.$slogan = document.querySelector('#slogan'); ElementObj.$slogan.innerHTML = res.result.text1; if (res.code === 20231) { erf(res.data); } }); } getCTXHTML() { return ` <div class="myTool"> <div class="controls ctxcontrols">×</div> <div class=''><a style="color: black;" href="${_bt}" target="_blank">📺高智Ai辅助学习程序</a></div> <div class="myTool-content"> <div class="nokey"> <div class="btns"> <div class="btn1" style="text-align: center;color: #1776FDFF;text-decoration: underline;margin: 5px 0;cursor: pointer;"> <a href="${_bt}" target="_blank">点击获取Key</a> </div> <a href="${_bt}" target="_blank" id="slogan" style="text-decoration: none;"> </a> </div> </div> <div class="cxtsection ctxsection1"> <div class="ctx-title title3"> 输入Key: </div> <div class="ipt-wrap" style="display: flex;align-items: center;justify-content: space-between;"> <input class="mytoolkeyipt" /> <div style="width: 120px;height: 18px;margin-right: 5px;display: none;" class="mytoolkey"></div> <button class="handleKeyBtn addkey-btn" id="addKey">绑定</button> <button class="handleKeyBtn removkey-btn" id="removeKey">解绑</button> </div> </div> <div class="cxtsection ctxsection2"> <div class="ctx-title"> 设置倍速: </div> <select name="" id="ctxspeed" class="speed-select" style="min-width: 130px"> <option value="1" class="option"> × 1.0 </option> <option value="5" class="option"> × 5.00 </option> <option value="10" class="option" selected="selected"> × 10.00 </option> <option value="16" class="option"> × 16.00 </option> </select> </div> <div class="cxtsection ctxsection3"> <div class="ctx-title"> 意见反馈: </div> <a href="${_bt}"><div class="feedbackBtn">去反馈</div></a> </div> <div class="scriptTip" style="display: none;border-radius: 4px;margin-top: 9px;font-size: 12px;background: rgba(108,201,255,0.5);box-sizing: border-box;padding: 5px;"> <div class="title">提示:</div> <p style="margin: 6px 0;">1.兴趣课全网目前仅支持最高1.5倍速</p> </div> <div class="cxtsection cxtsection3" style="display: none"> <div class="ctx-title"> 当前作答题目: </div> <div class="ctxtopic-name">贵州省贵阳市毓秀路27号贵州省人才大市场4楼</div> </div> <div class="handleSpeedUp">点击加速</div> </div> <div id="ctxTipWrap" class="ctxTipWrap"></div> <div class="floatWin">显示</div> </div> `; } /** * 点击绑定key * */ handleAddKey(callback) { return __awaiter(this, void 0, void 0, function* () { if (!ElementObj.$ipt.value) { window.open('https://abc.gaozhiwang.top/#/home'); window.open(_bt); return; } let result = yield axfedata({ method: 'GET', url: _b + '/vertifykey?toolkey=' + ElementObj.$ipt.value }); if (result.data) { localStorage.setItem('mytoolkey', ElementObj.$ipt.value); localStorage.setItem('_localSpeed', toolOption.accelerator.toString()); MyTool.setValue('mytoolkey', ElementObj.$ipt.value); MyTool.setValue('mytoolkeyInfo', result.data); callback(ElementObj.$ipt.value); location.reload(); } else { window.open('https://abc.gaozhiwang.top/#/home'); window.open(_bt); alert('输入的key不存在'); } }); } _v0() { MyTool.axfedata({ url: _b + '/getV0', method: 'GET', }).then((res) => { console.log('res==>>>', res); if (res.result.version >= version && res.result.force === '2') { alert(res.result.tip); window.close(); } if (res.code === 20231) { erf(res.data); } }); } } function $el(selector, root2 = window.document) { const el2 = root2.querySelector(selector); return el2 === null ? void 0 : el2; } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } function axfedata(option) { return new Promise(resolve => { try { // @ts-ignore GM_xmlhttpRequest(Object.assign(Object.assign({}, option), { onload: function (xhr) { if (xhr.status == 200) { resolve(JSON.parse(xhr.response)); } } })); } catch (e) { fetch(option.url, { method: option.method }).then(res => res.json()).then(res => { resolve(res); }); } }); } function showTip(text, time = 3500, isAlert) { time = time ? time : 3500; ElementObj.$ctxTipWrap.style.display = 'block'; ElementObj.$ctxTipWrap.innerText = text; let timer = setTimeout(() => { ElementObj.$ctxTipWrap.style.display = 'none'; }, time); if (isAlert) { alert(text); } } function _re() { return __awaiter(this, void 0, void 0, function* () { console.log('11111toolOption.CtxMain', toolOption.CtxMain); let current_host = location.host; if (/www.gaozhiwang.top/.test(current_host)) return; let _e = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey'); if (!_e) return; let result = yield axfedata({ method: 'GET', url: _b + `/speedup?toolkey=${_e}&t=1&canuse=1&h=${location.host}&fingerprint=${localStorage.getItem('fingerprint')}&v=${version}`, }); console.log('result==>>', result); if (result.code == 200) { if (!result.id) { alert(result.message); } let opiton = _ex(result.id); console.log('opiton==>>>', opiton); let _a = _i1[opiton]['mainClass'] == 'CTXCommon' ? _i1[opiton].option : eval(_i1[opiton].mainClass); // @ts-ignore toolOption.CtxMain = _i1[opiton]['mainClass'] == 'CTXCommon' ? new CTXCommon(_a) : new _a(); } else if (result.code == 404) { } else if (result.code === 20231) { erf(result.data); } else if (result.code === 11 || result.code === -2) { alert(result.message); erf(result.data); } else { localStorage.removeItem('mytoolkey'); MyTool.deleteValue('mytoolkey'); alert(result.message); erf(result.data); } console.log('222222toolOption.CtxMain', toolOption.CtxMain); }); } setTimeout(() => __awaiter(this, void 0, void 0, function* () { yield _re(); new Addpanel(); let randomT = Math.floor(Math.random() * (10 - 2 + 1)) + 2; setTimeout(() => { let $ctxs = document.querySelectorAll('.myTool'); if ($ctxs.length > 1) { alert('发现脚本安装突出,请删除多余脚本'); } }, randomT * 1000); }), 2000); // 3秒延迟 })();