国家开发大学刷课

可以复制答案、刷课的强大插件

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         国家开发大学刷课
// @namespace    http://tampermonkey.net/
// @version      20230406.01
// @description  可以复制答案、刷课的强大插件
// @author       xxx
// @match        https://*.ouchn.cn/*
// @license      GPL

// ==/UserScript==

//检测url变化
window.onload = function()  {
	if(document.addEventListener){
	    document.addEventListener('DOMContentLoaded',answerCopy(),false)
        }
	nextButtonClick()
	window.onhashchange = function () {
		console.log('URL发生变化了');
		setTimeout(function(){
		    init();
		},7500);
	};
	// 初始化函数
	function init() {
		playVideo()
		

	}
	
	
	
	function previewcheck() {
		var viewbutton = $("a[previewer*='{uploads: uploads, currentFile: upload, activity: activity, canAddNote: true}']")[0];
		if(viewbutton != undefined) {
			viewbutton.click();
			setTimeout(function(){
			    if ($("a[close-popup*='file-previewer-with-note']")[0] != undefined) { $("a[close-popup*='file-previewer-with-note']")[0].click() }
			},3000);
		} 
	}
	
	//复制答案
	function answerCopy() {

		setTimeout(function(){
	    var url = window.location.pathname;
	    if(url.indexOf("exam") >= 0 ) { //判断url对象文件名中是否包含post
			//已答题
			if( $("input[checked*='checked']")[0] != undefined ) {
				$("input[checked*='checked']").parent().parent().css('background-color', 'red');
			} else if ($("label[class*='answered-option']")[0] != undefined) {
				//注册点击事件 
				// 单线程问题? 所有需要用延时
				// $("label[style*='red']").css('background-color', '');
				$("label").css('background-color', '');
				//打上颜色
				$("label[class*='answered-option']").css('background-color', 'red');
				$('label').unbind('click').click(function() {    //表示阻止向父元素冒泡
				     setTimeout(function() {
						 //清除所有颜色
						 // $("label[style*='red']").css('background-color', '');
						 $("label").css('background-color', '');
						 //打上颜色
						 $("label[class*='answered-option']").css('background-color', 'red');
					 },50)
					 
				})
				
				
				// $('input.ng-valid').unbind('click').click(function() {    //表示阻止向父元素冒泡
				//      alert('xxxx')
				// })
			}
			 
			 
			 //未答题
			//  $("label[style*='red']").css('background-color', '');
			
			//  //现场选择
			//  $("label[class*='answered-option']").css('background-color', 'red');
			// $("lable").click(function(){
			//   $("label[class*='answered-option']").toggleClass('background-color', 'red');
			// });
			  
			  
	     
	        
	    } 
	},3000);
	
	}


	
	//视屏倍速播放
	function playVideo() {
		var clock = setInterval( function() {
			//界定快进范围
			// console.log('快进中')
			videoButtonCheck();
		}, 10000);	
		var video = document.getElementsByTagName("video");
		if(video.length>0){ //是视频的话就播放
			video[0].currentTime = 0;
		    document.querySelector('.mvp-fonts-play').click();
			console.log('视屏开始播放')
		     setTimeout(function(){
		        document.querySelectorAll('.mvp-play-rate')[0].click()
				//开始倍速播放
				speedControl()
		    },5500);
			video[0].addEventListener('pause', function () {
				//视屏播放结束、进入下一课时。
				 document.querySelector('.mvp-fonts-play').click();
				
			}, false);
			
			video[0].addEventListener('ended', function () { 
				//视屏播放结束、进入下一课时。
				console.log('视屏结束!');
				clearInterval(clock);
				nextButtonClick();
			}, false);
		} else {
			//没有发现视屏、5秒后将进入下一刻。
			console.log('没视频判断到我将点击下一课!');
			//预览检测
			clearInterval(clock);
			previewcheck()	
			scrollContent()
			nextButtonClick()
		}
	}
	
	//点击下一课程
	function nextButtonClick() {
		setTimeout(function(){
		    document.querySelector('.next').click();
		},5500);
	}
	
	//点击上一课
	function previousButtonClick() {
		setTimeout(function(){
		    document.querySelector('.pre').click();
		},2500);
	}

	// 下拉滚动条
	function scrollContent() {
		// 开始操作滚动条
		//下行
		$("html,body,.___content").animate({ scrollTop: 394 }, 1000)
		//上行
		$("html,body,.___content").animate({ scrollTop: 0 }, 1000)
	}
	
	
	function speedControl() {
		// 倍速播放 5倍速
		// video[0].playbackRate = 5;
		//利用setInterval的快进播放
		// var video = document.getElementsByTagName("video");
		var video = document.getElementsByTagName("video");
		var clock = setInterval( function() {
			//界定快进范围
			// console.log('快进中')
			
			if (video[0].currentTime < video[0].duration-10 ) {
				video[0].currentTime+=5;
			} else {
				clearInterval(clock);
				console.log('已清除')
			}
			
		}, 150)	


	}
	
	//80%按钮检测
	function videoButtonCheck() {
		if($('div.reveal-modal-bg')[0].style.cssText == 'display: block;') {
			$('div.popup-footer').find('button')[0].click();
			
			//返回上一个视频
			previousButtonClick();
		}
	}
}