// ==UserScript== // @name 锦江享学堂自动化学习 // @namespace https://i-learning.jinjianghotels.com.cn/spgwnl/ // @version 0.1 // @description 自动播放视频并尝试切换下一课,仅用于最后复习冲刺 // @author Assistant // @match https://i-learning.jinjianghotels.com.cn/spgwnl/* // @grant none // @license MIT // @icon https://www.google.com/s2/favicons?sz=64&domain=jinjianghotels.com.cn // ==/UserScript== (function() { 'use strict'; // 控制台输出样式 const LOG_STYLE = 'color: #00adb5; font-size: 14px; font-weight: bold;'; console.log('%c[锦江刷课] 脚本已启动,请保持页面在前台,不要最小化窗口...', LOG_STYLE); // 核心功能1:控制视频自动播放与倍速 function setupVideo() { // 尝试查找页面的视频元素 const video = document.querySelector('video'); if (!video) { console.log('[锦江刷课] 未找到 video 标签,可能页面未加载完成或播放器特殊'); return false; } // 解除静音,避免被检测为无声挂机 video.muted = false; // 尝试播放(某些浏览器/网站需要用户交互,但大部分可以自动播放) video.play().catch(e => console.warn('[锦江刷课] 自动播放被浏览器阻止:', e)); // 设置播放速度,如果平台允许,1.5倍是一个相对安全的选择 if (video.playbackRate) { video.playbackRate = 1.5; console.log('[锦江刷课] 已将视频播放速度设为 1.5 倍'); } return true; } // 辅助功能2:寻找并点击“下一课”或“完成”按钮 function findAndClickNext() { // 定义常见的“下一步”按钮文字,可根据实际情况增删 const nextKeywords = ['下一课', '下一节', '完成学习', '确定', '继续']; const allButtons = document.querySelectorAll('button, a, span, div'); for (let btn of allButtons) { const btnText = btn.innerText.trim(); // 检查按钮文本是否包含任一关键词(不区分大小写) if (nextKeywords.some(keyword => btnText === keyword || btnText.includes(keyword))) { console.log(`[锦江刷课] 检测到“${btnText}”按钮,尝试点击以继续`); btn.click(); // 等待3秒,让新页面/新视频加载,然后重新触发视频控制 setTimeout(() => setupVideo(), 3000); return true; } } return false; } // 辅助功能3:定期监测视频进度 let lastReportedProgress = 0; setInterval(() => { const video = document.querySelector('video'); if (video && video.duration) { // 计算当前播放进度百分比 const currentPercent = (video.currentTime / video.duration * 100).toFixed(2); // 只在进度变化超过1%时输出一次,避免刷屏 if (Math.abs(currentPercent - lastReportedProgress) > 1) { console.log(`[锦江刷课] 当前播放进度:${currentPercent}%`); lastReportedProgress = currentPercent; } // 如果进度超过98%,且视频仍在播放,尝试切换至下一课 if (currentPercent > 98 && !video.paused) { findAndClickNext(); } } }, 10000); // 每10秒检查一次 // 辅助功能4:防止页面后台运行导致视频暂停 // 监听页面可见性变化,当页面重新可见时,恢复视频播放 document.addEventListener('visibilitychange', () => { if (document.hidden) { console.warn('[锦江刷课] 页面已切换到后台,视频可能暂停!建议将本页面保持在前台。'); } else { console.log('[锦江刷课] 页面回到前台,尝试恢复视频播放'); setupVideo(); } }); // 启动脚本,延迟2秒等待页面元素加载完成 setTimeout(() => { setupVideo(); // 可选:额外弹出一次提示,说明脚本已生效(脚本猫用户可自行取消注释) // alert('[锦江刷课] 脚本已启动,请勿最小化窗口'); }, 2000); })();