自己用的,不要下载……
目前為
// ==UserScript==
// @name 21tb自用
// @namespace http://tampermonkey.net/
// @version 0.2
// @description 自己用的,不要下载……
// @author You
// @match https://sxqc-gbpy.21tb.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=21tb.com
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
var interval=30 //间隔时间,秒,必须正整数
var courseList=[] //所有课程
var nowIndex=0 //当前播放视频的序号
var isStart=false
var watchVideo //视频任务
console.log("已启动")
//document.querySelector('#goNextStep').click()
//document.querySelector('.next-button').click()
var domain=document.domain
var url=window.location.pathname
//时间设置有误,默认为30秒
if(!(Number.isInteger(interval)&&interval>0))
{
interval=30
}
if(domain=='sxqc-gbpy.21tb.com' && url=='/els/html/courseStudyItem/courseStudyItem.learn.do')
{
setTimeout(function(){
var newLi = document.createElement("li"); //创建一个input对象(提示框按钮)
newLi.id = "id001";
newLi.classList.add('cs-menu-item','cl-go-btn','pull-right')
var newA=document.createElement("a")
newA.classList.add('cl-go-link')
newA.innerHTML='开始挂机'
newA.style.color='blue'
newLi.appendChild(newA)
document.querySelector('.cs-nav-menu').appendChild(newLi)
newA.onclick=function(){
if(isStart==false)
{
if(document.querySelector('#courseItemId'))
{startWatch()}
else
{startWatch2()}
isStart=true
newA.innerHTML='正在挂机'
newA.style.color='red'
}else{
clearInterval(watchVideo)
isStart=false
newA.innerHTML='开始挂机'
newA.style.color='blue'
}
}
},10000);
}
function startWatch2()
{
courseList= document.getElementsByClassName("url-course-content")[0].contentWindow.document.querySelectorAll('.section-item:not(.finish)')
console.log("还有有"+ courseList.length +"节课")
checkVideo2()
watchVideo=setInterval(checkVideo2,interval*1000)
}
function checkVideo2()
{
//Iframe的document
var frameDocument=document.querySelector('#aliPlayerFrame').contentDocument
//判断是否有正在学习的节点
if(frameDocument.querySelector('.first-line.active'))
{
//如果有,判断该节点是否是已完成
if(frameDocument.querySelector('.first-line.active').parentNode.className.contains('finish'))
{
//如果所有节点都已完成
if(frameDocument.querySelectorAll('.section-item:not(.finish)')==frameDocument.querySelectorAll(".section-item"))
{
//关闭定时器
clearInterval(watchVideo)
return
}
//否则点击下一个视频
frameDocument.querySelectorAll('.next-button')[frameDocument.querySelectorAll('.section-item:not(.finish)').length].click()
return
}
} else//如果没有正在学习的节点
{
//如果所有节点都已完成
if(frameDocument.querySelectorAll('.section-item:not(.finish)')==frameDocument.querySelectorAll(".section-item"))
{
//关闭定时器
clearInterval(watchVideo)
return
}
//否则点击下一个视频
frameDocument.querySelectorAll('.next-button')[frameDocument.querySelectorAll('.section-item:not(.finish)').length].click()
return
}
if(frameDocument.querySelector('video').paused)
{
frameDocument.querySelector('video').play()
}
}
function startWatch()
{
console.log("已加载")
courseList=document.querySelector('#courseItemId').querySelectorAll('.cl-catalog-item-sub')
console.log("共有"+ courseList.length +"节课")
checkVideo()
console.log("开启定时器")
//开启定时器,循环检测
watchVideo=setInterval(checkVideo,interval*1000)
}
function checkVideo(){
var j=0;
for(j=0;j<courseList.length;j++)
{
console.log("进入循环")
if(document.querySelectorAll('.cl-catalog-item-sub')[j].querySelector('a').classList.contains('cl-catalog-link-done'))
{
continue;
}
//如果有正在播放的视频
else if(document.querySelectorAll('.cl-catalog-item-sub')[j].querySelector('a').classList.contains('cl-catalog-playing'))
{
console.log("aaaaaaaaaaa","playing",j)
//视频暂停
if(j!=nowIndex)
{nowIndex=j}
if(document.getElementById('iframe_aliplayer').contentWindow.document.querySelector('video').paused)
{
document.getElementById('iframe_aliplayer').contentWindow.document.querySelector('video').play()
}
break;
}
//找到未播放完成视频
else
{
console.log("找到"+(j+1)+"节课未播放完成")
console.log("当前课程"+nowIndex)
if(j!=nowIndex)
{
nowIndex=j
//点击
document.querySelectorAll('.cl-catalog-item-sub')[j].querySelector("a").click();
break;
}
}
}
console.log("正在播放第"+nowIndex+"节课")
if(j>courseList.length)
{
clearInterval(watchVideo)
}
}
// Your code here...
})();