From 3a570ed3750d99fa0b1ad1881a4aaa8caa71a56a Mon Sep 17 00:00:00 2001 From: jinglekang Date: Wed, 3 Jun 2026 14:57:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=B9=B3=E9=A1=B6=E5=B1=B1?= =?UTF-8?q?=E5=AD=A6=E9=99=A2=E8=87=AA=E5=8A=A8=E5=AD=A6=E4=B9=A0=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E9=80=BB=E8=BE=91=E5=B9=B6=E4=BF=AE=E5=A4=8D=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0=E6=97=B6=E9=95=BF=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qingshuxuetang_auto_play.user.js | 51 +++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/qingshuxuetang_auto_play.user.js b/qingshuxuetang_auto_play.user.js index ba0b08c..2b376c7 100644 --- a/qingshuxuetang_auto_play.user.js +++ b/qingshuxuetang_auto_play.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name 平顶山学院(青书学堂)自动学习脚本 // @namespace http://tampermonkey.net/ -// @version 2025-11-26 +// @version 2026-06-03 // @description try to take over the world! // @author You // @match https://degree.qingshuxuetang.com/pdsu/Student/Course/CourseStudy* @@ -13,8 +13,32 @@ (function () { "use strict"; - const url = window.location.href; - console.log("插件加载完成,等待界面渲染"); + const url = window.location.href; + 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 = () => { console.log("页面加载完成,开始执行脚本"); @@ -36,14 +60,19 @@ console.error("课程数量为空,结束脚本"); return; } - for (const item of items) { - if (!item.querySelector(".study_being")) { - console.log( - "点击下一个未播放的视频:" + - item.querySelector(".title").innerText - ); - item.click(); - return; + for (const item of items) { + if (shouldEnterCourseware(item)) { + const mark = item.querySelector(".study_being"); + const studiedSeconds = mark ? parseStudySeconds(mark.innerText) : 0; + console.log( + "点击未完成学习时长的视频:" + + item.querySelector(".title").innerText + + ",已学习:" + + studiedSeconds + + "秒" + ); + item.click(); + return; } } console.log("所有视频均已播放完毕,结束脚本");