Greasy Fork is available in English.
16倍速,自动答题,自动切换列表中的视频,后台播放,学时不更新的解决方法看下面
当前为
// ==UserScript==
// @name 国家中小学智慧教育平台刷课脚本(16倍速,自动答题,自动切换列表中的视频,后台播放,学时不更新的解决方法看下面)
// @namespace http://tampermonkey.net/
// @version 1.0
// @license CC BY-NC-SA
// @description 16倍速,自动答题,自动切换列表中的视频,后台播放,学时不更新的解决方法看下面
// @author HGGshiwo
// @match https://*.zxx.edu.cn/*
// @match https://*.smartedu.cn/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
(function () {
"use strict";
// function
const sleep = async (time) => {
var p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, time);
});
return p;
};
const getActiveVideoAndPlay = async () => {
await sleep(1000);
if (first) {
await sleep(2000);
first = false;
if (!confirm("是否开始运行脚本")) return;
}
var groups = document.getElementsByClassName("fish-collapse-item");
var groupNo = [...groups].findIndex((item) => {
return item.className.includes("active");
});
var resItems = groups[groupNo].getElementsByClassName("resource-item");
var resNo = [...resItems].findIndex((item) => {
return item.className.includes("active");
});
console.log(666, `开始观看: 第${resNo + 1}个视频,第${groupNo + 1}组`);
var vid = document.getElementsByTagName("video")[0];
if (!vid) {
alert("获取不到视频,请手动刷新网页。");
return;
}
vid.muted = true;
vid.play();
document.querySelector("video").playbackRate = 16;
vid.addEventListener(
"ended",
async () => {
//计算下一个视频的位置
if (resNo + 1 == resItems.length) {
//看完了当前组
if (groupNo + 1 == groups.length) {
console.log(666, "看完了所有组, 退出");
} else {
//观看下一组
console.log(666, `点击下一组的第一个视频`);
document
.getElementsByClassName("fish-collapse-header")
[groupNo + 1].click();
await sleep(1000);
resItems =
groups[groupNo + 1].getElementsByClassName("resource-item");
resItems[0].click();
getActiveVideoAndPlay();
}
} else {
//观看当前组的下一个视频
resItems[resNo + 1].click();
console.log(666, `点击当前组的下一个视频`);
getActiveVideoAndPlay();
}
},
false
);
vid.addEventListener("pause", async () => {
if (document.hidden) {
vid.play(); //因为页面隐藏而暂停,则直接播放
return;
}
await sleep(1000);
var options = document.getElementsByClassName("nqti-option");
if (!options) {
alert("获取不到选项,请手动刷新网页。");
return;
}
var i = 0;
while (options.length) {
i += 1;
options[0].click();
await sleep(1000);
var btns = document.getElementsByClassName("fish-btn");
if (!btns) {
alert("获取不到按钮,请手动刷新网页。");
return;
}
if (btns.length === 1) {
btns[0].click();
} else {
btns[1].click();
}
await sleep(1000);
options = document.getElementsByClassName("nqti-option");
}
});
};
var first = true;
console.log(666, "刷课脚本开始运行");
getActiveVideoAndPlay();
})();