Greasy Fork

Greasy Fork is available in English.

国家开放大学 新平台(刷视频,进度(视频和进度全自动),形考,考试)

国开自动刷视频和目录进度

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         国家开放大学 新平台(刷视频,进度(视频和进度全自动),形考,考试)
// @namespace    http://www.baidu.com/
// @version      0.05
// @description  国开自动刷视频和目录进度
// @author       laowang3142 微信:laowang3142
// @match        http://*/course/view.php?id=*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';


   (function ($) {
  $(function(){
  		//获取当前url
  		href= window.location.href.split('course')[0];
  		mid=window.location.href.split('mid=')[1];

  		$('div[role="main"]').css('display','none');
		//展示小节信息
		var sec=$('#region-main-box').attr('sec');
		var courseid=$('#alm').attr('courseid');
		$.ajaxSetup({
		    async : false
		});
		function aler(e){
		    $("body").append("<div style='width:20em;background-color:white;padding:0 20px;height: 6rem; text-align: center; position: fixed; top: 50%; margin-top: -1rem; line-height: 6rem;right:0;left:0;margin:auto' id='msg'><span>"+e+"</span></div>");
		    clearmsg();
		}
		function clearmsg(){

		};
		$.post(href+'theme/blueonionre/sectionInfo.php',{sectionid:sec,courseid:courseid},function(response){
			 data=JSON.parse(response);
			 var secinfo=data.secinfo;
			 var tmpsequence=data.sequence;
			 var sequence='';
			 $.each(tmpsequence,function(n,va){
			 	if(n < (tmpsequence.length -1)){
			 		sequence +=va+',';
			 	}else{
			 		sequence +=va
			 	}
			 })

			 var order=sequence.split(',');
			 lmes=new Array();
			 $.each(order,function(n,v){
			 	if(data[v]){
			 		lmes.push(data[v]);
			 	}

			 })
			 // $('.listinfo').append($("<p>"+secinfo.fsec+"</p>"));
			 $('#list span').html(secinfo.fsec+"<img style='position:absolute;right: 15px;;margin-top:10px;' src='"+href+"theme/blueonionre/pix/v.png'>");

			 delete secinfo.fsec;console.log(secinfo);
			 $.each(secinfo,function(na,va){
			 	$('.listinfo').append($("<a style='overflow:hidden;text-overflow:ellipsis;white-space:nowrap;' href='"+href+"course/view.php?id="+courseid+"&sectionid="+va.id+"&mid="+va.sequence.split(',')[0]+"' title='"+va.name+"'>"+va.name+"</a>"));
			 })
			console.log(data)
			console.log(lmes)
			 delete data.sequence;
			 delete data.secinfo;
			 // '/mod/"+value.type+"/view.php?id="+value.id+"'
			 var i=1;
			 $.each(lmes,function(name,value){

			 	switch(value.type)
				{
				case "page":
				  	src=href+'theme/blueonionre/pix/page.png';
				  break;
				case "forum":
				  src=href+'theme/blueonionre/pix/forum.png';
				  break;
				case "quiz":
				  src=href+'theme/blueonionre/pix/quiz.png';
				  break;
				case "assign":
				  src=href+'theme/blueonionre/pix/assign.png';
				  break;
				 case "url":
				  src=href+'theme/blueonionre/pix/url.png';
				  break;
				}
			 	if(mid == value.id){
			 		if(value.is_com == '1'){
			 			var li=$("<li typ="+value.type+" availability='"+value.availability+"' is_com="+value.is_com+" class='act' i="+value.id+"> <div> <img src='"+href+"theme/blueonionre/pix/"+value.type+"(c).png'> <p title='"+value.name+"'>"+value.name+"</p> </div> </li>");
			 		}else{
			 			var li=$("<li typ="+value.type+" availability='"+value.availability+"' is_com="+value.is_com+" class='act' i="+value.id+"> <div> <img src='"+href+"theme/blueonionre/pix/"+value.type+".png'> <p title='"+value.name+"'>"+value.name+"</p> </div> </li>");
			 		}
			 		if(value.type == 'page'  || value.type == 'url'){
			 			if(value.type== 'url'){

				 			if($(window).width()<=768){
								video_height='179px';
							}else if($(window).width()>768 && $(window).width()<=1200){
								video_height='370px';
							}else{
								video_height='619px';
							}
			 				cnt = "<div>"+data[value.id].des+"</div><div id='video' style='height:"+video_height+"'></div>";
			 				// cnt = "<div>"+data[name].des+"</div><video width='100%' src='"+data[name].videourl+"' controls='controls'> 您的浏览器不支持 video 标签。 </video>";
			 			}else{
			 				cnt= "<div>"+data[value.id].cnt+"</div>";
			 				//发送ajax添加完成
			 				if(value.is_com != 1){
			 					$.get(href+'theme/blueonionre/modulesCompletion.php',{cmid:value.id,id:courseid,sectionid:sec},function(res){
				 					console.log(res)
				 					if(res==1){
				 						li.attr('is_com','1').find('img').attr('src',href+'theme/blueonionre/pix/'+value.type+'(c).png');
				 					}
				 				})
			 				}

			 			}
			 			$('#com div:first-child').html(cnt);

			 			if(data[value.id].type == 'url'){
			 				center=data[value.id].videourl.split('.ouchn.cn/')[0].split('oss')[1];
				 			if(center){
				 				videourl='http://oss.ouchn.cn/'+center+'/'+data[value.id].videourl.split('.ouchn.cn/')[1];
				 			}else{
				 				videourl=data[value.id].videourl;
				 			}

				 					var videoObject = {
					        container:'#video',
					        variable:'player',
					        autoplay:false,
					        video:videourl,
					        duration:10,
					        seek:0
					    };
    					var player=new ckplayer(videoObject);

    					function videoContol(ckplayerInstance) {
							var _this = this;
							this.video = ckplayerInstance.V;
							this.pastTime = 0;//缓存视频上一秒的播放时间
							this.currentTimeBeforeSeek = 0;//缓存开始拖动时的播放时间
							this.isSeeking = true;//是否在“拖动”状态

							//重置视频拖动播放前的位置
							function resetVideo() {


							}

							//视频播放事件
							this.video.ontimeupdate = function () {
								//如果出现拖动情况,重置状态(如果当前播放时间与上一次的时间相差超过1秒,就视为拖动行为)

							}

							//播放结束事件
							this.video.onended = function () {
								//如果用户一下子拖至视频的结束位置,重置状态
                            }

							//拖动播放事件
							this.video.onseeking = function () {

							}

							//拖动结束
							this.video.onseeked = function () {

							}

							return this;
						}

						//如果ckplayer使用的是h5的video播放器
						if (player.playerType == 'html5video' && data[mid].is_com != 1) {
							//实例化一个监控对象
							//new videoContol(player)
						}

			 			}



			 		}else{
			 			$('#com div:first-child').html(data[value.id].des);
			 			$('#com #ck').css('display','block').find('a').attr("href",href+"mod/"+value.type+"/view.php?id="+value.id);
			 		}
			 		// 完成情况
			 		if(value.is_com == '1'){
			 			$('#ov').css('display','block');


			 		}else{
			 			var sign=$('<div id="sign">标记为完成</div>');
			 			$('#ov').css('display','none');
			 			sign.click(function(){
			 				$.get(href+'theme/blueonionre/modulesCompletion.php',{cmid:value.id,id:courseid,sectionid:sec},function(res){
			 					console.log(res)
			 					if(res==1){
			 						$('#sign').css('display','none');
			 						$('#ov').css('display','block');
			 						$('.mlist li[i="'+value.id+'"]').attr('is_com','1').find('img').attr('src',href+'theme/blueonionre/pix/'+value.type+'(c).png');
			 					}
			 				})
			 			})
			 			$('#ov').before(sign);


			 		}
			 	}else{
			 		if(value.is_com == '1'){
			 			var li=$("<li typ="+value.type+" availability='"+value.availability+"' is_com="+value.is_com+" i="+value.id+"> <div> <img src='"+href+"theme/blueonionre/pix/"+value.type+"(c).png'> <p title='"+value.name+"'>"+value.name+"</p> </div> </li>");
			 		}else{
			 			var li=$("<li typ="+value.type+" availability='"+value.availability+"' is_com="+value.is_com+" i="+value.id+"> <div> <img src='"+href+"theme/blueonionre/pix/"+value.type+".png'> <p title='"+value.name+"'>"+value.name+"</p> </div> </li>");
			 		}
			 	}


			 	li.click(function(){
			 		var li_clicktyp=$(this).attr('typ');
			 		var _ava=true;
			 		if(JSON.parse($(this).attr('availability'))){
			 			var availability=JSON.parse($(this).attr('availability')).c;
				 		$.each(availability,function(k,v){
				 			switch(v.type)
							{
								case "completion":

									if(v.e ==1){
										if($('.mlist li[i='+v.cm+']').attr('is_com') !=1){
											if(li_clicktyp == 'quiz'){
								 				alert('请先观看完成本专题内的视频,再进行专题测验。');
								 			}else{
								 				alert('专题内视频需按顺序进行学习,请先观看上一视频。');

								 			}

								 			_ava=false;
								 			return false;
										}

									}

					  			break;
					  			case "date":

					  				if(v.d == '>='){
					  					if(Math.round(new Date() / 1000) < v.t ){
					  						alert('未到开启时间');
					  						_ava=false;
					  						return false;
					  					}
					  				}else{
					  					if(Math.round(new Date() / 1000) > v.t){
					  						alert('截止时间已过');
					  						_ava=false;
					  						return false;
					  					}
					  				}
					  			break;
					  		}

				 		})
			 		}



			 		if(!_ava){
			 			return false;
			 		}
			 		// if(($(this).prev().attr('is_com') ==0 || $(this).prev().attr('is_com') == 'false') && $(this).attr('typ') != 'page' &&  $(this).prev().attr('typ') != 'page' ){
			 		// 	if($(this).attr('typ') == 'quiz'){
			 		// 		alert('请先观看完成本专题内的视频,再进行专题测验。');
			 		// 	}else{
			 		// 		alert('专题内视频需按顺序进行学习,请先观看上一视频。');
			 		// 	}

			 		// 	return false;
			 		// }
			 		var url=window.location.href;
			 		window.location.href = url.replace(mid,value.id);
			 		return false;

			 	})
			 	$('#na ul').append(li);
			 	i++;
			 })

		})
		// 当前章节移动到合适位置
		function move_mod(){
			if($(window).width()<=768){
				var ind=$('.mlist .act').index()+1;
				if(ind>2){
					$('.mlist ul').css('left',(2-ind)*131 + 'px');
				}

			}else if($(window).width()>768 && $(window).width()<=1200){
				var ind=$('.mlist .act').index()+1;
				if(ind>3){
					$('.mlist ul').css('left',(3-ind)*221 + 'px');
				}

			}else{
				var ind=$('.mlist .act').index()+1;
				if(ind>5){
					$('.mlist ul').css('left',(5-ind)*221 + 'px');
				}

			}
		}
		move_mod();
    	//点击展开小节目录
    	// $('#list>span').click(function(){
    	// 	$('.listinfo').slideToggle();
    	// 	return false;
    	// })

    	//点击移动
    	//
    	function sec_move(){
    		if($(window).width()<=768){
				sec_width=131;
				sec_lgh=2;
			}else if($(window).width()>768 && $(window).width()<=1200){
				sec_lgh=3;
				sec_width=221;
			}else{
				sec_lgh=5;
				sec_width=221;
			}
			$('.mlist ul').css('width',sec_width*$('.mlist li').length+'px');
		}
		sec_move();

    	if($('.mlist li').length>sec_lgh){
			$('#sec_right').css('background-image','url("'+href+'theme/blueonionre/pix/btnrc.png")');
		}
    	$('#sec_right').click(function(){
    		if($('.mlist li').length<=sec_lgh){
    			var left=0;
    		}else{
    			var left= parseInt($('.mlist ul').css('left')) -sec_width;
    		}

    		if(left < 0 ){
    			setTimeout(function () {
			        $('#sec_left').css('background-image','url("'+href+'theme/blueonionre/pix/btnlc.png")');
			    }, 800);
    		}
    		if(-left > ($('.mlist li').length-(sec_lgh+1))*sec_width && $('.mlist li').length>sec_lgh){
    			left = -($('.mlist li').length-sec_lgh)*sec_width;
    			setTimeout(function () {
			        $('#sec_right').css('background-image','url("'+href+'theme/blueonionre/pix/btnr.png")');
			    }, 800);
    		}
    		$('.mlist ul').css('left',left + 'px');
    	})

		$('#sec_left').click(function(){
			left= parseInt($('.mlist ul').css('left')) +sec_width;
			if(-left <= ($('.mlist li').length-(sec_lgh+1))*sec_width){
				setTimeout(function () {
					$('#sec_right').css('background-image','url("'+href+'theme/blueonionre/pix/btnrc.png")');
			    }, 800);
			}
			if( left > -sec_width){
				left=0;
				setTimeout(function () {
			        $('#sec_left').css('background-image','url("'+href+'theme/blueonionre/pix/btnl.png")');
			    }, 800);

			}
    		$('.mlist ul').css('left',left + 'px');
    	})



    	$(window).resize(function() {
		     sec_move();
		     move_mod();
		});


    	// 页面离开或最小化暂停播放
		document.addEventListener("visibilitychange", function () {


		}, true);

	})

})(jQuery);

    var video = document.getElementsByTagName("video")[0];


    video.play();
    setTimeout(function () {

			      video.currentTime=video.duration-4;
video.play();

			    }, 3000);
setTimeout(function () {
history.go(0);

},6000)

})();