在您安裝前,Greasy Fork希望您了解本腳本包含“可能不受歡迎的功能”,可能幫助腳本的作者獲利,而不能給你帶來任何收益。
此腳本只有在您 付費後才能使用全部的功能。 Greasy Fork尚未支付費用,因此無法驗證使用需要付費的商品,也無法幫助您獲得退款。
🤖自动挂机📺高倍数🔥继续教育🎗️远程教育🚩专业技术人员💂♀️西南大学、北京科技大学🎀西南交通,湖北第二师范🥩电子科技,成都市中小学🍿华东师范大学,江西专技学习网,安徽专技网,建投学堂、温州继续教育网、山东青年政治学院,🛎河南教师培训网,宁夏专业技术人员,黑龙江省网络助学平台,青岛市,🌈浙里学习、山东干部网络学院,河北教师教育网、隆泰达培训🎊东营市继续教育网、百年树人、会计人员🥇深i学、济宁市高级职业学校、基础教育进修网、高等学历继续教育👨🚒河南专技在线、青岛大学、和学在线、湖南农民大学生⏩全国煤炭行业现代❤️浙江文化干部🤖新营造❤️贵州省建设行业职业技能管理中心、广州市干部培训❤️长春工业大学🎉西安工业大学168网校🥇在线壹佰分🎉一点通🎉上海开放大学📺卫生健康人才职业技能培养学习平台✅株洲教师教育1️⃣安徽专业技术人员🔥广东省教师继续教育信息管理平台🎗️河北干部网络学院↗️西安工业大学、河南华夏基础😉九江学院🎉国家开放大学🧠青书学堂、云南省执业药师、马鞍山市、湖南师范大学、教师专业发展培训网,贵州省党员干部网络学院,河南省专业技术人员,江西专技,企安全、夏邑县小学教师、河北、新疆
// ==UserScript== // @name 🦄🦄🦄【2025光影】网络教育、🪅专业技术、🎯继续教育等视频学习伴侣 // @namespace http://tampermonkey.net/ // @version 6.7.6.6 // @description 🤖自动挂机📺高倍数🔥继续教育🎗️远程教育🚩专业技术人员💂♀️西南大学、北京科技大学🎀西南交通,湖北第二师范🥩电子科技,成都市中小学🍿华东师范大学,江西专技学习网,安徽专技网,建投学堂、温州继续教育网、山东青年政治学院,🛎河南教师培训网,宁夏专业技术人员,黑龙江省网络助学平台,青岛市,🌈浙里学习、山东干部网络学院,河北教师教育网、隆泰达培训🎊东营市继续教育网、百年树人、会计人员🥇深i学、济宁市高级职业学校、基础教育进修网、高等学历继续教育👨🚒河南专技在线、青岛大学、和学在线、湖南农民大学生⏩全国煤炭行业现代❤️浙江文化干部🤖新营造❤️贵州省建设行业职业技能管理中心、广州市干部培训❤️长春工业大学🎉西安工业大学168网校🥇在线壹佰分🎉一点通🎉上海开放大学📺卫生健康人才职业技能培养学习平台✅株洲教师教育1️⃣安徽专业技术人员🔥广东省教师继续教育信息管理平台🎗️河北干部网络学院↗️西安工业大学、河南华夏基础😉九江学院🎉国家开放大学🧠青书学堂、云南省执业药师、马鞍山市、湖南师范大学、教师专业发展培训网,贵州省党员干部网络学院,河南省专业技术人员,江西专技,企安全、夏邑县小学教师、河北、新疆 // @author // @match *://*/* // @grant GM_xmlhttpRequest // @grant GM_openInTab // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_addValueChangeListener // @grant window.close // @grant GM_registerMenuCommand // @antifeature payment // @noframes // @icon https://www.zhihuishu.com/favicon.ico // @connect www.gaozhiwang.top // @connect 47.115.205.88 // @connect localhost // @antifeature payment 学习辅助付费 // @license MIT // ==/UserScript== "use strict"; (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) { let result = GM_getValue(key, null); return result; } setValue(key, value) { GM_setValue(key, value); } deleteValue(key) { GM_deleteValue(key); } registerMenuCommand(name, accessKey, callback) { GM_registerMenuCommand(name, () => { typeof callback === 'function' && callback(); }, accessKey); } openInTab(url) { 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 => { GM_xmlhttpRequest({ ...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)(); } } let _i1 = { zhihuishu: { mainClass: 'zhihuishu' }, ningmengwencai: { mainClass: 'CTXCommon', option: { nodeListClass: '', activeClass: '', async _init(that) { let timer = setInterval(() => { try { ElementObj.$allTask = document.querySelectorAll('iframe')[1].contentDocument.querySelectorAll('.childSection'); if (ElementObj.$allTask.length) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('active')) { that.currentIndex = i; that._o1(that); break; } } } } catch (e) { } }, 1000); }, videoEle() { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { try { count += 1; ElementObj.$video = document.querySelectorAll('iframe')[1].contentDocument.querySelector('video'); if (!!ElementObj.$video && ElementObj.$video.duration) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } } catch (e) { } }, 1000); }); }, async beforePlayNext() { let $saveBtn = document.querySelectorAll('iframe')[1].contentDocument.querySelector("#saveBtn"); $saveBtn.click(); await MyTool.sleep(3000); }, } }, fujianshifan: { mainClass: 'fujianshifan' }, gxcic: { mainClass: 'gxcic' }, luohexueyuan: { 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(async () => { 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(); await MyTool.sleep(2000); } that.currentIndex = i; that._o1(); break; } } } }, 1000); }); }, } }, mengxiangzaixian: { 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]; let status = item.getAttribute('aria-valuenow'); if (parseInt(status) <= 99) { item.click(); resolve(i); break; } } }); } } }, fjsf2: { mainClass: 'fjsf2' }, liangyijiaoyu: { mainClass: 'liangyijiaoyu' }, zjzx: { mainClass: 'zjzx' }, zxpxmr: { mainClass: 'zxpxmr' }, ggfw: { mainClass: 'ggfw' }, liangshizaixian: { mainClass: 'liangshizaixian' }, gzjxjy: { mainClass: 'CTXCommon', runtype: -1, option: { 'nodeListClass': '', 'activeClass': '', 'nextClass': 'p', async _init(that) { let interval = setInterval(async () => { 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 = await 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(); } await sleep(400); } } } }, 1000); }, listenRebortFn(that) { let $close = document.querySelector('.dialog-footer button'); if ($close) { $close.click(); } else { setTimeout(() => { ElementObj.$video.play(); }, 1000); } }, } }, mingshiclass: { mainClass: 'mingshiclass' }, qiangshi: { mainClass: 'qiangshi' }, lanzhgoulgjs: { mainClass: 'lanzhgoulgjs', }, beijingjiaoshi: { mainClass: 'beijingjiaoshi' }, qingyangzgzjzj: { mainClass: 'qingyangzgzjzj', }, lanzhouwenli: { mainClass: 'lanzhouwenli' }, xuexituqiang: { mainClass: 'CTXCommon', option: { activeClass: 'lesson-in', nodeListClass: '.lesson', playNext: async (that) => { await sleep(1500); if (that.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前章节课程已全部播放完了'); return; } that.currentIndex += 1; await sleep(2000); let $comfimbutton = document.querySelector('.el-message-box__btns button'); $comfimbutton?.click(); setTimeout(() => { that._o1(); }, 5000); } } }, guojiazhihuijiaoyu: { mainClass: 'guojiazhihuijiaoyu' }, lanzhouchengren: { mainClass: 'lanzhouchengren' }, tsbtchinamde: { mainClass: 'tsbtchinamde' }, henangongshe: { mainClass: 'henangongshe', remark: '和北京教师一样的' }, zjzjsrc: { mainClass: 'zjzjsrc' }, lzrejxjy: { mainClass: 'lzrejxjy' }, xuzhouyikedaxue: { mainClass: 'xuzhouyikedaxue' }, xibeisfzyjy: { mainClass: 'xibeisfzyjy' }, zgrtvu: { mainClass: "CTXCommon", option: { nodeListClass: '.page-list .page-item .page-name', activeClass: 'cursor', listenRebortFn(that) { document.querySelector('.btn-submit')?.click(); let model = document.querySelector('#alertModal'); if (model && model.classList.contains('in')) { document.querySelector('.close-btn').click(); } let ipt = document.querySelector('.math-question-input'); if (ipt) { localStorage.setItem("needMathCaptcha", ""); koLearnCourseViewModel.modalType(""); koLearnCourseViewModel.alertModal.hide(); ElementObj.$video.play(); } } } }, henandikuang: { mainClass: 'henandikuang' }, henanzhuanjipeixun: { 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 => { 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, async _init(that) { let interval = setInterval(async () => { 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; GM_setValue("homeUrl", homeUrl); showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$allTask[that.currentIndex].querySelectorAll('td')[3].querySelector('a'); await sleep(200); $nextBtn.click(); await sleep(1500); let $textbtn = document.querySelector('input.textbtn'); $textbtn.click(); setTimeout(() => { window.close(); }, 4500); return; } let $iframe = document.querySelector('iframe')?.contentDocument; ElementObj.$video = $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(() => { count += 1; let $iframe = document.querySelector('iframe')?.contentDocument; ElementObj.$video = $iframe?.querySelector('video'); if (!!ElementObj.$video && ElementObj.$video.duration) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, async playFn(that) { showTip('视频加载中...'); await 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('🔊🔊🔊正在请求数据....'); let id = await _i1.henanzhuanjipeixun.apis.getID(`video=${video}&cid=${cid}&sid=${sid}`); console.log('id==>>', id); if (!id || !duration) return alert('参数错误'); let res = await _i1.henanzhuanjipeixun.apis.savejsp(id, duration); showTip('🔊🔊🔊学习完成,即将自动切换下一个....'); setTimeout(() => { window.close(); }, 2500); MyTool.openInTab(MyTool.getValue('homeUrl')); return; } } }, zhejiangtjj: { mainClass: 'zhejiangtjj' }, guizhouzxjxjy: { mainClass: 'CTXCommon', option: { 'nodeListClass': '.lcml_djj_list li', 'activeClass': 'on', 'playFn': async (that) => { clearInterval(that.timer); clearInterval(that.listenVidoeStatusTimer); clearInterval(that.listenRebortTime); let studyType = await that.getVideoDom(); let $playBtn = document.querySelector('.xgplayer-icon-play'); $playBtn?.click(); showTip('正在加载视频', 2000); await sleep(2000); await that.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); that.playNext(that); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); }, } }, jiangxizhipeizaixian: { mainClass: 'jiangxizhipeizaixian' }, anhuijixujyzx: { mainClass: 'anhuijixujyzx' }, lanzhoudxgs: { mainClass: 'lanzhoudxgs' }, jidianshejijiaoyu: { mainClass: 'jidianshejijiaoyu' }, henanzhujianjy: { mainClass: 'henanzhujianjy' }, sipingnengcun: { 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: { mainClass: 'ycjyluteducn' }, gdrcjxjyw: { mainClass: 'gdrcjxjyw' }, shandongqlteacher: { 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: { mainClass: 'shixuetong' }, shandongenhualvyou: { mainClass: 'shandongenhualvyou' }, gansugongwuyuan: { mainClass: 'gansugongwuyuan' }, wlmqcol: { mainClass: 'wlmqcol' }, shandongzhuanyejisu: { mainClass: 'shandongzhuanyejisu' }, chongqingzhuanye: { mainClass: 'chongqingzhuanye' }, jiaoyuganbuwang: { mainClass: 'jiaoyuganbuwang' }, zhijiaoyun: { mainClass: 'shandongzhuanyejisu' }, zhijiaoyun2: { mainClass: 'zhijiaoyun2' }, zaixianxuexi: { mainClass: 'zaixianxuexi' }, anquanshengchanzx: { 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); }); }, async _init(that) { let interval = setInterval(async () => { 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') { ElementObj.$allTask[that.currentIndex].querySelector('li')?.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); } }, async playNext(that) { await 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?.click(); setTimeout(() => { that._o1(); }, 2000); } }, }, guojiakaifangdaxue: { mainClass: 'guojiakaifangdaxue' }, jjjxjy: { mainClass: 'jjjxjy' }, csustcj: { mainClass: 'CTXCommon', option: { 'nodeListClass': '.ivu-tree-children .render-content__video', 'activeClass': 'activeVideo' } }, xiangongyedx: { 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(`${location.origin}/cjapi/other/student/chapter/view?id=${id}&tpcId=${tpcId}`, { "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', async _init(that) { let timer = setInterval(async () => { let id = /[0-9]+/.exec(location.pathname)[0]; let $wrap = document.querySelector('.details-container'); if (id && $wrap) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; await that.changeHtml($wrap); that.addInfo('正在获取课程信息'); let classList = await _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); let res = await _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); let lenT = await _i1.xiangongyedx.apis.getDetail(item.id, id); that.addInfo(`【${item.title}】播放中,本节视频时长为${item.timelen},至少学习${lenT}秒`); MyTool.setValue('lenT', lenT); await that._o1(); res = await _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); }, async playFn(that) { let lenT = MyTool.getValue('lenT'); let s = 0; for (let item of new Array(lenT)) { s += 1; await MyTool.sleep(1000); that.addInfo(`已播放${s}秒`); } } } }, hebeiganbu: { mainClass: 'hebeiganbu', }, gdedujsxx: { mainClass: 'CTXCommon', option: { 'nodeListClass': '', 'activeClass': '', async _init(that) { console.log('gdedujsxx11111111'); let timer = setInterval(async () => { if (location.host.includes('gdedu.gov.cn')) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; that._o1(); } }, 500); }, async listenRebortFn(that) { let $labels = document.querySelectorAll('.m-question-lst label'); if ($labels.length) { $labels[0].click(); let $sumit = document.querySelector('.btn.u-main-btn'); $sumit.click(); await 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(); } } let status = document.querySelector('.g-study-prompt')?.innerText?.indexOf('您已完成观看'); if (status != -1) { that.playNext(that); return; } let [s1, s2] = document.querySelectorAll('.g-study-prompt span'); if (s1 && s2) { if (Number(s1.innerHTML) <= Number(s2.innerHTML)) { that.playNext(that); } } }, async playNext(that) { await sleep(4500); that.currentIndex += 1; let $nextBtn = document.querySelector('a.btn.next.crt'); if ($nextBtn) { $nextBtn.click(); setTimeout(() => { that._o1(); }, 4000); } } } }, wsjkrczyjn: { mainClass: 'CTXCommon', option: { 'nodeListClass': '.setionItem', 'activeClass': 'active' } }, zhuzhouteacher: { mainClass: 'zhuzhouteacher' }, yinghuaxuetang: { mainClass: 'yinghuaxuetang' }, yidiantong: { 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: { mainClass: 'shanghaikaifangdx', }, gzgbjy: { mainClass: 'gzgbjy' }, jixujiaoyuzaixian: { mainClass: 'jixujiaoyuzaixian' }, guizhoujianshezyjs: { mainClass: 'guizhoujianshezyjs', }, zaixian100f: { 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); }); }, async _init(that) { let interval = setInterval(async () => { 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') { ElementObj.$allTask[that.currentIndex].querySelector('li')?.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); } }, async playNext(that) { await 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?.click(); setTimeout(() => { that._o1(); }, 2000); } } }, gzteacher: { mainClass: 'gzteacher' }, moocxinyingzao: { mainClass: 'moocxinyingzao' }, zhejiangzjelib: { mainClass: 'zhejiangzjelib' }, jlnkylllnet: { mainClass: 'jlnkylllnet' }, dongbeishifandaxue: { mainClass: 'dongbeishifandaxue' }, quanguomeotan: { mainClass: 'CTXCommon', option: { 'nodeListClass': '.row1 a.subset-class', 'activeClass': 'on' } }, qzjystudy: { mainClass: 'qzjystudy' }, jsjxjypt: { mainClass: 'CTXCommon', option: { 'nodeListClass': '.videoRight ul li', 'activeClass': 'li1' } }, GlivePro: { mainClass: 'GlivePro' }, gaodengxueli: { mainClass: 'gaodengxueli', option: { 'nodeListClass': '.course-list-txt dd i', 'activeClass': 'fa-youtube-play' } }, henanzhuanjizaixian: { mainClass: 'henanzhuanjizaixian' }, hunannmdxs: { mainClass: 'hunannmdxs' }, shenixue: { 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: { mainClass: 'CTXCommon', option: { 'nodeListClass': '', 'activeClass': '', openListenPlayTime: true, _init: async (that) => { let interval = setInterval(async () => { 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'); 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() { let $veryCode = document.querySelector('#vjs-overlay'); if ($veryCode) { $veryCode.parentElement?.removeChild($veryCode); setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 2000); } }, async playNext(that) { let homeUrl = MyTool.getValue('homeUrl'); location.href = homeUrl; setTimeout(() => { that._o1(); }, 5000); } } }, btzjpx: { 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: { mainClass: "bainianshuren", }, dyyxlearning: { mainClass: "dyyxlearning", }, hebeijiaoshijiaoyuwang: { mainClass: "hebeijiaoshijiaoyuwang", }, shangdongganbu: { mainClass: "shangdongganbu", }, yunketang: { mainClass: "yunketang", option: { 'nodeListClass': '.el-collapse-item__content div.file-item', 'activeClass': 'file-item-active' } }, guojiazhongxiaoxue: { mainClass: "CTXCommon", option: { 'nodeListClass': '', 'activeClass': '', async _init(that) { let interval = setInterval(async () => { 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; await sleep(250); } index = 0; } await 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); }, async playNext(that) { if (that.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); that.currentIndex += 1; ElementObj.$allTask[that.currentIndex].click(); setTimeout(() => { that._o1(); }, 3000); }, listenRebortFn() { let $fishBtn = document.querySelectorAll('.fish-btn.fish-btn-primary')[1]; $fishBtn?.click(); let $modal = document.querySelector('.fish-modal-root'); $modal?.parentElement?.removeChild($modal); } } }, huaxiajiaoshiyanpei: { mainClass: "huaxiajiaoshiyanpei", }, zhelixuexi: { mainClass: "zhelixuexi", }, fhswifer: { mainClass: "fhswifer", }, shdfuruuwsor: { 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': () => { let $status = document.querySelector('.el-tooltip[style]').parentElement.querySelectorAll('div div')[1]; if ($status.innerText == '完成') { location.reload(); } } } }, cnjiewhr34iuiehs: { mainClass: 'CTXCommon', option: { 'nodeListClass': '.menu ul>li dl', 'openListenPlayStatus': false, '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: { mainClass: 'rrhisdgf283y7jvdf', }, f6872: { mainClass: 'f6872' }, a782: { mainClass: 'rrhisdgf283y7jvdf', }, su862v: { mainClass: 'CTXCommon', option: { 'nodeListClass': '#m-chapter-ul li a', 'openListenPlayStatus': false, 'openListenPlayTime': true, 'activeClass': 'z-crt' } }, bfuew28: { mainClass: 'CTXCommon', option: { nodeListClass: '', openListenPlayStatus: false, videoEle: () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; 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) { 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?.click(); ElementObj.$video.play(); } } }, sd199: { mainClass: 'CTXCommon', option: { nodeListClass: '', openListenPlayStatus: false, videoEle: () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(() => { count += 1; 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); } 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: { mainClass: 'CTXCommon', option: { nodeListClass: '.el-menu li', activeClass: 'is-active', openListenPlayStatus: false, } }, g32f: { 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: { mainClass: 'CTXCommon', option: { nodeListClass: '.menu_body span>a.chapter', _init: () => { return new Promise(resolve => { let timer = setInterval(() => { ElementObj.$parentNodes = document.querySelector('iframe')?.contentDocument?.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 = document.querySelector('iframe')?.contentDocument?.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); 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: async (that) => { let wlkcID = /wlkcID=(.+)&wlk/.exec(location.search)[1]; let wlkckkID = /wlkckkID=(.+)&/.exec(location.search)[1]; let zjid = /zjid=(.+)/.exec(location.search)[1]; let learnTime = document.querySelector('#lbl_videoTime').innerText.trim(); let __VIEWSTATE = unsafeWindow.__VIEWSTATE.value; let __VIEWSTATEGENERATOR = unsafeWindow.__VIEWSTATEGENERATOR.value; let __EVENTVALIDATION = unsafeWindow.__EVENTVALIDATION.value; if (!wlkcID || !wlkckkID || !zjid || !learnTime || !__VIEWSTATE || !__VIEWSTATEGENERATOR || !__EVENTVALIDATION) { alert('参数错误'); return; } await 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(async (resolve) => { if (that.currentIndex >= ElementObj.$allTask.length - 1) { location.href = `${location.origin}/student/IndexTemplate_BootStrap.aspx`; return; } await sleep(2000); that.currentIndex += 1; let $nextBtn = ElementObj.$allTask[that.currentIndex]; $nextBtn?.click(); setTimeout(() => { that._o1(); }, 2000); }); } } }, das01: { 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'); $ipt.value = num; document.querySelector('.layui-layer-btn0').click(); } }, playNext: (that) => { return new Promise(async (resolve) => { if (that.currentIndex >= ElementObj.$allTask.length - 1) { location.href = 'http://hzsdadmin.zhihuiteacher.com/online/learn'; return; } await sleep(2500); that.currentIndex += 1; let $nextBtn = ElementObj.$allTask[that.currentIndex]; $nextBtn?.click(); setTimeout(() => { that._o1(); }, 5000); }); } } }, aa101: { mainClass: 'CTXCommon', option: { nodeListClass: '.level2>a', activeClass: 'cur', } }, sdf1: { 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: () => { let $cur = document.querySelector('._active.elli'); let $parent = $cur?.parentElement?.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: { mainClass: 'CTXCommon', option: { nodeListClass: '#classes li', activeClass: 'li_current_index', openListenPlayTime: false, } }, dsfs: { 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(async (resolve, reject) => { let til = document.querySelector('.startStudy-title>p'); let curClassName = til?.innerText.trim(); MyTool.setValue('preClassName', curClassName); let $btn = document.querySelector('.bottom-pc-btn button'); $btn.click(); await sleep(2000); setTimeout(() => { location.reload(); }, 3000); document.querySelector('.modal-button.modal-button-bold').click(); }); } } }, bsd11: { 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: { mainClass: "CTXCommon", option: { nodeListClass: '.tab-content-desc', activeClass: 'desc-item-sel', playFn: async (that) => { let studyType = await that.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); await sleep(1000); ElementObj.$video.currentTime += 7200; await sleep(1000); ElementObj.$video.currentTime += 7200; await sleep(1000); that.playNext(); } } }, ifsbds: { mainClass: "CTXCommon", option: { nodeListClass: '.tab-content-desc', activeClass: 'desc-item-sel', _init: async () => { 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: async (that) => { location.href = MyTool.getValue('homeUrl'); } } }, sfps: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', openListenPlayStatus: true, _init: async (that) => { let timer = setInterval(async () => { 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: async (that) => { window.alert = () => { }; location.href = MyTool.getValue('homeUrl'); }, listenRebortFn: async () => { let $checkCode = document.querySelector('#checkCode'); if ($checkCode.innerText) { let $inputCode = document.querySelector('#inputCode'); $inputCode.value = $checkCode.innerText; await sleep(1500); document.querySelector('.Button1.Button').click(); } window.alert = () => false; if (ElementObj.$video && (ElementObj.$video.currentTime >= ElementObj.$video.duration)) { toolOption.CtxMain.playNext(); } } } }, sf1101: { mainClass: "CTXCommon", option: { nodeListClass: 'span.studiedLesson', activeClass: 'RED', openListenPlayStatus: true, async getCurrentIndex(that) { 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(() => { count += 1; ElementObj.$video = document.querySelector('iframe')?.contentDocument?.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, async listenRebortFn(that) { let $btn = document.querySelector('iframe')?.contentDocument?.querySelector('#popup_panel input'); if ($btn) { $btn.click(); that.play(); } }, async playNext() { location.reload(); } } }, usd01: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', _init: async (that) => { let timer = setInterval(async () => { ElementObj.$handleSpeedUp.style.display = 'none'; let $icon = document.querySelector('.iconfont.icon-fujian'); if ($icon) { clearInterval(timer); showTip('判断此视频章节为非视频,即将自动跳过', 3000); await 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 = await 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 = await 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: async () => { showTip('✅✅✅即将切换下一个章节'); await sleep(2000); location.href = MyTool.getValue('homeUrl'); } } }, sdhfks01: { 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: { mainClass: "CTXCommon", option: { nodeListClass: '.video .chapterhead.chapterhead1 li', activeClass: 'current', openListenPlayTime: true, _init: async (that) => { let timer = setInterval(async () => { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$allTask = document.querySelectorAll('.ul-course li'); if (location.host === 'jxjy.ahhjsoft.com' && ElementObj.$allTask) { clearInterval(timer); showTip('🔊🔊🔊仅支持公需课4、公需课3', 4000); return; } 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; } 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(); await 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: async (that) => { await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); that.playNext(that); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (that.classType === 4) { await that.changeHtml($el('#video-content-box')); await that.getVideoDom(); that.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); await sleep(1000); showTip('🔉课件正在学习,请务点击或长时间隐藏'); ElementObj.$video.volume = 0; document.querySelector('.vjs-big-play-button')?.click(); ElementObj.$video.play(); setTimeout(async () => { 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; await sleep(1000); ElementObj.$video.currentTime = videoDuration; that.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); await 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}分钟`); await sleep(1000); } }, 2000); } }, async playNext(that) { location.reload(); } } }, hsduf: { mainClass: "CTXCommon", option: { nodeListClass: '.menu_body dd', activeClass: 'active', _init: async (that) => { let timer = setInterval(async () => { ElementObj.$handleSpeedUp.style.display = 'none'; let $nav = document.querySelector('#a2'); if (!!$nav) { clearInterval(timer); $nav.click(); await 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, async playNext() { location.reload(); }, playFn: async (that) => { await that.getVideoDom(); await that.changeHtml(ElementObj.$video.parentElement); let videoDuration = Math.ceil(ElementObj.$video.duration); let balanceTime = 0; let $id = await getStudentRuleId(); if (!$id || !videoDuration) { showTip('视频时间错误,请刷新页面重试'); location.reload(); return; } setInterval(() => { let jbox = document.querySelector('.jbox-button-focus'); jbox?.click(); }, 300); let videoTime = ElementObj.$video.duration; for (let item of new Array(10000)) { let res = await saveData(balanceTime, videoTime, $id); if (res != false) { if (balanceTime >= videoDuration) { that.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); await 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}分钟`); await 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 => { let $id = res.match(/saveVideo\?id=(.+)"/)?.[1]; resolve($id); }); }); } }, } }, pa1: { mainClass: "CTXCommon", option: { activeClass: '', nodeListClass: '', _init: async (that) => { let timer = setInterval(() => { ElementObj.$handleSpeedUp.style.display = 'none'; let $nav = document.querySelectorAll('.navItem'); if ($nav.length > 0) { if (!$nav[1].querySelector('span')?.classList.contains('active')) { $nav[1].click(); } } ElementObj.$parentNodes = document.querySelector('iframe')?.contentDocument?.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: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', _init: async (that) => { let timer = setInterval(async () => { 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); await sleep(3000); } return; } ElementObj.$allTask = document.querySelector('.iv-course-play-detail-menu-item')?.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); }, async playNext(that) { 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?.click(); setTimeout(() => { that._o1(); }, 2000); } } }, sd2: { mainClass: "CTXCommon", option: { nodeListClass: '.numCHapter', activeClass: 'active', } }, sfd9: { mainClass: "CTXCommon", option: { nodeListClass: '.videoList .item', activeClass: 'active', _init: async (that) => { let timer = setInterval(async () => { 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]; 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?.click(); }, beforePlayNext(that) { let statusDom = document.querySelector('.item.active')?.querySelectorAll('div>div')[2]; let num = /\((.+)\)/.exec(statusDom.innerText)[1]; if (num != '100%') { location.reload(); } }, listenRebortFn() { let statusDom = document.querySelector('.item.active')?.querySelectorAll('div>div')[2]; let num = /\((.+)\)/.exec(statusDom.innerText)[1]; console.log('num==>>', num); if (num == '100%') { location.reload(); } } } }, hds1: { mainClass: "CTXCommon", option: { nodeListClass: '.ml.tab-info a', activeClass: 'dd_active', _init: async (that) => { let timer = setInterval(async () => { ElementObj.$handleSpeedUp.style.display = 'none'; let $parentNodes = document.querySelectorAll('.content_unit'); if ($parentNodes.length) { clearInterval(timer); forData: for (let item of $parentNodes) { item.click(); await 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(); await MyTool.sleep(2000); document.querySelector('.layui-layer-btn1')?.click(); await 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'); let url = task.querySelector('.star').href; MyTool.openInTab(url); GM_addValueChangeListener('learnStatus', (key, oldValue, newValue, remote) => { if (newValue === 'done') { MyTool.deleteValue('learnStatus'); location.reload(); } }); break forData; } } } } } return; } ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(timer); showTip('✅✅✅初始化完成,3秒后自动播放', 3000); that.pdPlayFn(location.href); } }, 300); }, async playNext() { MyTool.setValue('learnStatus', 'done'); await sleep(1000); window.close(); }, listenRebortFn() { let $abtn = document.querySelector('a.btn-ProofOk'); $abtn?.click(); } } }, asds1: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', _init: async (that) => { let timer = setInterval(async () => { ElementObj.$handleSpeedUp.style.display = 'none'; ElementObj.$video = document.querySelector('video'); if (ElementObj.$video) { clearInterval(timer); let $wrap = document.querySelector('.rightcontent') || ElementObj.$video.parentElement; await that.changeHtml($wrap); that.addInfo('正在获取token...'); let token = dsf.getToken(); that.addInfo(`✅✅✅token:${token}`); that.addInfo('正在获取课程列表...'); let courseId = location.href.match(/id=(.+)/)[1]; let tasks = []; let businessId; if (location.href.indexOf('commonpage/classcolumn') != -1) { that.addInfo('正在获取parents'); let parentData = await 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 = await getCourseList(item.businessId, token); let arr = taskData.data.playTree.children.map((_item) => { return { ..._item, businessId: item.businessId }; }); tasks.push(...arr); break fordata; } } } else { let taskData = await 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); await 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: async (that) => { 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 = await saveData(); that.addInfo(`已学习${res.data.finishedRate}%`); if (res.data.finishedRate >= 100) { location.reload(); break; } await sleep(1000); } function saveData() { 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: { mainClass: "CTXCommon", option: { nodeListClass: '.n-collapse-transition .cursor-pointer', activeClass: 'bg-[#1C2630]', openListenPlayStatus: false, openListenPlayTime: false, _init: async (that) => { 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: { mainClass: "CTXCommon", option: { nodeListClass: '.n-collapse-transition .cursor-pointer', activeClass: 'bg-[#1C2630]', openListenPlayStatus: false, openListenPlayTime: false, _init: async (that) => { 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); }, async playNext(that) { if (that.currentIndex >= ElementObj.$allTask.length - 1) { let homeurl = MyTool.getValue('homeUrl'); window.open(homeurl); return; } that.currentIndex += 1; ElementObj.$allTask[that.currentIndex]?.click(); setTimeout(() => { that._o1(); }, 2000); }, } }, hf01: { 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: async (that) => { let timer = setInterval(async () => { ElementObj.$handleSpeedUp.style.display = 'none'; let $wrap = document.querySelector('.video-lt'); if (location.pathname === '/courseintroduction' && $wrap) { clearInterval(timer); let studentCourseId = /id=(.+)&loopPlay/.exec(location.href)[1]; let course = await _i1.hf01.apis.coursefind(studentCourseId); $wrap.style.position = 'relative'; await 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)); await that._o1(that); } await MyTool.sleep(1000); } } } }, 500); }, async playFn(that) { 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 }; 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; } let course = await _i1.hf01.apis.appendHours(JSON.stringify(option)); totalClassHours += 180; await MyTool.sleep(1000); } } } }, qf01: { 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)); }); } }, option: { nodeListClass: '', activeClass: '', openListenPlayStatus: false, openListenPlayTime: false, _init: async (that) => { let timer = setInterval(async () => { 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'; await that.changeHtml($wrap); await that._o1(that); } }, 500); }, async playFn(that) { let totalClassHours = 0; let ID = /COURSEWAREID=(.+)&FILENAME/.exec(location.href)[1]; 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; let result = await _i1.qf01.apis.appendHours(option); that.addInfo(`已成功学习${60}秒,当前任务已完成${result.msg}%`); if (parseInt(result.msg) >= 100) { that.addInfo(`🎉🎉🎉当前视频学习完成🎉🎉🎉`); await MyTool.sleep(1000); that.playNext(); break; } await MyTool.sleep(1000); } }, async playNext() { location.href = MyTool.getValue('homeUrl'); } } }, sf93: { 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, async _init(that) { let timer = setInterval(async () => { 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; await that._o1(that); break; } } } }, 500); }, async playFn(that) { await that.getVideoDom(); let $wrap = ElementObj.$video.parentElement; await that.changeHtml($wrap); ElementObj.$video.pause(); that.addInfo(`初始化已完成,5秒后 即将开始学习`); await MyTool.sleep(5000); let position = 0; let sessionTime = 6; let totalClassHours = ElementObj.$video.duration; for (let item of new Array(1000)) { position += sessionTime; if (position >= totalClassHours) { position = totalClassHours; } let option = `courseId=${courseId}&gradeId=${gradeId}&userId=${userId}&coursewareId=${coursewareId}&unameSN=${unameSN}&orgName=gclc-gzdk&position=${position}&sessionTime=${sessionTime}`; let result = await _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(`🎉🎉🎉当前视频学习完成🎉🎉🎉`); await MyTool.sleep(1000); that.playNext(); break; } await MyTool.sleep(3000); } }, } }, tskf: { mainClass: "CTXCommon", option: { nodeListClass: '.course_li', activeClass: 'videoListCur', openListenPlayStatus: false, openListenPlayTime: false, nextClass: 'a', async _init(that) { let timer = setInterval(async () => { 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; } await that._o1(that); break; } } } }, 500); }, async playFn(that) { let studyType = await that.getVideoDom(); await that.changeHtml(ElementObj.$video.parentElement); if (studyType == 1) { let end = Math.trunc(ElementObj.$video.duration); that.addInfo('🔊🔊🔊正在获取参数'); let course_id = /courseID=(.+)&coursewareid/.exec(location.href)[1]; let courseware_id = /coursewareid=(.+)&MyView/.exec(location.href)[1]; let student_id; if (document.cookie.split(',')[0].indexOf('student_id') != -1) { student_id = /student_id=([0-9]+)/.exec(document.cookie.split(',')[0])[1]; } else { student_id = /[0-9]+/.exec(document.cookie.split(',')[1].split(';')[3].split('&')[0])[0]; } that.addInfo('🔊🔊🔊正在请求数据'); await 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)) { await MyTool.sleep(1000); that.addInfo('⚠⚠⚠正在等待系统请求updateStudyStatue2,请勿关闭此页面, 预计25秒'); } } that.playNext(); } } }, hgs01: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', async _init(that) { let timer = setInterval(async () => { ElementObj.$allTask = document.querySelectorAll('ul li'); if (ElementObj.$allTask.length && location.pathname == '/admin/lock/Study') { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (!item.querySelector('.layui-icon-ok-circle')) { that.currentIndex = i; if (!item.classList.contains('list')) { item.click(); await sleep(2000); } break; } } await sleep(1000); document.querySelector('.layui-layer-btn0')?.click(); that._o1(that); } ElementObj.$parentNodes = document.querySelectorAll('.learnTree_second li'); if (ElementObj.$parentNodes.length && location.pathname == '/online/learn') { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; for (let i = 0; i < ElementObj.$parentNodes.length; i++) { let item = ElementObj.$parentNodes[i]; if (!item.querySelector('p').classList.contains('complete')) { if (!item.classList.contains('secondActive')) { item.click(); await sleep(2000); } setTimeout(() => { window.close(); }, 10 * 1000); MyTool.setValue('homeUrl', location.href); document.querySelector('.toStudy').click(); break; } } } }, 500); }, async listenRebortFn(that) { document.querySelector('.layui-layer-btn0')?.click(); let time = document.querySelector('.time')?.innerText; if (time?.indexOf('已达到最低完成时间') != -1) { location.href = MyTool.getValue('homeUrl'); } let ipt = document.querySelector('.layui-layer-content input'); if (ipt) { ipt.value = ipt.getAttribute('data-num3'); await sleep(500); document.querySelector('.layui-layer-btn0')?.click(); } }, beforePlayNext(that) { let time = document.querySelector('.time')?.innerText; if (time?.indexOf('已达到最低完成时间') != -1) { location.href = MyTool.getValue('homeUrl'); } }, } }, hgs02: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', async _init(that) { let timer = setInterval(async () => { ElementObj.$parentNodes = document.querySelectorAll('.mozs_list>li'); if (ElementObj.$parentNodes.length) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; for (let i = 0; i < ElementObj.$parentNodes.length; i++) { let item = ElementObj.$parentNodes[i]; let status = item.querySelector('.jdt_bar').innerText.match(/[0-9]+/)[0]; if (status != 100) { MyTool.setValue('homeUrl', location.href); document.querySelector('.qd_but').click(); break; } } } ElementObj.$allTask = document.querySelectorAll('.lcml_djj_list>li'); if (ElementObj.$allTask.length && location.pathname == '/p/classroom/simple') { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.classList.contains('on')) { that.currentIndex = i; that._o1(that); } } } }); }, videoEle: () => { return new Promise(resolve => { let count = 0; let Timer = setInterval(async () => { count += 1; let start = document.querySelector('.xgplayer-start'); if (start) { clearInterval(Timer); document.querySelectorAll('.xgplayer-icon')[2].click(); start.click(); await sleep(3000); ElementObj.$video = document.querySelector('video'); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); }, beforePlayNext(that) { if (that.currentIndex == ElementObj.$allTask.length - 1) { location.href = MyTool.getValue('homeUrl'); } } } }, uasf: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', async _init(that) { let timer = setInterval(async () => { try { ElementObj.$nextBtn = document.querySelectorAll('iframe')[1].contentDocument.querySelector('frame').contentDocument.querySelector('#btnNext'); if (ElementObj.$nextBtn) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; that._o1(that); } } catch (e) { } }, 500); }, async playFn(that) { let doc = document.querySelectorAll('iframe')[1].contentDocument.querySelectorAll('frame')[1].contentDocument; let wrap = doc.querySelector('tbody'); await that.changeHtml(wrap, doc); let interval = setInterval(async () => { try { let status = doc.querySelector('td[id]').innerText; that.addInfo(status, 1, doc); if (status && status.indexOf('已经学习完毕') != -1) { clearInterval(interval); setTimeout(() => { that._o1(that); }, 2000); ElementObj.$nextBtn.click(); } } catch (e) { } }, 1000); }, } }, uiw01: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', async _init(that) { let timer = setInterval(async () => { if (location.pathname == '/IndexMain.aspx') { let doc = document.querySelectorAll('iframe')[1].contentDocument; let $per = doc?.querySelector('#AspNetPager1>div'); if ($per && doc) { clearInterval(timer); ElementObj.$handleSpeedUp.style.display = 'none'; console.log(11111111); forData: for (let item of $per.children) { ElementObj.$allTask = doc.querySelectorAll('.table_all'); console.log('ElementObj.$allTask==>>', ElementObj.$allTask); for (let i = 0; i < ElementObj.$allTask.length; i++) { if (i === 0) continue; let c = ElementObj.$allTask[i]; if (c.querySelector('td[width="232"]').innerText.indexOf('已完成') == -1) { MyTool.setValue('homeUrl', location.href); c.querySelector('.xx_ben>a').click(); break forData; } } item.click(); await sleep(2000); } } } if (location.pathname == '/Student/CoursePlay.aspx') { clearInterval(timer); that._o1(that); } }, 500); }, listenRebortFn(that) { }, beforePlayNext(that) { location.href = MyTool.getValue('homeUrl'); } } }, sfgd: { mainClass: "CTXCommon", option: { nodeListClass: '.chapterList>li', activeClass: 'active', listenRebortFn(that) { document.querySelector('.pauseBg')?.click(); } } }, ojisa: { mainClass: "CTXCommon", option: { nodeListClass: '', activeClass: '', nextClass: 'span', async _init(that) { let timer = setInterval(async () => { ElementObj.$allTask = document.querySelectorAll('.courseMenuList>li'); if (ElementObj.$allTask.length) { clearInterval(timer); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; let status = item.querySelector('.f-right').innerText.trim(); if (status !== '100%') { that.currentIndex = i; if (!item.classList.contains('active')) { item.querySelector('span')?.click(); await MyTool.sleep(1000); } showTip(`✅✅✅初始化完成,请手动点击一次加速`, 3000); break; } } } }, 500); }, listenRebortFn(that) { document.querySelector('.el-message-box__wrapper .el-button--danger')?.click(); }, } }, }; let speedArr = [1, 2, 3, 5, 10, 16]; let toolOption = { accelerator: 1, CtxMain: null, SchoolType: -1 }; const version = '6.1.0.2'; let _bt = 'https://www.gaozhiwang.top'; let _b = 'http://47.115.205.88:7001'; MyTool.registerMenuCommand('📥更新版本', 'u', () => { window.open("http://public.gaozhiwang.top/public/index.user.js"); }); 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(async () => { try { this.toolkey = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey'); this._rn(); } catch (e) { console.log('#2', e); } }, 2500); } updateSpeedElement(num) { if (this.speedStatus == 0) return; ElementObj.$video.playbackRate = num; } async _o1(callback, isOpenListen = true) { let key = localStorage.getItem('mytoolkey') || MyTool.getValue('mytoolkey'); if (!key) { alert('请先购买key'); window.open(_bt); } console.log('_o1====toolOption.CtxMain==>>', !toolOption.CtxMain); if (!toolOption.CtxMain) { location.reload(); } let r = await 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; await toolOption.CtxMain.play(); } else { this.isAdaptive = 0; showTip(`🔉🔉🔉${r.message}`, 5000, true); return; } } 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('程序错误,请联系客服'); } } _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); } async changeHtml($wrap, doc = document) { ElementObj.$ctxstatsbox = doc.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); await sleep(300); ElementObj.$ctxstatsbox = doc.querySelector('.ctxstatsbox'); } this.addInfo('🔉初始化已完成,正在播放'); } addInfo(str, type, doc) { doc = doc ? doc : globalThis.document; 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); } }); } pdPlayFn(className) { let localData = MyTool.getValue('spanClassName') || []; if (localData.indexOf(className) != -1) { this._o1(); } else { localData.push(className); MyTool.setValue('spanClassName', localData); this._o1(); } } 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.apis = options.apis || {}; 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(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$allTask = document.querySelectorAll(this.nodeListClass); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }, 1000); } async getCurrentIndex() { if (this.getCurrentIndexByOption) { this.currentIndex = await this.getCurrentIndexByOption(); } else { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await this.getVideoDom(); if (this.playFn) { await 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) { await this.changeHtml(ElementObj.$video.parentElement); this.listenPlayTime(); } this.listenRebort(); ElementObj.$video.addEventListener('ended', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(this); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(this); } } } listenRebort() { this.listenRebortTime = setInterval(() => { if (this.listenRebortFn && typeof this.listenRebortFn == 'function') { this.listenRebortFn(this); } }, 10 * 1000); } async playNext() { if (this.beforePlayNext && typeof this.beforePlayNext === 'function') { await this.beforePlayNext(this); } if (this.currentIndex >= ElementObj.$allTask.length - 1) { return; } await sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; if (this.nextClass) { $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector(this.nextClass); } $nextBtn?.click(); if (this.afterPlayEnd) { await this.afterPlayEnd(); } setTimeout(() => { this._o1(); }, 5000); } listenPlayTime() { let count = 0; this.timer = setInterval(async () => { count += 1; let currentTime = ElementObj.$video?.currentTime; let time = (currentTime / 60).toFixed(2); let durtion = ElementObj.$video?.duration; this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`); }, 5000); } registerBtn(name, accessKey, callback) { MyTool.registerMenuCommand(name, accessKey, callback); } } 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() { 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() { ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; let totalDoc = document.querySelector('#lg-counter-all')?.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); } } 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(async () => { ElementObj.$allTaskParentNodes = document?.querySelectorAll('.ant-collapse-item'); ElementObj.$allTask = document?.querySelectorAll('.course-detail-content-section-info-text'); if (ElementObj.$allTask.length && ElementObj.$allTaskParentNodes.length) { clearInterval(interval); this.getCurrentIndex(); } }, 1000); } async getCurrentIndex() { 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('初始化完成,可点击加速'); } } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } async play() { clearInterval(this.timer); await this.getVideoDom(); ElementObj.$video.play(); this.updateSpeedElement(toolOption.accelerator); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; this.lisRebort(); ElementObj.$video.addEventListener('ended', async () => { 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(); await sleep(1500); ElementObj.$allTask = document?.querySelectorAll('.course-detail-content-section-info-text'); this.currentTaskEle = ElementObj.$allTask[this.currentIndex]; this.currentTaskEle.click(); } await sleep(5000); this._o1(); }, 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?.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); } } class fjsf2 extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = 0; this.currentIndex = 0; this.currentMidiaType = 'video'; this._init(); } _init() { ElementObj.$allTaskParentNodes = document?.querySelectorAll('.section'); let $allchapters = document.querySelectorAll('.section'); this.getCurrentIndex(); } getCurrentIndex() { ElementObj.$allTaskParentNodes.forEach((item, index) => { let $lis = item.querySelectorAll('li'); $lis?.forEach(($ele, key) => { if ($ele.className.includes('active')) { this.parentIndex = index; this.currentIndex = key; ElementObj.$allTask = $lis; } }); }); } async play() { ElementObj.$allTask[this.currentIndex].click(); await sleep(2000); let $clseDocBtn = document.querySelector('.lg-close'); if (!$clseDocBtn) { this.currentMidiaType = 'video'; this.handlePlayVideo(); } else { this.currentMidiaType = 'doc'; this.handlePlayDoc(); } } async nextPlay() { await 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(); await 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); } async handlePlayDoc() { ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; await 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; } await sleep(2000); let $cleseBtn = document.querySelector('.lg-close'); $cleseBtn.click(); this.nextPlay(); } } 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; } }); } async play() { 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); }); } } class zxpxmr extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = 0; this._init(); } _init() { 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; } }); } async play() { 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', async () => { clearInterval(this.timer); if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('课程已全部部分完'); return; } this.currentIndex += 1; let $nextTaskBtn = document.querySelector("#btn-sure"); await sleep(2000); $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); } } 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(async () => { ElementObj.$video = document.querySelector('video'); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.setAttribute('autoplay', 'autoplay'); let $volumeicon = document.querySelector('.volume-icon'); $volumeicon.click(); await sleep(500); $volumeicon.click(); if (!!ElementObj.$video) { clearInterval(interval); showTip('🔉初始化完成,即将自动播放', 3000); await sleep(300); let $playBtn = document.querySelector('.prism-big-play-btn'); $playBtn.click(); await this._o1(); } }, 1000); }); } getCurrentIndex() { let activeClass = 'active'; ElementObj.$allTask.forEach((item, index) => { if (item.classList.contains(activeClass)) { this.currentIndex = index; } }); } async play() { await 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', async () => { clearInterval(this.timer); ElementObj.$allTask = document.querySelectorAll('.courseItem'); await sleep(300); if (this.currentIndex >= ElementObj.$allTask.length - 1) { localStorage.setItem('ctx-status', 'done'); let $saveBtn = document.querySelector('.sc-box'); $saveBtn.click(); await sleep(1500); let $backBtn = document.querySelectorAll('.menu-box ul li')[3]; $backBtn.click(); await sleep(2000); window.location.reload(); return; } this.currentIndex += 1; this._o1(); await sleep(2500); ElementObj.$allTask[this.currentIndex].click(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.play(); }, 1000); }); } selectOneClass() { let T = setTimeout(async () => { clearInterval(T); let $label1 = document.querySelector('#tab-second'); $label1.click(); await sleep(2500); ElementObj.$parentNodes = document.querySelectorAll('.course_item'); await sleep(200); ElementObj.$parentNodes[0].click(); }, 3000); } } 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(async (resolve) => { ElementObj.$video = document.querySelector('video'); await 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; } }); } async play() { ElementObj.$video = document.querySelector('video'); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.setAttribute('autoplay', 'autoplay'); ElementObj.$video.volume = 0; await sleep(3500); let $play_btn = document.querySelector('.play_btn'); $play_btn.click(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', async () => { 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]; await sleep(5000); $nextTaskBtn?.click(); setTimeout(() => { this._o1(); }, 2000); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.play(); }, 3000); }); } selectOneClass() { let T = setTimeout(async () => { clearInterval(T); ElementObj.$parentNodes = document.querySelectorAll('.content-box>.course-list>div'); await 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; } }); await sleep(200); ElementObj.$parentNodes[this.parentIndex].click(); setTimeout(() => { this.initPlayPage(); }, 2500); }, 1000); } } mingshiclass.ctxid = 17; class qiangshi extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.listenRebortTime = null; 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 { 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 { let _document = document.querySelectorAll('iframe')[2].contentDocument.querySelectorAll('iframe')[0].contentDocument; ElementObj.$video = _document?.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } } catch (e) { } }, 1000); }); } async play() { clearInterval(this.listenRebortTime); ElementObj.$allTask[this.currentIndex].click(); await this.getVideoDom(); ElementObj.$video.volume = 0; let $playBtn = this._document.querySelector('#player_pause'); $playBtn?.click(); ElementObj.$video.play(); this.listenRebort(); setTimeout(() => { ElementObj.$video.playbackRate = localStorage.getItem('_localSpeed') || toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', async () => { 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); }); } listenRebort() { this.listenRebortTime = setInterval(() => { console.log('弹窗检查中...'); let $btn = document.querySelector('.layui-layer-btn0'); if (!!$btn) { setTimeout(() => { $btn.click(); ElementObj.$video.play(); }, 3000); } }, 10 * 1000); } } qiangshi.ctxid = 18; class lanzhgoulgjs extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { 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(); await sleep(4000); ElementObj.$allTask = document.querySelectorAll('.chapterlist .drop p'); await 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); }); } async play() { let $nextP = ElementObj.$allTask[this.currentIndex]; let $nextBtn = $nextP.querySelector('a'); await sleep(300); $nextBtn.click(); await sleep(3000); let result = await this.getVideoDom(); if (result == 1) { clearInterval(this.listenVidoeStatusTimer); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; await 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', async () => { location.reload(); }); } if (result == 2) { let $thirdplayer = document.querySelector("#thirdplayer"); this.changeHtml($thirdplayer); this.reloadPage(); this.listenPageHide(); this.listenAbnormal(0); } } async reloadPage() { 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); } async changeHtml($wrap) { 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); await 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); } }); } } 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(); } async _init() { let $item_btn = document.querySelector('.item_btn'); ElementObj.$topNode = document.querySelectorAll('.el-collapse-item__header'); if (!!$item_btn) { await sleep(2000); $item_btn.click(); setTimeout(() => { window.close(); }, 2000); } else if (ElementObj.$topNode.length) { let index = await this.getDoing(); ElementObj.statusEles[index].click(); await sleep(1000); this.getParentIndex(); forData: for (let item of ElementObj.$topNode) { if (!item.classList.contains('is-active')) { item.click(); await 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(async () => { ElementObj.$allTask = document.querySelectorAll('.course-info .video-title'); if (ElementObj.$allTask.length) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this.getCurrentIndex(); } }, 1000); } } async getParentIndex() { ElementObj.$topNode = document.querySelectorAll('.el-collapse-item'); await sleep(200); let len = ElementObj.$topNode.length; let _interval = setInterval(async () => { if (this.topIndex >= len - 1) { clearInterval(_interval); } await sleep(2000); let $item = ElementObj.$topNode[this.topIndex]; if (this.topIndex != 0) { $item.querySelector('.item-title-col').click(); } await sleep(300); ElementObj.$parentNodes = $item.querySelectorAll('.el-table__row'); await sleep(300); ElementObj.$parentNodes.forEach(async (item, index) => { 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'); await 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); } }); } async getCurrentIndex() { 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]; await 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); }); } async play() { clearInterval(this.timer); await this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $startBtn = document.querySelector('.xgplayer-start'); await 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', async () => { 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]; await 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); } } 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); } async getParentIndex() { 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; } async getCurrentIndex() { ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"); await sleep(2000); ElementObj.$allTask[0].click(); this.currentIndex = 0; ElementObj.$handleSpeedUp.style.display = 'none'; showTip('🔉初始化完成,5秒后自动开始播放', 3000); setTimeout(() => { this._o1(); }, 3000); } async play() { clearInterval(this.timer); clearInterval(this.timer2); await 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', async () => { 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(() => { let $rebort = document.querySelector('.progress')?.querySelectorAll('span')[1].innerText.trim(); if ($rebort == '100%') { location.reload(); } }, 3000); } async playNext() { ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"); await sleep(1500); if (this.currentIndex >= ElementObj.$allTask.length - 1) { location.reload(); return; } } } 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); } async getParentIndex() { } async getCurrentIndex() { 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); await sleep(2000); ElementObj.$allTask[this.currentIndex].click(); await sleep(2500); this._o1(); } async play() { await this.getVideoDom(); let $volume = document.querySelector('.volume-icon'); $volume.classList.add('mute'); ElementObj.$video.volume = 0; await sleep(200); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$video.play(); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', async () => { await sleep(1500); if (this.currentIndex >= ElementObj.$allTask.length - 1) { this.parentIndex += 1; await 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'); await sleep(200); $backBtn.click(); showTip('正在切换课程', 3000); setTimeout(async () => { this.currentIndex += 1; let $nextTaskBtn = ElementObj.$allTask[this.currentIndex]; await sleep(2000); $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); }); } } class guojiazhihuijiaoyu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } _init() { let interval = setInterval(async () => { 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(); } async play() { let $nextBtn = ElementObj.$allTask[this.currentIndex]; await sleep(300); $nextBtn.click(); await sleep(3000); document.querySelector('video').volume = 0; let $playBtn = document.querySelector('.xgplayer-icon-play'); $playBtn.click(); await 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', async () => { let $close = document.querySelector('.layui-layer-btn0'); await 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); } async answerTopic() { let $choice = document.querySelectorAll('.choice li')[0]; await sleep(200); $choice.click(); let $submit = document.querySelector('#submit'); await sleep(1000); $submit.click(); await sleep(2000); $submit = document.querySelector('#submit'); await sleep(200); $submit.click(); await sleep(4500); let $close = document.querySelector('.layui-layer-btn0'); await 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); } } 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); } async getCurrentIndex() { 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); await sleep(3000); this._o1(); } async play() { clearInterval(this.listenVidoeStatusTimer); let studyType = await this.getVideoDom(); await sleep(200); if (studyType == 1) { setTimeout(async () => { this.currentIndex += 1; let $li = ElementObj.$allTask[this.currentIndex]; let $nextTaskBtn = $li?.querySelector('h3'); await sleep(2000); $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?.querySelector('h3'); $nextTaskBtn?.click(); }); this.reloadPage(); } ElementObj.$video.addEventListener('ended', async () => { 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; }); } } async playNext() { this.videoplaying = 3; await 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?.click(); setTimeout(() => { this._o1(); }, 3000); } else { $nextTaskBtn = $li?.querySelector('h3'); await sleep(2000); $nextTaskBtn?.click(); } } 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); }); } async reloadPage() { 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); } } class tsbtchinamde extends Main { constructor() { super(); this.taskLength = 0; this.studyType = 1; this.currentIndex = -1; this._init(); } _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { 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(); await sleep(4000); ElementObj.$allTask = document.querySelectorAll('.chapterlist .drop p'); await 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); }); } async play() { clearInterval(this.timer); let $nextP = ElementObj.$allTask[this.currentIndex]; let $nextBtn = $nextP.querySelector('a'); await sleep(300); $nextBtn.click(); this.studyType = await this.getVideoDom(); if (this.studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); await 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', async () => { location.reload(); }); } async reloadPage() { 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; class zjzjsrc extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { if (location.pathname == '/member/project_toMyCourseList.page') { clearInterval(interval); let btnxs = document.querySelectorAll('td .btn-xs'); MyTool.registerMenuCommand('设置学习年份', 's', () => { let year = prompt(`请输入要学习序号:1 - ${btnxs.length},'如:1'`); if (year) { MyTool.setValue('year', year); alert(`✅✅✅设置成功`); location.reload(); } }); let year = MyTool.getValue('year') || 1; let $page1 = btnxs[year - 1]; $page1.click(); await sleep(2000); let index = await 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?.click(); await sleep(2000); ElementObj.$allTask = document.querySelectorAll(".btn-xs[name='btn1']"); this.step2(); } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); ElementObj.$handleSpeedUp.style.display = 'none'; this._o1(); } }, 1000); } async getParentIndex() { 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 = document.querySelector('#option1')?.querySelector("a[title='Go to next page']"); if (!$lastPageBtn.classList.contains('active')) { $nextBtn.click(); await sleep(2000); result = await 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; } async step2() { let index = 0; let $items = document.querySelector('#myModal .panel-body')?.querySelectorAll('tbody tr'); let timer = setInterval(async () => { let $openBtn = $items[index].querySelector(".btn-xs[name='btn2']"); $openBtn?.click(); await sleep(500); let result = this.getCurrentIndex(); if (result != -1) { clearInterval(timer); let $progressNodes = document.querySelectorAll('#myModal1 tbody tr')[result]; let $a = $progressNodes.querySelector('a'); 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); }); } async play() { clearInterval(this.timer); await this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); await sleep(200); ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; this.changeHtml($el('#example_video_1')); this.listenPlayTime(); this.listenPageHide(); ElementObj.$video.addEventListener('ended', async () => { this.videoplaying = -1; if (location.host === '2j.zjjsrc.cn') { localStorage.setItem('learnStatus', 'done'); } else { 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(async () => { count += 1; let currentTime = ElementObj.$video?.currentTime; let time = (currentTime / 60).toFixed(2); let durtion = ElementObj.$video?.duration; this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durtion / 60}分钟`); }, 5000); } } zjzjsrc.ctxid = 26; class lzrejxjy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$handleSpeedUp.style.display = 'none'; document.querySelector('#learnHelperIframe')?.contentDocument?.querySelector('.btn-icon.shut-btn')?.click(); ElementObj.$allTask = document.querySelectorAll('.review-thumbs-cell[id]'); if (location.host === 'live.webtrn.cn' && ElementObj.$allTask.length) { clearInterval(interval); for (let i = 0; i < ElementObj.$allTask.length; i++) { let item = ElementObj.$allTask[i]; if (item.querySelector("div[name]").innerText != '有效学习:100%') { this.currentIndex = i; if (!item.querySelector(".thumb-wrap")?.classList.contains('isPlaying')) { item.click(); await MyTool.sleep(2000); } this._o1(); break; } } return this._o1(); } let $trans2 = document.querySelectorAll('.my-center2RM .pull-left a.trans')[1]; if (!!$trans2) { clearInterval(interval); GM_setValue("homeUrl", location.href); $trans2?.click(); showTip('🔉正在初始化'); await sleep(2000); ElementObj.$parentNodes = document.querySelectorAll('.class2Li'); this.findParentIndex(); return; } let $menus = document.querySelectorAll('.learn-menu-cell'); ElementObj.$allTask = document.querySelector('.contentIframe').contentWindow.document.querySelectorAll('.s_point'); if (ElementObj.$allTask.length || $menus.length) { clearInterval(interval); this.getCurrentIndex(); return; } } catch (e) { } }, 1000); } async getCurrentIndex() { if (!['jxzj-kfkc.webtrn.cn', 'zjdx-kfkc.webtrn.cn'].includes(location.host)) { let $menu2 = document.querySelectorAll('.learn-menu-cell')[1]; if (!$menu2.classList.contains('learn-menu-cur')) { let $menu2_a = $menu2.querySelector('a'); $menu2_a.click(); } await 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) { let homeUrl = GM_getValue("homeUrl", null); GM_openInTab(homeUrl, { active: true }); setTimeout(() => { window.close(); }, 1500); return; } ElementObj.$allTask[this.currentIndex]?.click(); showTip('初始化完成,5秒后开始播放'); this._o1(); } async findParentIndex() { 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(() => { if (count > 7) { clearInterval(Timer); resolve(2); } let _doc2 = document.querySelector('#replayFrame'); if (_doc2) { clearInterval(Timer); ElementObj.$video = _doc2.contentDocument.querySelector('video'); resolve(1); return; } let tip = document.querySelector('.remind'); if (tip && tip.innerText.trim().includes('开播提醒')) { clearInterval(Timer); window.close(); return; } let _document = ElementObj._document.querySelector('#mainFrame')?.contentWindow.document; ElementObj.$video = _document?.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); } if (_document.querySelector('.space-entry-btn')) { clearInterval(Timer); if (!_document.querySelector('.spacefont-seal-done')) { _document.querySelector('.space-entry-btn').click(); } resolve(2); } count += 1; }, 1000); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studytype = await this.getVideoDom(); if (studytype == 2) { this.playNext(); } if (studytype == 1) { ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); await 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', async () => { 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); } async playNext() { if (location.host === 'live.webtrn.cn') { if (this.currentIndex > ElementObj.$allTask.length - 1) { console.log('this.currentIndex', this.currentIndex, 'ElementObj.$allTask.length', ElementObj.$allTask.length); window.close(); return; } this.currentIndex += 1; await MyTool.sleep(3500); this._o1(); } else { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let homeUrl = GM_getValue("homeUrl", null); GM_openInTab(homeUrl, { active: true }); setTimeout(() => { window.close(); }, 1500); return; } this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); showTip('🔉正在切换课程'); await MyTool.sleep(3500); this._o1(); } } } lzrejxjy.ctxid = 29; class xuzhouyikedaxue extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.parentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async findParentIndex() { showTip('🔉正在初始化', 2500); await 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(); } async getCurrentIndex() { showTip('正在初始化', 2500); await sleep(4500); let $contentIframe = document.querySelector('.contentIframe'); ElementObj._document = $contentIframe.contentWindow.document; ElementObj.$allTask = ElementObj._document.querySelectorAll('.menub'); this.currentIndex = 0; ElementObj.$allTask[this.currentIndex]?.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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer2); unsafeWindow.alert = () => { }; let studytype = await this.getVideoDom(); this.listenRebort(); if (studytype == 1) { ElementObj.$video.volume = 0; await 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', async () => { await 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); } async playNext() { 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; class xibeisfzyjy extends Main { constructor() { super(); this.studyType = 2; this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.swiperIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); await 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(); } async getSwiperIndex() { ElementObj.$video = document.querySelector('video'); await 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 = document.querySelector('.el-message-box__btns')?.lastChild; await sleep(2000); $btn.click(); setTimeout(() => { this._o1(); }, 5000); } } async getCurrentIndex() { ElementObj.$handleSpeedUp.style.display = 'none'; showTip('正在初始化', 2500); await 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); } 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); await this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.setAttribute('muted', 'muted'); await sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); if (this.studyType == 2) { let index = await 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', async () => { 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 = document.querySelector('.el-message-box__btns')?.lastChild; await 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?.click(); } }); } async getDocIndex() { ElementObj.$docs = document.querySelectorAll('.abcd .file-box'); await 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; } async playDoc(type) { let index = await this.getDocIndex(); if (index == -1) { this.playNext(); return; } this.eachPlayDoc(index, () => { setTimeout(async () => { 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); } async playNext(nextIndex) { if (nextIndex != undefined) { this.currentIndex = nextIndex; } if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前章节课程已学完'); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelectorAll('span')[1]; $nextBtn?.click(); await sleep(2000); let $btn = document.querySelector('.el-message-box__btns')?.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); } async reloadPage() { let count = 6 * 60; let studyInterval = setInterval(() => { if (count <= 0) { clearInterval(studyInterval); location.reload(); } count -= 1; }, 1000); } } xibeisfzyjy.ctxid = 26; class henangongshe extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex($menuNodes) { $menuNodes[0].click(); showTip('⚠️⚠️⚠️正在初始化', 3000); await 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(); await 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; } let homeUrl = GM_setValue("homeUrl", location.href); ElementObj.$parentNodes[this.parentIndex].querySelector('button').click(); setTimeout(() => { window.close(); }, 5500); } async getCurrentIndex() { 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]; await 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); await this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $startBtn = document.querySelector('.xgplayer-start'); await 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', async () => { if (this.currentIndex >= ElementObj.$allTask.length - 1) { setTimeout(() => { window.close(); }, 1500); let homeUrl = GM_getValue("homeUrl", null); GM_openInTab(homeUrl, { active: true }); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; await 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; } } class henandikuang extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex() { 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(); } async getCurrentIndex() { 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]; await 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); await this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', async () => { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let $backBtn = document.querySelector('a.back'); await sleep(200); $backBtn.click(); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; await sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } } class zhejiangtjj extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.videoplaying = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex(type) { 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'; GM_openInTab(homeUrl, { active: true }); setTimeout(() => { window.close(); }, 3500); return; } showTip('⚠️⚠初始化完成,5秒后开始播放', 3000); let $nextBtn = ElementObj.$parentNodes[this.currentIndex].querySelector('button'); await sleep(200); $nextBtn.click(); setTimeout(() => { location.reload(); }, 3000); } async getCurrentIndex() { 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]; await sleep(200); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { let $iframe = document.querySelector('#playerFrame')?.contentDocument; ElementObj.$video = $iframe.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } async play() { clearInterval(this.listenVidoeStatusTimer); await this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $startBtn = document.querySelector('.mejs__overlay-button'); await 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', async () => { if (this.currentIndex >= ElementObj.$allTask.length - 1) { setTimeout(() => { window.close(); }, 3500); let $backBtn = document.querySelector('.back-btn'); await sleep(200); $backBtn.click(); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; await sleep(300); $nextBtn.click(); setTimeout(() => { this._o1(); }, 4500); }); } punchCard() { setInterval(() => { let $elem = document.querySelector('.btn-submit'); if (!!$elem) { $elem.click(); } }, 5000); } } class jiangxizhipeizaixian extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); await 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', async () => { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程视频已全部播放完'); return; } this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; await 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); } } class anhuijixujyzx extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$btn_dropdown = document.querySelector('.btn_dropdown'); ElementObj.$btn_dropdown?.click(); let $nextBtn = document.querySelector('.btn.btn-green'); if (!!$nextBtn) { clearInterval(interval); await 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); } async getCurrentIndex() { showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500); await sleep(1500); let $sectionlist = $el('#sectionlist'); if ($sectionlist.style.display != 'none') { ElementObj.$btn_dropdown?.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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); let studyType = await 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', async () => { }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('🔉检测到没有视频,3秒后自动切换下一个', 3000); await sleep(3000); let index = this.getIndex(); let $preNext = document.querySelector('.preNext.next'); if (!!$preNext) { $preNext.click(); return; } let $nextBtn = ElementObj.$allTask[index + 1]; await sleep(200); $nextBtn.click(); } } async playNext() { } 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); } } class lanzhoudxgs extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this.listenVidoeStatusTimer = null; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$btn_dropdown = document.querySelector('#catalogA'); ElementObj.$btn_dropdown?.click(); ElementObj.$allTask = document.querySelectorAll('li.activity-node'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }, 1000); } async getCurrentIndex() { showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500); await sleep(1500); let $sectionlist = $el('#toolsContentDiv'); if ($sectionlist.style.display != 'none') { ElementObj.$btn_dropdown?.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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); await this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; let $playBtn = document.querySelector('.vjs-big-play-button'); await sleep(200); $playBtn?.click(); await 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', async () => { 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); } async playNext() { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); await sleep(5000); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; await sleep(300); let $i = $nextBtn.querySelector('.cedu-file-video'); if (!!$i) { $nextBtn.click(); } else { alert('当前课程视频已全部播放完'); } } } class jidianshejijiaoyu extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.swiperIndex = -1; this.timer = null; this.listenVidoeStatusTimer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { showTip('⚠️⚠️⚠️初始化完成,5秒后开始播放', 1500); await 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); await this.getVideoDom(); ElementObj.$video.setAttribute('muted', 'muted'); ElementObj.$video.volume = 0; await 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', async () => { 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); } async playNext() { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); await sleep(5000); let $btn0 = document.querySelector('.layui-layer-btn0'); if (!!$btn0) { $btn0.click(); await sleep(2000); location.reload(); } } } class ycjyluteducn extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.parentIndex = -1; this._init(); } async _init() { window.alert = function () { }; let interval = setInterval(async () => { 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(); await this.findParentIndex(); } }, 500); } async findParentIndex() { showTip('🔉正在初始化', 2500); await sleep(4500); 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; } await this.getCurrentIndex(); } async getCurrentIndex() { showTip('正在初始化', 2500); let timer = setInterval(() => { 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; ElementObj.$allTask[this.currentIndex]?.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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer2); unsafeWindow.alert = () => { }; let studytype = await this.getVideoDom(); this.listenRebort(); console.log('studytype==>>', studytype); if (studytype == 1) { ElementObj.$video.volume = 0; await 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', async () => { await sleep(3000); this.playNext(); }); } if (studytype == 2) { this.timer2 = setTimeout(() => { this.playNext(); }, 7000); } } listenRebort() { this.listenRebortTime = setInterval(() => { 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); } async playNext() { 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(); await sleep(5000); this._o1(); } } ycjyluteducn.ctxid = 26; class gdrcjxjyw extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex() { showTip('✅✅✅正在初始化,请勿点击', 3000); let count = 0; let timer = setInterval(async () => { ElementObj.$parentNodes[count].querySelector('.btn-continue-study').click(); await 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); } async getCurrentIndex() { 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; } let $iframe = document.querySelector('#c_frame').contentDocument; ElementObj.$video = $iframe.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } async play() { clearInterval(this.listenVidoeStatusTimer); await 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', async () => { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); await 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); }); } } class shixuetong extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { 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 && ElementObj.$video.src) { clearInterval(Timer); resolve(1); } if (count > 10) { clearInterval(Timer); resolve(2); } }, 1000); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); clearInterval(this.timer2); let studyType = await 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', async () => { 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(); } } async playNext() { await 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?.click(); this._o1(); }, 4500); } listenPlayTime() { showTip('⚠️⚠️⚠️课件正在学习,请务点击或长时间隐藏'); let count = 0; this.timer = setInterval(async () => { 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?.click(); await 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); } } class shandongenhualvyou extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let $toolbarnav = document.querySelector('#dashboard-toolbar-nav li'); $toolbarnav?.click(); let interval = setInterval(async () => { try { ElementObj.$allTask = document.querySelectorAll('li.task-item'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }, 1000); } async getCurrentIndex() { 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); await 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', async () => { showTip('⚠️⚠️⚠️检测到视频已播放完,5秒后自动切换下一个视频', 4500); await 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(async () => { count += 1; let time = (ElementObj.$video.currentTime / 60).toFixed(2); let durrentTime = (ElementObj.$video.duration / 60).toFixed(2); this.addInfo(`后台学习${count}次,当前状态正在学习,已播放${time}分钟,视频总时长为${durrentTime}`); }, 5000); } } class gansugongwuyuan extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { try { let $menus = $el('.min_le_1 a'); if (!!$menus) { clearInterval(interval); let mytoolkey = localStorage.getItem('mytoolkey'); MyTool.setValue('mytoolkey', mytoolkey); $menus.click(); await sleep(2000); $el('.xuxi_1').click(); await sleep(2000); this.getParentIndex(); return; } ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(interval); let mytoolkey = MyTool.getValue('mytoolkey'); this.deleteDom(); this.handleClickSpeedUp2(mytoolkey); } ElementObj.$handleSpeedUp.style.display = 'none'; } catch (e) { } }, 1000); } async getParentIndex() { $el('a.my').click(); await 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; await 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(); await 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?.click(); setTimeout(() => { window.close(); }, 1000 * 10); break; } pageNum -= 1; let $prePage = $el('.syy'); $prePage?.click(); } } } async getCurrentIndex() { } getVideoDom() { return new Promise(resolve => { let Timer = setInterval(() => { ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } }, 1000); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); await this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = MyTool.getValue('accelerator'); }, 3500); this.listenRebort(); ElementObj.$video.addEventListener('ended', async () => { let homeurl = MyTool.getValue('homeUrl'); MyTool.openInTab(homeurl); setTimeout(() => { window.close(); }, 10000); return; }); ElementObj.$video.addEventListener('pause', () => { setTimeout(async () => { let $confirmBtn = document.querySelector('#dvMsgBtns input'); $confirmBtn?.click(); await 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); } async handleClickSpeedUp2(key, callback) { if (key) { this.speedStatus = 1; let result = await 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; } } } } class wlmqcol extends Main { constructor() { super(); this.taskLength = 0; this.parentIndex = -1; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { await 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?.click(); setTimeout(() => { this._o1(); }, 3000); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.timer); await this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3500); ElementObj.$video.addEventListener('ended', async () => { this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(async () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); ElementObj.$video.playbackRate = toolOption.accelerator; }, 2500); }); } async playNext() { let $backBtn = document.querySelectorAll('.el-breadcrumb__inner.is-link')[1]; $backBtn?.click(); setTimeout(() => { location.reload(); }, 3500); } } class shandongzhuanyejisu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { let $menus = document.querySelectorAll('.learn-menu-cell'); if ($menus.length) { clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }, 1000); } async getCurrentIndex() { 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; } ElementObj.$allTask[this.currentIndex]?.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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studytype = await this.getVideoDom(); if (studytype == 1) { ElementObj.$video.volume = 0; await 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', async () => { this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } if (studytype == 2) { showTip('✅✅✅检测到该章节不是视频,即将切换下一节', 2000); await 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; 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(); } async _init() { let interval = setInterval(async () => { 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'; await this.getCurrentIndex(); } }, 1000); } async getCurrentIndex() { let timer = setInterval(async () => { 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(); await sleep(3000); item.querySelector('.items.iChild').click(); await 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); }); } async play() { clearInterval(this.timer); let studyType = await this.getVideoDom(); document.querySelector('.el-message-box__btns button')?.click(); await 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', async () => { await 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(); await sleep(500); } this.addInfo('🎉🎉🎉🎉🎉🎉文档播放完成🎉🎉🎉🎉🎉🎉'); await this.playNext(); } } async playNext() { let $nextBtn = document.querySelector('.next>a'); if ($nextBtn?.innerText == '暂无') { setTimeout(() => { location.reload(); }, 2000); let backBtn = document.querySelector('.location .r'); backBtn.click(); return; } await sleep(300); $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); } handleTemplekeyData() { MyTool.setValue('selectData', this.selectData); } } class chongqingzhuanye extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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 = $iframe_aliplayer?.contentDocument?.querySelector('video'); this.handleClickSpeedUp2(); return; } let $iframe_aliplayer2 = document.querySelector('#aliPlayerFrame'); if (!!$iframe_aliplayer2) { ElementObj.$allTask = $iframe_aliplayer2.contentDocument?.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(); await 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); } } }); } async getParentIndex2() { let $btn = document.querySelectorAll('.btn-box .btn-item')[2]; $btn.click(); await sleep(3500); let $item = document.querySelectorAll('#pane-MUST .text-item')[0]; $item.click(); } async getCurrentIndex() { 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(); } async getCurrentIndex2() { 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(() => { let $iframe = document.querySelector('#iframe'); let _document = $iframe.contentDocument?.querySelector('iframe')?.contentDocument; ElementObj.$video = _document.querySelector('video'); count += 1; if (!!ElementObj.$video) { clearInterval(Timer); resolve(true); } if (count > 10) { clearInterval(Timer); resolve(false); } }, 1000); } }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = await this.getVideoDom(); if (studyType) { ElementObj.$video.volume = 0; await sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); let $wrap = $el('#iframe').contentDocument.querySelector('iframe')?.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', async () => { this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } if (!studyType) { showTip('⚠️⚠️⚠️未检测到视频,5秒后切换下一节', 4500); setTimeout(() => { this.playNext(); }, 3000); } } async play2() { if (!ElementObj.$video) { location.reload(); return; } ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', async () => { let homeUrl = MyTool.getValue('homeUrl'); await sleep(2500); MyTool.openInTab(homeUrl); setTimeout(() => { window.close(); }, 1000 * 5); }); } async play3() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = await this.getVideoDom('#aliPlayerFrame'); ElementObj.$video.volume = 0; await sleep(200); ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', async () => { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let homeUrl = MyTool.getValue('homeUrl'); await 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(() => { let $btn = document.querySelector('iframe')?.contentDocument?.querySelector('.next-button'); if ($btn) { $btn.click(); } }, 13 * 1000); } async playNext() { await 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(() => { 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 = $iframe.contentDocument?.querySelector('.ans-job-icon'); let status = $statusDom?.getAttribute('aria-label'); if (status == '任务点已完成') { clearInterval(this.timer); this.addInfo(`✅✅✅监测到当前任务已完成,5秒后自动切换下一节`, 1); setTimeout(() => { this.playNext(); }, 3000); } }, 3000); } addInfo(str, type) { ElementObj.$ctxstatsbox = $el('#iframe').contentDocument.querySelector('iframe')?.contentDocument.querySelector('.ctxstatsbox'); let $ctxstatsbox_lis = $el('#iframe').contentDocument.querySelector('iframe')?.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; } async handleClickSpeedUp2(callback, type) { let key = localStorage.getItem('mytoolkey'); if (key) { this.speedStatus = 1; let result = await 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; class jiaoyuganbuwang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex() { showTip('✅✅✅正在初始化', 3000); ElementObj.$handleSpeedUp.style.display = 'none'; await sleep(3000); GM_setValue("homeUrl", location.href); showTip('初始化完成,5秒后开始播放'); await sleep(3000); let $nextBtn = document.querySelectorAll('tr')[2].lastChild; $nextBtn.querySelector('a')?.click(); this._o1(); setTimeout(() => { window.close(); }, 5000); } async getCurrentIndex() { ElementObj.$allTask = document.querySelectorAll('.cvtb-MCK-course-content'); await 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); } async play() { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = await this.getVideoDom(); ElementObj.$video.volume = 0; await 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', async () => { this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } async playNext() { await sleep(2000); if (this.currentIndex >= ElementObj.$allTask.length - 1) { let homeUrl = GM_getValue("homeUrl", null); 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; class zaixianxuexi extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { let $jAlertButton2 = document.querySelector('#jAlertButton2'); if (!!$jAlertButton2) { clearInterval(interval); $jAlertButton2.click(); await 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); } async getCurrentIndex() { 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; } ElementObj.$allTask[this.currentIndex]?.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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); await this.getVideoDom(); ElementObj.$video.volume = 0; await sleep(200); 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', async () => { this.getCurrentIndex(); }); ElementObj.$video.addEventListener('pause', () => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }); } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } } zaixianxuexi.ctxid = 26; class guojiakaifangdaxue extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { 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(() => { count += 1; ElementObj.$video = document.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } let _document = document.querySelector('#previewContentInIframe'); ElementObj.$video = _document?.contentDocument?.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } let $sendBtn = document.querySelector('.forum-toolbar-search button'); if (!!$sendBtn) { resolve(3); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; await sleep(200); let $playBtn = document.querySelector('.mvp-toggle-play'); if (!!$playBtn) { $playBtn.click(); } else { ElementObj.$video.play(); } setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', async () => { showTip('当前视频已播放完,5秒后播放下一个', 4500); await sleep(4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { let $playBtn = document.querySelector('.mvp-toggle-play'); ElementObj.$video.volume = 0; $playBtn?.click(); ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); let preBtn = document.querySelector('a.ng-scope'); preBtn?.click(); await sleep(1000); document.querySelector('#file-previewer .header a.right.close')?.click(); await sleep(2000); this.playNext(); } if (studyType == 3) { showTip(`正在新闻讨论区的Id`); let topicData = await this.getTopicID(location.hash.replace('#/', '')); showTip(`✅✅✅讨论区id获取成功,<span style="color: #f01414;">${topicData.topic_category.id}</span>`); showTip(`🔉🔉🔉正在发帖中,预计2-9秒完成`); let option = { category_id: topicData.topic_category.id, content: `<p>收获很大,继续学习,期待后面的课程,+${Math.trunc(Math.random() * 10)}</p>`, title: "总结", uploads: [] }; console.log('option===>>>', option); let result = await this.sendTopic(option); showTip(`✅✅✅帖子发布成功,即将自动播放下一个`); await MyTool.sleep(2000); 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?.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); } } } getTopicID(fid) { return new Promise(async (resolve) => { let result = await MyTool.axfedata({ url: location.origin + `/api/forum/${fid}/category?fields=id,title,activity(id,sort,module_id,syllabus_id,start_time,end_time,is_started,is_closed,data,can_show_score,score_percentage,title,prerequisites,submit_by_group,group_set_id,group_set_name,imported_from,parent_id),referrer_type`, method: "GET" }); resolve(result); }); } sendTopic(option) { return new Promise(async (resolve) => { fetch(location.origin + "/api/topics", { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9", "content-type": "application/json;charset=UTF-8", "sec-ch-ua": "\"Chromium\";v=\"118\", \"Google Chrome\";v=\"118\", \"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" }, "referrer": `${location.origin}/${option.category_id}/learning-activity/full-screen`, "referrerPolicy": "strict-origin-when-cross-origin", "body": JSON.stringify(option), "method": "POST", "mode": "cors", "credentials": "include" }).then(res => res.json()).then(data => { console.log('ffffffff====>>>', data); resolve(data); }); }); } } guojiakaifangdaxue.ctxid = 26; class jjjxjy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { 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?.click(); } if (location.href == 'https://jjxy.web2.superchutou.com/#/') { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getParentIndex(); } }, 5000); }); let interval = setInterval(async () => { 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?.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; } } } async getCurrentIndex() { 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); }); } async play() { clearInterval(this.timer2); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; await 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', async () => { showTip('当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await 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?.click(); $btn2?.click(); }, 1 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(4500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; if ($nextBtn) { $nextBtn.click(); setTimeout(() => { this._o1(); }, 4000); } } } jjjxjy.ctxid = 26; class hebeiganbu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$parentNodes = document.querySelectorAll('.hoz_course_row'); if (ElementObj.$parentNodes.length) { clearInterval(interval); for (let item of ElementObj.$parentNodes) { let status = item.querySelector('.h_pro_percent')?.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); } async getCurrentIndex() { } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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); ElementObj.$handleSpeedUp.style.background = '#f01414'; ElementObj.$handleSpeedUp.innerText = '加速成功'; ElementObj.$video.addEventListener('ended', async () => { this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); }, 4500); let $btn = document.querySelector('.user_choise'); $btn?.click(); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } async playNext() { await sleep(2500); location.href = MyTool.getValue('homeUrl'); } } class zhuzhouteacher extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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(); await 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); } async getCurrentIndex() { await 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(() => { }, 1000 * 15); return; } else { let $nextPage = document.querySelector('.ant-pagination-next'); if ($nextPage.classList.contains('ant-pagination-disabled')) { alert('全部课程已学完'); return; } $nextPage.click(); this.getCurrentIndex(); } } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } async playNext() { MyTool.openInTab('http://www.zhuzhouteacher.com/teacheredu/main/mycenter/course-learning'); setTimeout(() => { window.close(); }, 5000); } } zhuzhouteacher.ctxid = 60; class yinghuaxuetang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('on')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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(); }); ElementObj.$video.addEventListener('ended', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); } } yinghuaxuetang.ctxid = 60; class shanghaikaifangdx extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$allTask = document.querySelectorAll('.cell_info1 a'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }, 1000); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); } } shanghaikaifangdx.ctxid = 60; class gzgbjy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$allTask = document.querySelectorAll('.tab-content-desc'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }, 1000); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); } } gzgbjy.ctxid = 60; class guizhoujianshezyjs extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$allTask = document.querySelectorAll('.catalog div>a'); if (ElementObj.$allTask.length) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }, 1000); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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(); }); ElementObj.$video.addEventListener('ended', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); } } guizhoujianshezyjs.ctxid = 60; class jixujiaoyuzaixian extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.el-message-box__btns .el-button--primary'); $btn?.click(); }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); } } jixujiaoyuzaixian.ctxid = 60; class gzteacher extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { $topicModal.parentNode?.removeChild($topicModal); } }, 10 * 1000); } async playNext() { this.currentIndex += 1; if (location.host == 'gdipx.yanxiu.com') { await 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; } await sleep(2500); let $closeBtn = document.querySelectorAll('.ant-modal-body button')[2]; $closeBtn?.click(); let $nextBtn = document.querySelectorAll('.studycontentBottom button')[2]; $nextBtn?.click(); } setTimeout(() => { this._o1(); }, 4000); } } gzteacher.ctxid = 60; class moocxinyingzao extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { 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; } } 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { $topicModal.parentNode?.removeChild($topicModal); } }, 10 * 1000); } async playNext() { this.getCurrentIndex(); } } moocxinyingzao.ctxid = 60; class zhejiangzjelib extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { } async getCurrentIndex() { ElementObj.$handleSpeedUp.style.display = 'none'; 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; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } 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; 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); }); } async _o1(callback) { this.getCurrentIndex(); } async spanKeyCount() { let key = localStorage.getItem('mytoolkey'); if (key) { let result = await 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('程序错误,请联系客服'); } } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let curitem = document.querySelector('#iframepage').contentDocument.querySelector('.ncells .currents'); let isDone = curitem.querySelector('.roundpointStudent.blue'); if (isDone) { this.playNext(); } }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } this.currentIndex += 1; let $nextBtn = document.querySelector('#iframepage').contentDocument.querySelector('.orientationright '); $nextBtn?.click(); let $iframepage = document.querySelector('#iframepage').contentDocument; await sleep(2000); $iframepage.querySelector('.wconter a')?.click(); setTimeout(() => { this.spanKeyCount(); }, 4000); } } zhejiangzjelib.ctxid = 60; class dongbeishifandaxue extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('cur')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { $topicModal.parentNode?.removeChild($topicModal); } }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a'); $nextBtn?.click(); setTimeout(() => { this._o1(); }, 6000); } } dongbeishifandaxue.ctxid = 60; class qzjystudy extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); 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); } async getCurrentIndex() { 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 = (isDone.querySelector('.text')?.nextSibling).innerText; 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); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { $topicModal.parentNode?.removeChild($topicModal); } }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn?.click(); setTimeout(() => { this._o1(); }, 6000); } } qzjystudy.ctxid = 60; class GlivePro extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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?.click(); } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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); await 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); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); if (location.host == 'cloud.gaodun.com') { location.reload(); } else { this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn?.click(); setTimeout(() => { this._o1(); }, 4500); } } } GlivePro.ctxid = 60; class gaodengxueli extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { $topicModal.parentNode?.removeChild($topicModal); } }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].parentElement; $nextBtn?.click(); setTimeout(() => { this._o1(); }, 6000); } } gaodengxueli.ctxid = 60; class henanzhuanjizaixian extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.timer = null; this._init(); } async _init() { let interval = setInterval(async () => { try { ElementObj.$allTask = document.querySelectorAll('.videoLi'); if (ElementObj.$allTask.length) { clearInterval(interval); this.getCurrentIndex(); } } catch (e) { } }, 1000); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); ElementObj.$allTask[this.currentIndex].click(); let studyType = await 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(); } await 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); await sleep(3000); this.playNext(); } } async play2() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = await this.getVideoDom(); let $volumeBtn = document.querySelector('button.pv-volumebtn'); if (!$volumeBtn.classList.contains('pv-icon-volumenone')) { $volumeBtn.click(); } await sleep(500); let $playBtn = document.querySelector('.pv-iconfont'); $playBtn.click(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenRebort(); ElementObj.$video.addEventListener('ended', async () => { 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) { dur = document.querySelector('.pv-time-current').innerText; cur = document.querySelector('.pv-time-duration').innerText; } if (type == 3) { let $playedTime = document.querySelector('.played-time'); if (!$playedTime) { this.play2(); return; } dur = $playedTime.innerText; cur = document.querySelector('.total-time').innerText; } this.addInfo(`🔊🔊🔊监测到视频正在学习中,已成功学习${dur},需学习${cur}`); if (cur == dur) { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); } }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); setTimeout(() => { location.reload(); }, 3000); this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex]; $nextBtn?.click(); } } henanzhuanjizaixian.ctxid = 60; class hunannmdxs extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { try { let $nextBtn = document.querySelector('.pull-right>a'); if ($nextBtn) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this._o1(); } } catch (e) { } }, 1000); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 3) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $topicModal = document.querySelector('.ant-modal-root'); if (!!$topicModal) { $topicModal.parentNode?.removeChild($topicModal); } }, 10 * 1000); } async playNext() { let $nextBtn = document.querySelector('.pull-right>a'); if (!$nextBtn) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); $nextBtn?.click(); setTimeout(() => { this._o1(); }, 5000); } } hunannmdxs.ctxid = 60; class bainianshuren extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this.swiperIndex = 0; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex() { 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; } } } async getCurrentIndex() { await 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(); await sleep(2500); let isHasSwiperItem = await this.getSwiperItem(); if (isHasSwiperItem == 1) { this.getSwiperIndex(); } else { this._o1(); } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); } async getSwiperIndex() { 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(); await sleep(2500); let $btn = document.querySelector('.el-message-box__btns .el-button--primary'); $btn?.click(); setTimeout(() => { this._o1(); }, 4000); } async getSwiperItem() { 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); }); } async play() { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await 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', async () => { this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 1500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } async playNext() { 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'; } }, 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; class dyyxlearning extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await this.getVideoDom(); let myClassId = location.href.match('myClassId=(.+)')[1]; let tasks = await 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 = await 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.listenRebort(questionList.attribute.data); ElementObj.$video.addEventListener('ended', async () => { 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); await sleep(3000); this.playNext(); } } listenRebort(questionList) { this.listenRebortTime = setInterval(async () => { let $ccJumpOver = document.querySelector('#ccJumpOver'); let $topicType2 = document.querySelector('.pv-ask-modal-wrap'); if (!!$ccJumpOver || !!$topicType2) { 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(); } document.querySelectorAll('.ccQuestionList li')[answerIndex]?.click(); document.querySelector('#ccQuestionSubmit').click(); setTimeout(() => { document.querySelector('#rightBtn').click(); }, 2000); } }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 4000); } async getVideoTopic(myClassId, option) { 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)); }); } async getClassList(myClassId) { 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)); }); } } class hebeijiaoshijiaoyuwang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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 = document.querySelector('iframe')?.contentDocument?.querySelector('video'); if (ElementObj.$video) { ElementObj.$handleSpeedUp.style.display = 'none'; clearInterval(interval); this._o1(); return; } } catch (e) { } }, 1000); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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(() => { count += 1; ElementObj.$video = document.querySelector('iframe')?.contentDocument?.querySelector('video'); if (!!ElementObj.$video) { clearInterval(Timer); resolve(1); return; } if (count >= 7) { clearInterval(Timer); resolve(2); } }, 1000); }); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = await 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'; await this.changeHtml($wrap); this.listenPlayTime(); this.listenRebort(); ElementObj.$video.addEventListener('ended', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await 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); } async playNext() { let $nextBtn2 = document.querySelectorAll('.tishivalhui')[2]; let $nextBt1 = document.querySelectorAll('.tishivalhui')[1]; let $nextTitle = $nextBtn2 || $nextBt1; if ($nextTitle.innerText == '下一篇:没有了;') { location.href = MyTool.getValue('homeUrl'); return; } await sleep(2500); let $tishivaljus = document.querySelectorAll('.tishivalju'); let $nextBtn = $tishivaljus.length > 1 ? $tishivaljus[1] : $tishivaljus[0]; $nextBtn.click(); } } class shangdongganbu extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { 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); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = await this.getVideoDom(); if (studyType == 1) { let $wrap = document.querySelector('.video-player-box'); $wrap.style.position = 'relative'; await this.changeHtml($wrap); let option = { courseId: '', idCardHash: '' }; option.courseId = /courseId=(.*)/.exec(location.href)[1]; option.idCardHash = JSON.parse(sessionStorage.getItem('userInfo')).data.idCardHash; if (!option.idCardHash) { alert('登录过期了,请重新登录'); return; } let result1 = await this.fetchStart(option); this.listenPlayTime(option); this.listenRebort(); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.school-sate button'); if (!!$btn) { $btn.click(); } }, 10 * 1000); } async listenPlayTime(option) { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); await sleep(3000); 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) { await this.saveProgress(option); await this.saveProgress(option); await this.saveEnd(option); this.addInfo('🎉🎉🎉🎉🎉🎉🎉🎉已成功学完🎉🎉🎉🎉🎉🎉🎉🎉'); break; } balanceTime += 1 * toolOption.accelerator > videoDuration ? videoDuration : 1 * toolOption.accelerator; option.studyTimes = balanceTime; let result1 = await this.saveProgress(option); this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); await sleep(1000); } this.playNext(); } async playNext() { await sleep(2500); setTimeout(() => { location.reload(); }, 3000); location.href = 'https://gbwlxy.dtdjzx.gov.cn/content#/personalCenter'; } fetchStart(option) { return new Promise(async (resolve) => { let result = await 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(async (resolve) => { 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(async (resolve) => { let result = await 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(async (resolve) => { let result = await 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); }); } } class yunketang extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; 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); }); } async play() { clearInterval(this.listenRebortTime); let studyType = await 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', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { let $playBtn = document.querySelector('.vjs-big-play-button'); $playBtn?.click(); ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await 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); } async playNext() { 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(); } } } class huaxiajiaoshiyanpei extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('list_active')) { this.currentIndex = i; showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 1000 * 3); break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); clearInterval(this.timer); let studyType = await this.getVideoDom(); this.listenRebort(); if (studyType == 1) { await this.changeHtml($el('video').parentElement); let video_id = null; if (location.href.indexOf('/sort/') > -1) { video_id = /\/id\/(.+)\/sort/.exec(location.href)[1]; } else { video_id = /\/id\/(.+)/.exec(location.href)[1]; } let goods_id = unsafeWindow.goods_id; let user_id = unsafeWindow.user_id || $("#uid").val(); await 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); await sleep(3000); this.playNext(); } } async listenPlayTime(option) { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); await sleep(3000); showTip('🔉课件正在学习,请务点击或长时间隐藏'); let videoDuration = Math.ceil(ElementObj.$video.duration); if (!videoDuration) { 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; await 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 = await this.saveProgress(option); this.addInfo(`🔊当前状态正在以${toolOption.accelerator}倍速学习中,已学习${balanceTime}秒,视频总时长为${videoDuration / 60}分钟`); await sleep(850); } } listenRebort() { this.listenRebortTime = setInterval(() => { let $btn = document.querySelector('.layui-layer-btn0'); $btn?.click(); }, 2000); } async playNext() { let count = 3; this.currentIndex += 1; let $nextBtn = ElementObj.$allTask[this.currentIndex].querySelector('a'); let inter = setInterval(() => { this.addInfo('🐱🚀🐱🚀🐱🚀请稍后,正在保存数据......'); if (count <= 0) { clearInterval(inter); $nextBtn.click(); } count -= 1; }, 1000); } saveProgress(option) { return new Promise(async (resolve) => { let result = await 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); }); } } class zhelixuexi extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex() { for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) { let isDone = ElementObj.$allTask[i]; if (isDone.classList.contains('active')) { this.currentIndex = i; break; } } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } showTip('✅✅✅初始化完成,5秒后开始播放', 3000); setTimeout(() => { this._o1(); }, 4000); } async play() { clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await this.getVideoDom(); if (studyType == 1) { ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); this.listenRebort(); ElementObj.$video.addEventListener('ended', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); } if (studyType == 2) { showTip('✅✅✅该章节为文档,即将自动切换下一个', 3000); await sleep(3000); this.playNext(); } } listenRebort() { this.listenRebortTime = setInterval(() => { }, 10 * 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { let homeUrl = MyTool.getValue('homeUrl'); setTimeout(() => { location.href = homeUrl; }, 3000); return; } await sleep(2000); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(); }, 3000); } } class fhswifer extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex() { for (let item of ElementObj.$parentNodes) { item.click(); await sleep(500); } this.getCurrentIndex(); } async getCurrentIndex() { 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); }); } async play() { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let $video = await this.getVideoDom(); $video.click(); this.listenPlayTime(); this.listenRebort(); } listenPlayTime() { let count = 0; this.timer = setInterval(async () => { count += 1; let currentTime = document.querySelector('.played-time').innerText; let durtion = document.querySelector('.total-time').innerText; if (currentTime.trim() >= durtion.trim()) { clearInterval(this.timer); this.playNext(); } }, 5000); } listenRebort() { this.listenRebortTime = setInterval(() => { let playBtn = document.querySelector('.bplayer-wrap'); if (!playBtn.classList.contains('bplayer-playing')) { document.querySelector('.icon.bplayer-play-btn').click(); } }, 1000); } async playNext() { if (this.currentIndex >= ElementObj.$allTask.length - 1) { alert('当前课程所有视频已播放完'); return; } await sleep(2500); this.currentIndex += 1; ElementObj.$allTask[this.currentIndex].click(); setTimeout(() => { this._o1(() => { }, false); }, 3000); } } class rrhisdgf283y7jvdf extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getCurrentIndex(type) { 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) { 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(() => { }, 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; } async play() { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await this.getVideoDom(); ElementObj.$video.volume = 0; ElementObj.$video.play(); setTimeout(() => { ElementObj.$video.playbackRate = toolOption.accelerator; }, 3000); ElementObj.$video.addEventListener('ended', async () => { showTip('✅✅✅当前视频已播放完,5秒后播放下一个', 4500); this.playNext(); }); ElementObj.$video.addEventListener('pause', () => { setTimeout(() => { ElementObj.$video.volume = 0; ElementObj.$video.play(); }, 3500); }); } async listenPlayTime() { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); await 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; await 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}分钟`); await sleep(1000); } this.playNext(); } async playNext() { let homeUrl = MyTool.getValue('homeUrl'); if (!homeUrl) { showTip('官网该平台底部有注意事项,请按照该指示页面执行程序,否则无法自动连播', 1000 * 10); alert('官网该平台底部有注意事项,请按照该指示页面执行程序,否则无法自动连播'); return; } setTimeout(() => { location.href = homeUrl; }, 10 * 1000); } } class f6872 extends Main { constructor() { super(); this.taskLength = 0; this.currentIndex = -1; this._init(); } async _init() { let interval = setInterval(async () => { 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); } async getParentIndex() { for (let item of ElementObj.$parentNodes) { let status = item.querySelector('.ant-progress-text').innerText; if (parseInt(status) < 97) { item.click(); await sleep(2000); this.getCurrentIndex(); break; } } } async getCurrentIndex() { 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(); await sleep(2000); this._o1(); break forData; } } item.click(); await sleep(2000); } if (this.currentIndex == -1) { alert('当前课程所有视频已播放完'); return; } return; } async play() { clearInterval(this.timer); clearInterval(this.listenVidoeStatusTimer); clearInterval(this.listenRebortTime); let studyType = await this.getVideoDom(); await this.changeHtml($el('.input_video')); this.listenPlayTime(); } async listenPlayTime() { this.addInfo('✅✅✅✅✅✅✅✅初始化完成,即将开始播放✅✅✅✅✅✅✅✅✅'); await 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; await 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}分钟`); await sleep(3000); } this.playNext(); } async playNext() { setTimeout(() => { location.reload(); }, 1000); } } class Addpanel { constructor() { this.$panelWrap = document.createElement('div'); this.$panelStyle = document.createElement('style'); this._init(); } async _init() { this.$panelWrap.innerHTML = this.getCTXHTML(); this.$panelStyle.innerHTML = panelcss; document.querySelector('head')?.appendChild(this.$panelStyle); if (toolOption.SchoolType == 3) { document.querySelector('#bigContainer')?.appendChild(this.$panelWrap); } else if (toolOption.SchoolType == 7) { document.querySelector('.layout-content')?.appendChild(this.$panelWrap); } else if (toolOption.SchoolType == 11) { document.querySelector('.task-dashboard-page')?.appendChild(this.$panelWrap); } else if (toolOption.SchoolType == 18) { document.querySelector('.screen_wide_1')?.appendChild(this.$panelWrap); } else { document.querySelector('body')?.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'; document.querySelector('.myTool>.floatWin')?.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(); setTimeout(async () => { try { let 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?v=${version}&schoolType=${toolOption.SchoolType}&toolkey=${toolkey}&host=${location.origin}`); } } else { console.log('1111111111colletionSchoolData'); this.colletionSchoolData(`/colletionschool?v=${version}&schoolType=${toolOption.SchoolType}&toolkey=${toolkey}&host=${location.origin}`); } let fingerprintjs = localStorage.getItem('fingerprint'); if (!fingerprintjs && toolkey) { import('https://openfpcdn.io/fingerprintjs/v4') .then(FingerprintJS => FingerprintJS.load()) .then(fp => fp.get()) .then(result => { fingerprintjs = result.visitorId; return result.visitorId; }).then(res => { localStorage.setItem('fingerprint', fingerprintjs || ''); this.colletionSchoolData(`/colletionschool?v=${version}&schoolType=${toolOption.SchoolType}&toolkey=${toolkey}&fingerprint=${fingerprintjs}&host=${location.origin}`); }); } } catch (e) { console.log('#2', e); } }, 2500); } optimizePannel() { console.log('toolOption.SchoolType==>>', toolOption.SchoolType); 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'; } } if ([14, 24, 63, 65].indexOf(toolOption.SchoolType) != -1) { toolOption.accelerator = 1; speedArr = [1]; } if ([40, 52, 54, 67, 80].indexOf(toolOption.SchoolType) != -1) { speedArr = [1, 2]; } if ([7, 12, 22, 53].indexOf(toolOption.SchoolType) != -1) { speedArr = [1, 2, 3]; toolOption.accelerator = 3; } if ([3, 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; } 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); }); }); 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'); 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; }); }); } 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); while (true) { } } }); } 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> `; } async handleAddKey(callback) { if (!ElementObj.$ipt.value) { window.open('https://abc.gaozhiwang.top/#/home'); window.open(_bt); return; } let result = await 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); while (true) { } } }); } async colletionSchoolData(option) { let result = await axfedata({ method: 'GET', url: _b + option }); console.log('colletionSchoolData==>>>', result); if (result.code == 200) { MyTool.setValue('schoolInfoColletion', `${new Date()}`); } if (result.code == 20231) { erf(result.data); while (true) { } } return result; } } 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 { GM_xmlhttpRequest({ ...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); } } async function _re() { 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 = await 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); console.log('result.opitons==>>', result.options); if (result.options) { let options = null; eval(result.options); console.log('_obj==>>>', options); toolOption.CtxMain = new CTXCommon(options); } else { let _a = _i1[opiton]['mainClass'] == 'CTXCommon' ? _i1[opiton].option : eval(_i1[opiton].mainClass); 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(async () => { await _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); })();