🏠 返回首頁 

Greasy Fork is available in English.

中建网络学院_挂机

挂机看知学云网课,已适配中建网络学院

// ==UserScript==
// @name         中建网络学院_挂机
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  挂机看知学云网课,已适配中建网络学院
// @author       kakasearch
// @match        https://e-cscec.zhixueyun.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=cscec1b.zhixueyun.com
// @require      https://greasyfork.org/scripts/425166-elegant-alert-%E5%BA%93/code/elegant%20alert()%E5%BA%93.js?version=922763
// @grant        GM_setValue
// @grant        GM_getValue
// @license      MIT
// ==/UserScript==
(function() {
'use strict';
if(!GM_getValue("doing")){
//init
GM_setValue("doing",{"name":"","time":1,"status":""})
}
function click_course(){
//查找并点击需要学习的课程
for(let i of document.querySelector("#paasIframe").contentWindow.document.querySelectorAll(".activeContent")){
let status = i.querySelector("button").innerText
let name = i.querySelector(".bname").innerText
if(/(继续学习)|(开始学习)/.test(status)){
GM_setValue("doing",{"name":name,"time":new Date().getTime(),"status":status})
i.querySelector("button").click()
return true
}
}
return false
}
if(/container/.test(window.location.href)){
// 课程主页,在当前页面实现控制做哪些课程
setInterval(function(){
let doing_item = GM_getValue("doing")
let next_flag = false
if(new Date().getTime()-doing_item.time>1000*20){
//超过20s没有更新状态视为过期
next_flag = true
new ElegantAlertBox("准备开始新的课程>__<")
}else{
next_flag = false
new ElegantAlertBox("有课程正在学习中,请等待>__<")
}
if (next_flag){
if(click_course() ){
//有需要做的课程,已经点击
new ElegantAlertBox("已打开新的学习页面学习>__<")
}else{
new ElegantAlertBox("找不到需要学习的内容>__<")
}
}
},5000)
}else if(/study\/course\/detail/.test(window.location.href)){
//视频播放页,做完后给主页一个标志,结束标签页
setInterval(function(){
let name = document.querySelector("div.course-title>div")
if(name){
name = name.innerText
}else{return}
GM_setValue("doing",{"name":name,"time":new Date().getTime(),"status":"学习中"})
//检查是否学习完
let state = document.querySelector(".chapter-list-box.focus").querySelector(" div:nth-child(4)")?false:true
if(state){
new ElegantAlertBox("下一个视频 >__<")
let found = false
let courses = document.querySelectorAll("dl")
for(let i of courses){
if(i.querySelectorAll(".item.pointer.item22").length>1){
i.click()
return
}
}
new ElegantAlertBox("全部学习完>__<")
GM_setValue("doing",{"name":name,"time":new Date().getTime()-1000*30,"status":"已完成"})
GM_setValue(name,{"name":name,"time":new Date().getTime()-1000*30,"status":"已完成"})
setTimeout(function(){window.close()},3000)
}else{
new ElegantAlertBox("还没有学习完 >__<")
if(document.querySelector(".register-mask-layer") && 'display: none;' != document.querySelector(".register-mask-layer").getAttribute("style")){
document.querySelector("#D210registerMask").click()
}
document.querySelector("video").play()
}
},5000)
}
// Your code here...
})();