// ==UserScript== // @name 国家中小学智慧教育平台刷课脚本(16倍速,自动答题,自动切换列表中的视频,后台播放,学时不更新的解决方法看下面) // @namespace http://tampermonkey.net/ // @version 1.6 // @license CC BY-NC-SA // @description 16倍速,自动答题,自动切换列表中的视频,后台播放,学时不更新的解决方法看下面 // @author HGGshiwo // @match https://*.zxx.edu.cn/teacherTraining/courseDetail* // @match https://basic.smartedu.cn/teacherTraining/courseDetail* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @downloadURL 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); //获取当前视频位置 try { var groups = document.getElementsByClassName("fish-collapse-item"); var groupNo = [...groups].findIndex((item) => { return item.className.includes("active"); }); var base = location.hostname.includes("basic") ? document : groups[groupNo]; var resItems = base.getElementsByClassName("resource-item"); var resNo = [...resItems].findIndex((item) => { return item.className.includes("active"); }); } catch (e) { console.log(666, e); getActiveVideoAndPlay(); return; } console.log(666, `开始观看: 第${resNo + 1}个视频,第${groupNo + 1}组`); try { var vid = document.getElementsByTagName("video")[0]; vid.muted = true; vid.play(); vid.playbackRate = 16; vid.addEventListener( "ended", async () => { await sleep(1000); //计算下一个视频的位置 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; } }); } catch (e) { console.log(666, e); getActiveVideoAndPlay(); //获取不到视频,再次调用 } }; if (confirm("开始运行脚本吗?")) { console.log(666, "刷课脚本开始运行"); setInterval(() => { var options = document.getElementsByClassName("nqti-option"); if (options.length) { options[0].click(); } var btnWapper = document.getElementsByClassName( "index-module_markerExercise_KM5bU" ); if (btnWapper.length) { var btns = btnWapper[0].getElementsByClassName("fish-btn"); if (btns.length) { btns[0].click(); } } var confirmBtns = document.getElementsByClassName( "fish-modal-confirm-btns" ); if (confirmBtns.length) { confirmBtns[0].getElementsByClassName("fish-btn")[0].click(); } }, 1000); getActiveVideoAndPlay(); } })();