// ==UserScript== // @name UOOC_优课刷课_sztu软件工程 // @namespace https://www.sztu.edu.cn/ // @version 2024-11-24 // @license MPL // @description 该刷课网站会自动跳转到未刷的课自动播放,章节测试会被跳过,请自行完成章节测试。 // @author somebody in SZTU // @include http://www.uooc.net.cn/home/learn/index* // @include https://www.uooc.net.cn/home/learn/index* // @match http://www.uooc.net.cn/home/learn/* // @match https://www.uooc.net.cn/home/learn/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/518597/UOOC_%E4%BC%98%E8%AF%BE%E5%88%B7%E8%AF%BE_sztu%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B.user.js // @updateURL https://update.greasyfork.icu/scripts/518597/UOOC_%E4%BC%98%E8%AF%BE%E5%88%B7%E8%AF%BE_sztu%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B.meta.js // ==/UserScript== /*调试信息*/ //视频倍速 let speed = 2; //视频静音 let mute = true; (function () { "use strict"; // 寻找未刷的课 async function searchUncomplete(query){ return new Promise(async (resolve) => { let catalog = query.children; for (let i = 0; i < catalog.length; i++) { // 寻找第一层列表的可点击元素 await checkActive(catalog[i]); } resolve(); }) } // 检测是否未刷 async function checkActive(catalog){ return new Promise(async (resolve) => { let children = catalog.children // 检测是否未刷:是否未刷通过子元素第一个的class列表来获取 let elem = catalog?.firstElementChild; if (elem && elem.classList.contains("uncomplete") && !elem.innerText.includes("测试")) { console.log("搜寻"+elem.innerText); // 检测是否已经打开:查找该元素中的 标签,检测class let iElement = elem.getElementsByTagName("i")[0]; if(iElement.classList.contains("icon-xiangxia")){ elem.click(); } console.log("found "); await sleep(1000); // 等待 1000 毫秒 console.log("查找") // 未刷则检测所有子元素,重点查看
是否是任务点、