更新平顶山学院自动学习脚本,优化视频选择逻辑并修复学习时长判断

This commit is contained in:
竟康 2026-06-03 14:57:50 +08:00
parent e9a67cb851
commit 3a570ed375
1 changed files with 40 additions and 11 deletions

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name 平顶山学院(青书学堂)自动学习脚本 // @name 平顶山学院(青书学堂)自动学习脚本
// @namespace http://tampermonkey.net/ // @namespace http://tampermonkey.net/
// @version 2025-11-26 // @version 2026-06-03
// @description try to take over the world! // @description try to take over the world!
// @author You // @author You
// @match https://degree.qingshuxuetang.com/pdsu/Student/Course/CourseStudy* // @match https://degree.qingshuxuetang.com/pdsu/Student/Course/CourseStudy*
@ -13,8 +13,32 @@
(function () { (function () {
"use strict"; "use strict";
const url = window.location.href; const url = window.location.href;
console.log("插件加载完成,等待界面渲染"); const MIN_STUDY_SECONDS = 5 * 60;
console.log("插件加载完成,等待界面渲染");
const parseStudySeconds = (text) => {
const hourMatch = text.match(/(\d+)\s*小时/);
const minuteMatch = text.match(/(\d+)\s*分钟/);
const secondMatch = text.match(/(\d+)\s*秒/);
return (
(hourMatch ? Number(hourMatch[1]) * 3600 : 0) +
(minuteMatch ? Number(minuteMatch[1]) * 60 : 0) +
(secondMatch ? Number(secondMatch[1]) : 0)
);
};
const shouldEnterCourseware = (item) => {
const mark = item.querySelector(".study_being");
if (!mark) {
return true;
}
const studiedSeconds = parseStudySeconds(mark.innerText);
return studiedSeconds < MIN_STUDY_SECONDS;
};
const onPageLoad = () => { const onPageLoad = () => {
console.log("页面加载完成,开始执行脚本"); console.log("页面加载完成,开始执行脚本");
@ -36,14 +60,19 @@
console.error("课程数量为空,结束脚本"); console.error("课程数量为空,结束脚本");
return; return;
} }
for (const item of items) { for (const item of items) {
if (!item.querySelector(".study_being")) { if (shouldEnterCourseware(item)) {
console.log( const mark = item.querySelector(".study_being");
"点击下一个未播放的视频:" + const studiedSeconds = mark ? parseStudySeconds(mark.innerText) : 0;
item.querySelector(".title").innerText console.log(
); "点击未完成学习时长的视频:" +
item.click(); item.querySelector(".title").innerText +
return; ",已学习:" +
studiedSeconds +
"秒"
);
item.click();
return;
} }
} }
console.log("所有视频均已播放完毕,结束脚本"); console.log("所有视频均已播放完毕,结束脚本");