可以复制答案、刷课的强大插件
// ==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();
}
}
}