// ==UserScript==
// @name 我的京训钉自动播放
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author hezhengang
// @match https://www.bjjnts.cn/study/video*
// @icon https://avatar.csdnimg.cn/B/8/D/3_myqqgame_1566452584.jpg
// @grant none
// @include ://.bjjnts.cn/*
// ==/UserScript==
(function() {
'use strict';
var AOP = {
hostUrl: "https://www.bjjnts.cn",
un_finish_list:[],
isPlay:false,
init: function(){
console.log("init页面加载完毕");
this.checkPlay();
},
goToNext:function(){
console.log("未完成的课程", this.un_finish_list.length);
if (this.un_finish_list.length >0){
var nextURL = this.un_finish_list[0].urlAdress; //获取未播放的列表的下一个地址
console.log("goToNext",nextURL);
window.location.href = nextURL;
}
},
checkPlay:function(){
var that = this;
var checkTimer = window.setInterval(function(){
if (that.un_finish_list.length == 0 ){
that.autoPalyVideo(); //重新执行代码
}else{
window.clearInterval(checkTimer);
}
},3000);
window.setInterval(function(){
var btnGoOn = document.getElementsByClassName("ant-btn-primary");
if(btnGoOn && btnGoOn.length>0){
btnGoOn[0].click();
}
},5000);
},
goToPlay:function(){
var that = this;
if(this.isPlay){
console.log("播放开始了.......");
return false;
}
var playBtn = document.getElementsByClassName("prism-big-play-btn");
if(playBtn && playBtn.length>0){
//播放按钮
playBtn[0].click();
var videoTag = document.getElementById("J_prismPlayer").childNodes[0];
videoTag.addEventListener('play',function(){
console.log('视频开始播放*****');
that.isPlay = true;
});
videoTag.addEventListener('ended', function () {
console.log('视频已经播放完成');
that.goToNext();
}, false);
}
},
getUrlKey:function(url){
var newUrlKey={};
if(url.indexOf("?") != -1){
var params ={};
var urlAddress = url.split("?");
var datas = urlAddress[1].split("&");
for (var i=0;i<datas.length;i++) {
var pair = datas[i].split("=");
params[pair[0]] = pair[1];
}
var classId = params.class_id,courseId = params.course_id,unitId = params.unit_id;
var uniqueKey = classId+"_"+courseId+"_"+unitId;
var newUrl = urlAddress[0]+"?class_id="+classId+"&course_id="+courseId+"&unit_id="+unitId
newUrlKey = { urlKey: uniqueKey, urlAdress: newUrl};
}
return newUrlKey;
},
getTimeStr:function(){
return new Date().getTime();
},
autoPalyVideo:function(){
var all_course = {},that = this;
var course_list = document.getElementsByClassName("units_wrap_box___1ncip") ||[];
console.log("获取课程=", course_list.length);
if (course_list.length>0){
for (var index = 0; index<course_list.length;index++){
var linkTag = course_list[index];
var hrefRecord = this.getUrlKey(linkTag.href),urlKey = hrefRecord.urlKey;
var spanTag = linkTag.querySelector(".study_success_svg___jPGAq");
if (spanTag) {
console.log("**********************");
hrefRecord.isPlayEnd = true;
} else {
hrefRecord.isPlayEnd = false;
that.un_finish_list.push(hrefRecord);
}
all_course[urlKey] = hrefRecord;
};
}
var currentUrlKey = this.getUrlKey(window.location.href).urlKey;
console.log("未播放的课程",this.un_finish_list);
var current_course = all_course[currentUrlKey];
if(!current_course){
console.error("没有匹配课程");
return ;
}
var play_status = current_course.isPlayEnd;
console.log("当前视频的播放状态", play_status);
if (!play_status) {
console.log("goToPlay",currentUrlKey);
that.goToPlay();
} else {
that.goToNext();
}
}
};
AOP.init();
})();