// ==UserScript== // @name 学习通平台全能增强助手 // @namespace http://tampermonkey.net/ // @version 2.5 // @description 支持学习通自动播放、倍速、跳过弹窗、自动下一节、悬浮控制面板 // @author 学习通增强助手 // @match *://*.chaoxing.com/* // @match *://*.zhihuishu.com/* // @match *://u.unipus.cn/* // @match *://*.xueqi.cn/* // @match *://*.qingshuxuetang.com/* // @grant GM_addStyle // @grant GM_notification // @run-at document-start // ==/UserScript== (function () { 'use strict'; // 全局配置 const config = { autoPlay: true, // 自动播放 autoNext: true, // 自动下一节 speed: 2.0, // 默认倍速 mute: false, // 是否静音 skipAlert: true, // 自动关闭弹窗 showPanel: true // 显示悬浮控制面板 }; // 注入悬浮面板样式 GM_addStyle(` #enhance-panel { position: fixed; top: 20px; right: 20px; z-index: 999999; width: 180px; background: #fff; border-radius: 10px; box-shadow: 0 0 12px rgba(0,0,0,0.2); padding: 12px; font-size: 14px; user-select: none; } #enhance-panel h4 { margin: 0 0 8px 0; font-size: 15px; color: #333; text-align: center; } .enhance-item { margin: 6px 0; display: flex; justify-content: space-between; } .enhance-btn { padding: 4px 8px; background: #409eff; color: #fff; border: none; border-radius: 4px; cursor: pointer; font-size: 12px; } .enhance-btn:hover { background: #337ecc; } `); // 创建悬浮控制面板 function createPanel() { if (!config.showPanel) return; if (document.querySelector('#enhance-panel')) return; const panel = document.createElement('div'); panel.id = 'enhance-panel'; panel.innerHTML = `

📘 学习增强助手

倍速:
状态: 运行中 ✅
`; document.body.appendChild(panel); // 倍速切换 panel.querySelectorAll('button[speed]').forEach(btn => { btn.addEventListener('click', () => { const s = parseFloat(btn.getAttribute('speed')); setSpeed(s); GM_notification(`已切换至 ${s} 倍速`, '增强助手'); }); }); } // 设置视频倍速 function setSpeed(speed) { const videos = document.querySelectorAll('video'); videos.forEach(v => { v.playbackRate = speed; }); config.speed = speed; } // 自动播放 function autoPlayVideo() { if (!config.autoPlay) return; const videos = document.querySelectorAll('video'); videos.forEach(v => { if (v.paused && !v.ended) { v.play().catch(() => {}); } v.muted = config.mute; v.playbackRate = config.speed; }); } // 自动关闭弹窗 function skipPopups() { if (!config.skipAlert) return; const closeSelectors = [ '.popbtn_yes', '.btn-primary', '.btn-ok', '.btn-confirm', '.close', '.modal-close', '.icon-close', '.btn-close', '.warn_pop .btn', '.alert-wrap .ok', '.btn-primary-green' ]; closeSelectors.forEach(sel => { document.querySelectorAll(sel).forEach(el => { if (el.offsetParent !== null) el.click(); }); }); } // 自动下一节 function autoNextLesson() { if (!config.autoNext) return; const nextSelectors = [ '.nextBtn', '.next', '.btn-next', '.jumpNext', '.continue-button', '.next-video', '.next-unit', '.play-next', '.n-next', '.toNext' ]; nextSelectors.forEach(sel => { const btn = document.querySelector(sel); if (btn && btn.offsetParent !== null) { setTimeout(() => btn.click(), 800); GM_notification('自动进入下一节', '增强助手'); } }); } // 自动完成任务点(学习通专用) function autoFinishChaoxing() { if (location.host.includes('chaoxing.com')) { const job = document.querySelector('.ans-attach-job'); if (job) job.click(); } } // 主循环 function startEnhance() { createPanel(); autoPlayVideo(); skipPopups(); autoFinishChaoxing(); // 视频结束后自动下一节 document.querySelectorAll('video').forEach(v => { v.addEventListener('ended', () => { setTimeout(autoNextLesson, 1000); }); }); } // 持续运行(防止页面动态加载) window.addEventListener('load', () => { setInterval(startEnhance, 1000); console.log('✅ 学习平台增强助手已启动'); }); })();