中国检察教育培训网络学院全自动学习课程,只需自行进去班级中即可。
目前為
// ==UserScript==
// @name 中检网自动学习
// @namespace https://github.com/chiupam
// @version 0.5
// @description 中国检察教育培训网络学院全自动学习课程,只需自行进去班级中即可。
// @author chiupam
// @match https://www.sppet.cn/portal/play.do*
// @match https://www.sppet.cn/examine/index.html*
// @grant none
// @license GNU GPLv3
// ==/UserScript==
(async function () {
'use strict';
// 定义一个等待函数
async function delay(seconds) {
return new Promise(resolve => setTimeout(resolve, seconds * 1000));
}
// 封装获取按钮的函数
async function getButton(xpath) {
let button;
for (let i = 0; i < 5; i++) {
button = document.evaluate(
xpath,
document,
null,
XPathResult.FIRST_ORDERED_NODE_TYPE, null
).singleNodeValue;
// 如果成功获取元素,等待1秒退出循环
if (button) {
await delay(1);
break;
}
// 等待2秒后重试
await delay(2);
}
return button;
}
if (window.location.href.includes('stady_detail')) {
// 在学习详情页面执行以下操作
// 尝试获取学习按钮,最多尝试5次
let button = await getButton(
`/html/body/div/div[2]/div[2]/div[2]/div/div[1]/div[2]/div/div/div[5]/div[1]/div[6]/div/div/div[2]/div/ul/li[1]/div[3]`
);
// 如果找到了学习按钮元素,则执行点击操作
if (button) button.click();
} else {
// 在播放页面执行以下操作
// 获取第一个视频元素
let video = document.querySelector('video');
// 尝试获取按钮,最多尝试5次
let button = await getButton('/html/body/div[2]/div[3]/div[2]');
// 如果找到了按钮元素,则执行点击操作
if (button) {
button.click();
// 将音量调整为0
video.volume = 0;
// 视频暂停时自动开始播放
if (video.paused) video.play();
// 等待5秒钟开始读取现在的学习时长
await delay(5);
let totalDuration = video.duration;
// 循环检测视频是否已经播放完毕
var checkInterval = setInterval(function() {
if (video.currentTime >= totalDuration) {
// 视频播放完毕后关闭窗口
clearInterval(checkInterval);
// 设置 localStorage,通知第一个页面执行刷新
localStorage.setItem('refresh', 'true');
// 关闭当前窗口
window.close();
}
}, 5000); // 每5秒检查一次
}
}
})();
// 在第一个页面中,添加以下脚本用于检测 localStorage 变化并执行刷新
if (window.location.href.includes('stady_detail')) {
window.addEventListener('storage', function(event) {
if (event.key === 'refresh' && event.newValue === 'true') {
localStorage.removeItem('refresh');
location.reload();
}
});
}