// ==UserScript== // @name 福大雨课堂刷课-数研院 // @namespace http://tampermonkey.net/ // @version 0.1.3 // @license MIT // @description a script for automating video play for 雨课堂 // @author camerayuhang or 风刮的唉 from FZU // @match https://changjiang.yuketang.cn/v2/web/* // @icon https://www.google.com/s2/favicons?sz=64&domain=yuketang.cn // @grant none // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Your code here... setTimeout(() => { console.log("click to DropDown to show more Dom"); let span = $("span.blue.ml20"); span.click(); }, 3000); setTimeout(() => { let currentURL = window.location.href; let sectionVideoNodes = $("#pane--1 .activity-info.el-tooltip use[*|href='#icon-shipin']").parent().parent().parent().parent(); //let sectionVideoNodes = $("#pane--1 .activity-info.el-tooltip h2:contains('Video')").parent().parent().parent(); console.log("get all nodes containing the video"); for (let i = 0; i < sectionVideoNodes.length; i++) { const ele = sectionVideoNodes[i]; let flagText = $(ele).children(".statistics-box").children(".aside").children().eq(1); if (flagText.text() !== "已完成") { console.log(ele); flagText.click(); break; } setTimeout(function() { let title = $("div.title-fl span")[0].innerText; // title setTimeout(function() { let pause_btn = $("xt-bigbutton.pause_show"); // pause button if (pause_btn.length == 1) { // determine whether the button is shown console.log("The video is paused---click to play"); pause_btn.click(); } }, 3000); // interval for lisening the video process let jsq = "my_interval" jsq = setInterval(function() { let w = $("span.text:eq(1)")[0]; // element for process console.log(title + '---' + w.innerText); if (w.innerText == "完成度:100%") { clearInterval(jsq); console.log("close the interval") window.location.replace(currentURL) } }, 3000); }, 3000); } }, 5000); })();