From 47ebe38c308298785488cdda72a16c1e108eaf63 Mon Sep 17 00:00:00 2001 From: jinglekang Date: Fri, 5 Jun 2026 14:11:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=84=9A=E6=9C=AC=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=EF=BC=8C=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E5=80=8D=E9=80=9F=E8=AE=BE=E7=BD=AE=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=A3=E7=A0=81=E6=B3=A8=E9=87=8A=E4=BB=A5?= =?UTF-8?q?=E6=8F=90=E5=8D=87=E5=8F=AF=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qingshuxuetang_auto_play.user.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/qingshuxuetang_auto_play.user.js b/qingshuxuetang_auto_play.user.js index 593951e..d82c124 100644 --- a/qingshuxuetang_auto_play.user.js +++ b/qingshuxuetang_auto_play.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name 平顶山学院(青书学堂)自动学习脚本 // @namespace http://tampermonkey.net/ -// @version 2026-06-04.1 +// @version 2026-06-05.2 // @description try to take over the world! // @author You // @match https://degree.qingshuxuetang.com/pdsu/Student/Course/CourseStudy* @@ -15,16 +15,39 @@ (function () { "use strict"; + // 当前页面地址,用来判断是在课程列表页还是课件播放页。 const url = window.location.href; + + // 课件至少需要学习多少秒;默认 5 分钟。 const MIN_STUDY_SECONDS = 5 * 60; + + // 视频课件的 video 标签选择器;如果网站改版导致找不到视频,优先检查这里。 const VIDEO_SELECTOR = "#vjs_video_3_html5_api"; + + // 视频默认播放倍速;想改成 1.5 倍、3 倍就改这个值。 + const VIDEO_PLAYBACK_RATE = 2; + + // 文本课件容器选择器;easyXDM 中间的数字会变,所以这里用开头和结尾匹配。 const TEXT_SELECTOR = "[id^='easyXDM_default'][id$='_provider']"; + + // toast 容器和样式标签的 id,通常不用改,除非和页面元素冲突。 const TOAST_CONTAINER_ID = "qingshu-auto-toast-container"; const TOAST_STYLE_ID = "qingshu-auto-toast-style"; + + // toast 默认显示时长,单位毫秒;4000 表示 4 秒后自动隐藏。 const TOAST_DEFAULT_DURATION = 4000; + + // 运行心跳提示间隔,单位秒;视频播放中、文本课件等待中都会按这个间隔提醒。 const HEARTBEAT_SECONDS = 10; + + // 课程列表最多等待多少秒;超过后认为可能请求失败,触发刷新。 const COURSE_LIST_WAIT_SECONDS = 60; + + // 课程列表加载失败时最多自动刷新几次。 const MAX_COURSE_LIST_REFRESH_COUNT = 3; + + // 记录课程列表自动刷新次数的 sessionStorage key。 + // 带上 pathname/search,避免不同课程页面之间互相影响。 const COURSE_LIST_REFRESH_KEY = "qingshu_auto_course_list_refresh_count:" + location.pathname + @@ -380,9 +403,9 @@ returnToStudyPage(); } - if (video.playbackRate === 1) { - notify("将视频倍速设置为2倍速", "success"); - video.playbackRate = 2; + if (video.playbackRate !== VIDEO_PLAYBACK_RATE) { + notify("将视频倍速设置为" + VIDEO_PLAYBACK_RATE + "倍速", "success"); + video.playbackRate = VIDEO_PLAYBACK_RATE; } if (Date.now() - lastVideoHeartbeatAt >= HEARTBEAT_SECONDS * 1000) {