2025/1/8 14:35:05
// ==UserScript==
// @name 自动刷课
// @namespace Violentmonkey Scripts
// @match https://cn202434030.stu.teacher.com.cn/*
// @grant none
// @version 1.1
// @author rockxsj
// @description 2025/1/8 14:35:05
// ==/UserScript==
const W = window;
(function () {
W.addEventListener('load', function () {
if (W.location.href.indexOf('intoStudentStudy') !== -1) {
waitForElement('#checkjdcon2 > div > div.modulelistcontent.listcontent > ul > li:nth-child(1) > div.module_wrap > ul > li > div.firstmenu > a.list-title', (element) => {
// 这里是元素出现后要执行的代码
const list = document.querySelectorAll('a.layui-btn.layui-btn-primary > span')
let windowHandle;
for (const each of list) {
let link = each.parentElement.href
if (each.innerHTML !== '已完成') {
windowHandle = W.open(link)
break
}
}
let channel = new BroadcastChannel('message')
channel.addEventListener('message', (event) => {
let time = parseInt(event.data)
if (time === 45) {
windowHandle.close()
W.location.reload()
}
})
}, 10000);
} else {
let waiter = setInterval(() => {
let element = document.querySelector('video');
if (element) {
clearInterval(waiter);
}
}, 1000);
const v = document.querySelector("video")
v.setAttribute('muted', '')
let channel = new BroadcastChannel('message')
setInterval(() => {
let time = document.querySelector('#courseStudyMinutesNumber').innerHTML
channel.postMessage(time)
let pop = document.querySelector('div.layui-layer-btn.layui-layer-btn- > a')
if (pop) {
pop.click()
document.querySelector('#replaybtn').click()
v.play()
return
}
if (v.paused) {
document.querySelector('#replaybtn').click()
v.play()
}
}, 3000);
}
});
})();
function waitForElement(selector, callback, timeout) {
let timer;
let interval = 100; // 检查元素是否存在的时间间隔(毫秒)
timer = setInterval(() => {
let element = document.querySelector(selector);
if (element) {
clearInterval(timer);
callback(element);
} else if (timeout && Date.now() - start >= timeout) {
clearInterval(timer);
console.error(`等待元素 ${selector} 超时`);
}
}, interval);
let start = Date.now();
}