Skip to content

Instantly share code, notes, and snippets.

@DeruiDENG
Created November 19, 2022 13:52
Show Gist options
  • Save DeruiDENG/1dd1e432a2f0fc6ea8970e5251cbfd59 to your computer and use it in GitHub Desktop.
Save DeruiDENG/1dd1e432a2f0fc6ea8970e5251cbfd59 to your computer and use it in GitHub Desktop.
continue learn
function continueLearn() {
const continueButton = document.querySelector('body .person > .personal-classcenter iframe')?.contentDocument.querySelector('.layui-layer-content iframe')?.contentDocument.querySelector('button');
if (continueButton) {
console.log("Click continue button!");
continueButton.click();
} else {
console.log("Continue button not found!")
}
const playButton = document.querySelector('body .person > .personal-classcenter iframe')?.contentDocument.querySelector('.qplayer-play.qplayer-active');
if (playButton) {
console.log("Start play.");
playButton.click();
} else {
console.log("Play button not found.")
}
}
function getVideoSizeInMinutes() {
console.log("Try to get video size...")
const videoSize = document.querySelector('body .person > .personal-classcenter iframe')?.contentDocument.querySelector('.qplayer-totaltime')?.textContent
console.log("Video size text: ", videoSize);
if (!videoSize) {
console.log("Use default video size: 60 minutes");
return 61;
}
const [minutes] = videoSize.split(":");
const length = Number.parseInt(minutes, 10) + 1;
console.log("Video length: ", length);
return length;
}
function startNextVideo() {
const nextVideo = document.querySelector('li[style="cursor:pointer;background-color: #ccc5c5;"]+li')
if (nextVideo) {
console.log("Click on next video!")
nextVideo.click();
return true;
}
return null;
}
function sleep(seconds) {
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, seconds)
})
}
function autoClickContinue() {
setInterval(continueLearn, 5000)
}
async function run() {
await sleep(5 * 1000);
autoClickContinue();
while (true) {
await sleep(5 * 1000);
const size = getVideoSizeInMinutes();
await sleep(size * 60 * 1000);
if (!startNextVideo()) {
console.log("No next video found. Finish job.")
break;
}
}
}
run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment