在您安装前,Greasy Fork 希望您知道此脚本声明其包含了一些负面功能。这些功能也许会使脚本作者获利,而不能给您带来任何直接的金钱收益。
您只有在付费后才能使用脚本的全部功能。Greasy Fork 未参与到支付的流程,因此无法验证您是否获得了有价值的东西,亦无法帮助您申请退款。
Greasy Fork is available in English.
🤖自动挂机📺高倍数🔥继续教育🎗️远程教育🚩专业技术人员💂♀️西南大学、北京科技大学🎀西南交通,湖北第二师范🥩电子科技,成都市中小学🍿华东师范大学,江西专技学习网,安徽专技网,建投学堂、温州继续教育网、山东青年政治学院,🛎河南教师培训网,宁夏专业技术人员,黑龙江省网络助学平台,青岛市,🌈浙里学习、山东干部网络学院,河北教师教育网、隆泰达培训🎊东营市继续教育网、百年树人、会计人员🥇深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);
})();