更新脚本版本号至2026-06-10.2,新增菜单命令注销功能,优化配置菜单注册逻辑

This commit is contained in:
竟康 2026-06-10 15:57:51 +08:00
parent 8c48de9be0
commit c05fd567bc
1 changed files with 24 additions and 8 deletions

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name 平顶山学院(青书学堂)自动学习脚本 // @name 平顶山学院(青书学堂)自动学习脚本
// @namespace http://tampermonkey.net/ // @namespace http://tampermonkey.net/
// @version 2026-06-10.1 // @version 2026-06-10.2
// @description 自动进入青书学堂未完成课件,支持视频播放、文本课件停留和运行状态提示 // @description 自动进入青书学堂未完成课件,支持视频播放、文本课件停留和运行状态提示
// @author JK // @author JK
// @license MIT // @license MIT
@ -14,6 +14,7 @@
// @grant GM_setValue // @grant GM_setValue
// @grant GM_deleteValue // @grant GM_deleteValue
// @grant GM_registerMenuCommand // @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// ==/UserScript== // ==/UserScript==
(function () { (function () {
@ -70,6 +71,7 @@
"qingshu_auto_course_list_refresh_count:" + "qingshu_auto_course_list_refresh_count:" +
location.pathname + location.pathname +
location.search; location.search;
let menuCommandIds = [];
// 创建右下角提示消息容器和样式。 // 创建右下角提示消息容器和样式。
// 每次通知都会创建一个新的提示消息,所以多个通知会一起堆叠显示。 // 每次通知都会创建一个新的提示消息,所以多个通知会一起堆叠显示。
@ -175,6 +177,7 @@
const saveConfig = (patch) => { const saveConfig = (patch) => {
Object.assign(CONFIG, patch); Object.assign(CONFIG, patch);
GM_setValue(CONFIG_STORAGE_KEY, CONFIG); GM_setValue(CONFIG_STORAGE_KEY, CONFIG);
registerConfigMenus();
notify("设置已保存,刷新页面后生效", "success", 6000); notify("设置已保存,刷新页面后生效", "success", 6000);
}; };
@ -203,10 +206,22 @@
// 在 Tampermonkey 菜单里提供配置入口。 // 在 Tampermonkey 菜单里提供配置入口。
// 这些值保存在脚本存储区,脚本更新不会覆盖它们。 // 这些值保存在脚本存储区,脚本更新不会覆盖它们。
const registerConfigMenus = () => { const registerConfigMenus = () => {
menuCommandIds.forEach((id) => {
if (id) {
GM_unregisterMenuCommand(id);
}
});
menuCommandIds = [];
const menuTitle = (label, value, unit) => const menuTitle = (label, value, unit) =>
label + "(当前:" + value + unit + ""; label + "(当前:" + value + unit + "";
GM_registerMenuCommand( const registerMenu = (title, callback) => {
const id = GM_registerMenuCommand(title, callback);
menuCommandIds.push(id);
};
registerMenu(
menuTitle("设置视频倍速", CONFIG.videoPlaybackRate, "倍"), menuTitle("设置视频倍速", CONFIG.videoPlaybackRate, "倍"),
() => { () => {
promptNumberConfig( promptNumberConfig(
@ -218,7 +233,7 @@
} }
); );
GM_registerMenuCommand( registerMenu(
menuTitle("设置课件最小学习时间", CONFIG.minStudySeconds / 60, "分钟"), menuTitle("设置课件最小学习时间", CONFIG.minStudySeconds / 60, "分钟"),
() => { () => {
promptNumberConfig( promptNumberConfig(
@ -231,7 +246,7 @@
} }
); );
GM_registerMenuCommand( registerMenu(
menuTitle("设置运行提醒间隔", CONFIG.heartbeatSeconds, "秒"), menuTitle("设置运行提醒间隔", CONFIG.heartbeatSeconds, "秒"),
() => { () => {
promptNumberConfig( promptNumberConfig(
@ -243,7 +258,7 @@
} }
); );
GM_registerMenuCommand( registerMenu(
menuTitle("设置课程列表等待时间", CONFIG.courseListWaitSeconds, "秒"), menuTitle("设置课程列表等待时间", CONFIG.courseListWaitSeconds, "秒"),
() => { () => {
promptNumberConfig( promptNumberConfig(
@ -255,7 +270,7 @@
} }
); );
GM_registerMenuCommand( registerMenu(
menuTitle( menuTitle(
"设置课程列表自动刷新次数", "设置课程列表自动刷新次数",
CONFIG.maxCourseListRefreshCount, CONFIG.maxCourseListRefreshCount,
@ -272,7 +287,7 @@
} }
); );
GM_registerMenuCommand( registerMenu(
menuTitle("设置提示消息显示时间", CONFIG.toastDefaultDuration / 1000, "秒"), menuTitle("设置提示消息显示时间", CONFIG.toastDefaultDuration / 1000, "秒"),
() => { () => {
promptNumberConfig( promptNumberConfig(
@ -285,9 +300,10 @@
} }
); );
GM_registerMenuCommand("恢复默认设置", () => { registerMenu("恢复默认设置", () => {
GM_deleteValue(CONFIG_STORAGE_KEY); GM_deleteValue(CONFIG_STORAGE_KEY);
Object.assign(CONFIG, DEFAULT_CONFIG); Object.assign(CONFIG, DEFAULT_CONFIG);
registerConfigMenus();
notify("设置已重置,刷新页面后生效", "success", 6000); notify("设置已重置,刷新页面后生效", "success", 6000);
}); });
}; };