# 西北师范大学中小学教师培训刷课 **Repository Path**: tuziang/xibei-shifan-daxue ## Basic Information - **Project Name**: 西北师范大学中小学教师培训刷课 - **Description**: 西北师范大学中小学教师远程培训网刷课脚本 - 视频自动播放、倍速播放、防检测、自动答题、自动切课 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-25 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 西北师范大学中小学教师远程培训网刷课脚本 ## 脚本介绍 该油猴脚本用于 **西北师范大学中小学教师远程培训网** (https://nwnu.edueva.org/) 的辅助学习。 **脚本功能:** 1. 视频自动播放 - 自动检测并恢复视频播放 2. 倍速播放支持 - 支持1.5倍-3倍速播放调节 3. 防检测机制 - 定时模拟用户操作,防止平台检测 4. 自动答题功能 - 自动识别并处理弹窗答题 5. 自动切换课程 - 课程完成后自动跳转下一课 ## 代学服务 **如需代学,请联系客服,支持闲鱼交易。** - 微信联系:yizhituziang ![https://jiaobenmiao.com/img/weixin.jpg](https://jiaobenmiao.com/img/weixin.jpg) - QQ联系:2422270452 ![https://jiaobenmiao.com/img/qq.jpg](https://jiaobenmiao.com/img/qq.jpg) ## 安装教程 ### 1.安装浏览器扩展插件 首先需要给浏览器安装脚本猫插件,这是运行所有用户脚本的基础。 浏览器打开网址:https://docs.scriptcat.org/ 点击 **"添加到Edge浏览器"**,然后点击 **"获取"**,在弹出的窗口点击 **"添加扩展"**。 ### 2.安装刷课脚本 打开脚本安装地址后,在页面点击 **"安装脚本"** 按钮,接着在弹出的窗口点击 **"安装"**。 ### 3.体验脚本功能 安装脚本后,需要重新进入学习站点,如果之前已经打开课程学习页面,需要刷新页面后脚本才会生效。 ## 核心代码 ```javascript // 西北师范大学中小学教师远程培训网辅助脚本 (function() { 'use strict'; const SETTINGS = { enableAutoPlay: true, playbackSpeed: 2.0, autoMuteVideo: true, enableAutoAnswer: true, enableAutoNext: true, enableAntiDetection: true, checkFrequency: 2000, activityInterval: 14000 }; function printLog(msg) { console.log(`[西北师大远程培训] ${msg}`); } function getVideoElement() { const videoSelectors = [ 'video', '#videoElement video', '.video-box video', '.player video', '.video-container video', '.course-video video', '[id*="video"] video', '[class*="video"] video' ]; for (let i = 0; i < videoSelectors.length; i++) { const el = document.querySelector(videoSelectors[i]); if (el) { printLog(`找到视频元素: ${videoSelectors[i]}`); return el; } } return null; } function configureVideo(video) { if (!video) return; if (SETTINGS.autoMuteVideo && !video.muted) { video.muted = true; printLog('视频已设置为静音'); } if (video.playbackRate !== SETTINGS.playbackSpeed) { video.playbackRate = SETTINGS.playbackSpeed; printLog(`播放速度已调整为 ${SETTINGS.playbackSpeed}x`); } video.addEventListener('ratechange', function() { if (video.playbackRate !== SETTINGS.playbackSpeed) { video.playbackRate = SETTINGS.playbackSpeed; } }); } function autoPlayVideo(video) { if (!video) return; if (video.paused && !video.ended) { printLog('检测到视频暂停,尝试自动播放'); video.play().then(() => { printLog('视频播放成功'); }).catch(err => { printLog('自动播放失败,尝试点击播放按钮'); clickPlayButton(); }); } } function clickPlayButton() { const buttonSelectors = [ '.play-button', '.btn-play', '.play-btn', '.vjs-play-control', '.video-play-btn', '#playButton', '[class*="play"]', 'button[title="播放"]', 'button[aria-label*="播放"]' ]; for (const selector of buttonSelectors) { const btn = document.querySelector(selector); if (btn && btn.offsetParent !== null) { printLog(`点击播放按钮: ${selector}`); btn.click(); break; } } } function handleQuizPopup() { if (!SETTINGS.enableAutoAnswer) return; const popupSelectors = [ '.quiz-container', '.exam-popup', '.question-modal', '.answer-box', '.test-dialog', '[class*="quiz"]', '[class*="exam"]', '[class*="question"]' ]; let quizPopup = null; for (const selector of popupSelectors) { const el = document.querySelector(selector); if (el && !el.hidden && el.offsetParent !== null) { quizPopup = el; printLog(`检测到答题弹窗: ${selector}`); break; } } if (!quizPopup) return; const answerSelectors = [ 'input[type="radio"]', 'input[type="checkbox"]', '.option', '.answer-option', '.choice-item', '[class*="option"]', '[class*="answer"]' ]; let answerClicked = false; for (const selector of answerSelectors) { const answers = quizPopup.querySelectorAll(selector); if (answers.length > 0) { for (let i = 0; i < Math.min(3, answers.length); i++) { if (answers[i]) { answers[i].click(); } } printLog('已选择答案'); answerClicked = true; break; } } if (answerClicked) { setTimeout(() => { const submitSelectors = [ '.submit-btn', '.confirm-btn', '.btn-submit', '.btn-confirm', 'button:contains("提交")', 'button:contains("确定")', '[class*="submit"]', '[class*="confirm"]' ]; for (const selector of submitSelectors) { const btn = quizPopup.querySelector(selector); if (btn) { btn.click(); printLog('已提交答案'); break; } } }, 1100); } } function autoSwitchNextLesson() { if (!SETTINGS.enableAutoNext) return; const video = getVideoElement(); if (!video || !video.ended) return; printLog('课程播放完毕,准备切换至下一课'); const nextBtnSelectors = [ '.next-lesson', '.next-chapter', '.btn-next', '.next-btn', '.chapter-next', 'a[title*="下一课"]', 'a[title*="下一讲"]', '[class*="next"]' ]; for (const selector of nextBtnSelectors) { const btn = document.querySelector(selector); if (btn && btn.offsetParent !== null) { btn.click(); printLog('已点击下一课按钮'); break; } } } function simulateUserActions() { if (!SETTINGS.enableAntiDetection) return; const xPos = Math.random() * window.innerWidth; const yPos = Math.random() * window.innerHeight; const mouseMoveEvent = new MouseEvent('mousemove', { view: window, bubbles: true, cancelable: true, clientX: xPos, clientY: yPos }); document.dispatchEvent(mouseMoveEvent); const keyDownEvent = new KeyboardEvent('keydown', { key: 'Alt', bubbles: true }); document.dispatchEvent(keyDownEvent); if (Math.random() > 0.65) { window.scrollBy(0, Math.random() > 0.5 ? 15 : -15); } printLog('已模拟用户操作'); } function mainExecution() { const video = getVideoElement(); if (video) { configureVideo(video); autoPlayVideo(video); autoSwitchNextLesson(); } handleQuizPopup(); } function initializeScript() { printLog('西北师范大学中小学教师远程培训网辅助脚本已启动'); setInterval(mainExecution, SETTINGS.checkFrequency); if (SETTINGS.enableAntiDetection) { setInterval(simulateUserActions, SETTINGS.activityInterval); } window.addEventListener('load', () => { printLog('页面完全加载'); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initializeScript); } else { initializeScript(); } })(); ```