Greasy Fork is available in English.
当出现继续学习提示时,自动点击确定按钮
// ==UserScript==
// @name 自动点击继续学习
// @namespace http://tampermonkey.net/
// @version 0.9
// @description 当出现继续学习提示时,自动点击确定按钮
// @author You
// @match https://cws.edu-edu.com/*
// @grant none
// @license MTI
// ==/UserScript==
(function (){
// 定义一个函数来检查并点击确定按钮
function checkAndClick() {
// 找到通知按钮
const confirmDialog = document.querySelector('div.h5-alert-modal.v-transfer-dom')
const warpDiv = confirmDialog.querySelector('div.ivu-modal-wrap')
// 显示确定面板后,关闭
if (!warpDiv.classList.contains('ivu-modal-hidden')) {
// 查找确定按钮
const confirmButton = confirmDialog.querySelector('button.btn.ivu-btn.ivu-btn-primary');
if (confirmButton) {
confirmButton.click();
}
}
}
// 检查算数验证
function checkQuestion() {
// 弹出面板开始答题
const modal = document.querySelector('div.ivu-modal-wrap');
if (modal.classList.contains('ivu-modal-hidden')) {
return;
}
const question = document.querySelector('div.ivu-modal-header-inner');
// 判断是否有答题
const questionTitle = question.innerText;
if (questionTitle == '学习过程确认') {
const questionInfo = document.querySelector('div.questionBox');
if (questionInfo) {
// 获取题目 7 - 3 = ?
const questText = questionInfo.innerText;
// 计算答案
const result = calc(questText);
if (result == null) {
return;
}
// 获取确定按钮
const btn = questionInfo.parentElement.querySelector('button.ivu-btn');
// 获取答案选项
const questBox = document.querySelector('div.ivu-radio-group');
if (questBox) {
const checks = questBox.children;
for (let i = 0; i < checks.length; i++){
const checkText = checks[i].innerText;
const checkNum = parseInt(checkText, 10);
// 碰到正确答案
if (result == checkNum) {
checks[i].click();
btn.click();
}
}
}
}
}
}
// 计算字符串的算式
function calc(mathStr) {
let result = null;
const match = mathStr.match(/^(\d+)\s*([+\-*/])\s*(\d+)/);
if (match) {
const num1 = parseInt(match[1], 10);
const op = match[2];
const num2 = parseInt(match[3], 10);
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
}
return parseInt(result, 10);
}
// 播放下一个视频
function playNext() {
// 获取播放列表
const playlist = document.querySelectorAll('div.video-box-left div.ivu-tree ul.ivu-tree-children');
for (let i = 0; i < playlist.length; i++) {
// 获取视频的播放进度
let v = playlist[i].querySelector('span.videoRatio').innerText;
if (v != '/ 已学100%') {
let l = playlist[i].querySelector('span.render-content__video');
l.click();
return;
}
}
console.log('视频播放完了');
}
function playVideo() {
// 当视频放完后,自动进行下一个
const video = document.querySelector('div#J_prismPlayer video');
if (video) {
if (video.paused && !video.ended) {
console.log('播放视频');
video.play();
video.muted = true;
}
if (video.paused && video.ended) {
console.log('播放下一个视频');
playNext();
}
}
}
console.log('开始监控网页');
// 每隔一段时间检查一次
const intervalId = setInterval(checkAndClick, 1000);
const intervalId2 = setInterval(checkQuestion, 1000);
const intervalId3 = setInterval(playVideo, 5000);
})();