您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
www.bjjnts.cn auto play next video
当前为
// ==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();
})();