网页端/安卓端 一键刷课
// ==UserScript==
// @name zjooc在浙学刷课
// @namespace GAEE
// @version 1.2.0
// @description 网页端/安卓端 一键刷课
// @match https://www.zjooc.cn/*
// @grant unsafeWindow
// @license none
// @require https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js
// ==/UserScript==
var APP_Version = "1.2.5";
//
// 由于网页脚本维护不便,无法及时更新请见谅。
// 如需获得更好体验请移步介绍页下载安卓脚本
//
var startTime = 5000; //刷课间隔时间 //若超过该时间页面还未加载则自动跳过
var IntervalTime = 2000;//监测时长
var Video_muted = true; //开启静音
var Video_speed = 4; //倍速设置 最大16
(function() {
'use strict';
const urls = {'course':'https://www.zjooc.cn/ucenter/student/course/study/[A-Za-z0-9]+/plan/detail/[A-Za-z0-9]+'};
var ListStudy_main = [];
var ListStudy_view = [];
var ListStudy_main_now;
var ListStudy_view_now;
var Interval;
var LN = 0;
var MN = 0;
var url = unsafeWindow.location.href;
var href = new RegExp(urls.course);
CONSOLE();
LOG(href.test(url));
if(href.test(url)){
unsafeWindow.setTimeout(function(){
LOG("=========== 开始执行脚本 =========");
for(var i=0;i<document.querySelectorAll('.el-submenu__title').length;i++){if(i>0)document.querySelectorAll('.el-submenu__title')[i].click()}
GET_MAIN_LIST();
LOG("------------");
GET_VIEW_LIST();
LOG("------------");
//LOG(ListStudy_main);
//LOG(ListStudy_view);
if(ListStudy_main == ""){
LOG("全部完成");
}else{
ListStudy_main_now.click();
if(ListStudy_view == ""){
LOG("当前小节已完成");
NEXT_MAIN();
}else{
ListStudy_view_now.click();
unsafeWindow.setTimeout(AUTO_COURSE,startTime);
}
}
},startTime);
}
function AUTO_COURSE(){
if(Interval){
unsafeWindow.clearInterval(Interval);
}
LOG("============= 开始刷课 ===========");
LOG("当前课时:"+ListStudy_view_now.innerText);
if(document.querySelector('iframe')){
LOG("类型【文档】");
var document_ok = document.querySelector('.contain-bottom').querySelectorAll('button.el-button.el-button--default');
LOG("文档按钮"+document_ok);
if(document_ok){
for(var i=0;i<document_ok.length;i++) document_ok[i].click();
LOG("正在执行文档程序");
}
LOG("============= 结束刷课 ===========");
NEXT_VIEW();
}else{
LOG("类型【视频】");
var video = document.querySelector('video');
LOG("[寻找VIDEO]"+video);
if(video){
video.autoplay = "autoplay";
video.muted = Video_muted;
video.playbackRate = Video_speed;
var p = document.querySelector('video');
if(p)p.click();
Interval = unsafeWindow.setInterval(VIDEO_OK,IntervalTime);
}
}
}
function VIDEO_OK(){
try{
var video=document.querySelector('video');
var bar = video.parentNode.children[2];
var processBar = bar.children[7];
var times = processBar.innerText.split('/');
var now = times[0].trim();
var end = times[1].trim();
LOG(times);
if(now==end){
if(Interval){
unsafeWindow.clearInterval(Interval);
}
LOG("============= 结束刷课 ===========");
unsafeWindow.setTimeout(NEXT_VIEW,startTime);
}
}catch(err) {
LOG("[ERROR] "+err);
if(Interval){
unsafeWindow.clearInterval(Interval);
}
unsafeWindow.setTimeout(NEXT_VIEW,startTime);
}
}
function NEXT_MAIN(){
MN += 1;
if(MN >= ListStudy_main.length){
LOG("全部完成");
alert("🎉 本课程学习完毕");
}else{
ListStudy_main_now = ListStudy_main[MN];
ListStudy_main_now.click();
LOG("正在切换下一章节");
unsafeWindow.setTimeout(function(){
GET_VIEW_LIST();
if(ListStudy_view == ""){
LOG("当前小节已完成");
NEXT_MAIN();
}else{
ListStudy_view_now.click();
unsafeWindow.setTimeout(function(){AUTO_COURSE()},startTime);
}
},startTime);
}
}
function NEXT_VIEW(){
LN += 1;
if(LN >= ListStudy_view.length){
LOG("当前小节已完成");
NEXT_MAIN();
}else{
ListStudy_view_now = ListStudy_view[LN];
ListStudy_view_now.click();
//LOG("当前课时:"+ListStudy_view_now.innerText);
//LOG("下一课时:"+ListStudy_view_now.nextSibling.innerText);
unsafeWindow.setTimeout(AUTO_COURSE,startTime);
}
}
function GET_MAIN_LIST(){
ListStudy_main = [];
MN = 0;
LOG("[学习章节]");
LOG("-------------");
//get main list
var main_list = document.querySelector('.base-asider ul[role="menubar"]');
for(var a=0; a<main_list.childElementCount; a++){
var sec_list = main_list.children[a].children[1];
for(var b=0; b<sec_list.childElementCount; b++){
var _e = sec_list.children[b];
//if(_e.getAttribute('tabindex')=='0')//-1 unfinish 0 finish
//{
// LOG("finished");
//}else{
LOG(_e.innerText);
ListStudy_main.push(_e);
//}
}
}
//end
ListStudy_main_now = ListStudy_main[0];
ListStudy_main_now.click();
LOG("-------------");
}
function GET_VIEW_LIST(){
ListStudy_view = [];
LN = 0;
LOG("[学习小节]");
LOG("-------------");
var list = document.querySelector('.plan-detailvideo div[role="tablist"]');
for(var i=0; i<list.childElementCount; i++){
var e = list.children[i];
if(e.querySelector('i').classList.contains('complete'))//finished
{
LOG("finished");
}else{
LOG(e.innerText);
ListStudy_view.push(e);
}
}
ListStudy_view_now = ListStudy_view[0];
LOG("-------------");
}
function LOG(info){
console.log(info);
$('#console').append('<div class="" style="marginLeft:10px;"><span id="">'+info+'</span></div>');
$('#console').scrollTop(10000000);
}
function CONSOLE(){
unsafeWindow.onload = function(){
var box = '<div class="CONSOLE" style="border: 2px dashed rgb(0, 85, 68);width: 330px; position: fixed; top: 0; right: 0; z-index: 99999;background-color: #e8e8e8; overflow-x: auto;"><button id="close_console">隐藏控制台</button><div class="console_box" id="console" style="height:360px;background:#fff;margin:10px auto 0;overflow:auto;"><div class="info"><div class="time"></div></div></div></div>';
$('body').append(box);
document.getElementById("close_console").onclick = function(){
var b = document.getElementById("console");
if(document.getElementById("close_console").innerText == '隐藏控制台'){
b.style.display = "none";
document.getElementById("close_console").innerText = "显示控制台";
}
else{
b.style.display = "";
document.getElementById("close_console").innerText = "隐藏控制台";
}
}
}
}
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址