// ==UserScript== // @name 雨课堂刷课脚本 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 只针对雨课堂视频进行自动播放,点击左侧边栏的开始刷课即可自动刷课,刷课期间请勿跳转页面!!! // @author 中原工学院-轻化211-风之子 // @license MIT // @match https://www.yuketang.cn/* // @icon http://newqi.cn/images/logo128.ico // @grant GM_addStyle // @downloadURL none // ==/UserScript== // 雨课堂刷课脚本 let shuake = {}; shuake.shuake = function () { let count = +localStorage.getItem('classIndex') || 0; let classList = []; // 用于标记视频是否播放完毕 let play = true; main(); function main() { autoSlide(count).then(() => { let list = document.querySelector('.logs-list').childNodes; console.log(list); classList[count] = list[count].querySelector('.content-box').querySelector('section'); let classInfo = classList[count].querySelector('.tag').querySelector('use').getAttribute('xlink:href'); if (classInfo.includes('shipin') && play === true) { play = false; console.log(classList[count]); classList[count].click(); setTimeout(() => { const video = document.querySelector('video'); console.log('第' + count + '个:进入了视频区'); let currentTime = Date.now(); let timer1 = setInterval(() => { console.log('已播放时间:' + (Date.now() - currentTime) / 1000 + ' 视频时长:' + video.duration); if (Date.now() - currentTime >= (video.duration + 40) * 1000) { count++; localStorage.setItem('classIndex', count); play = true; history.back(); main(); clearInterval(timer1); } }, 10000); }, 1000) } else if (count == list.length && play === true) { return; } else if ((classInfo.includes('tuwen') || classInfo.includes('taolun') || classInfo.includes('zuoye')) && play === true) { console.log('第' + count + '个:不是视频,已跳过'); count++; localStorage.setItem('classIndex', count); main(); } }) } // 根据视频集数,自动下拉刷新集数 async function autoSlide(count) { let frequency = parseInt((count + 1) / 20) + 1; for (let i = 0; i < frequency; i++) { await new Promise((resolve, reject) => { setTimeout(() => { document.querySelector('.viewContainer').scrollTop = document.querySelector('.el-tab-pane').scrollHeight; resolve(); }, 1000) }) } } } shuake.addButton = function () { let ul = document.querySelector('.left__menu').querySelector('.top').querySelector('ul'); let li = document.createElement('li'); li.classList.add('myli'); li.innerHTML = '开始刷课'; ul.appendChild(li); li.addEventListener('click', function () { localStorage.setItem('running', true); shuake.shuake(); li.innerHTML = '刷课中~'; }) } // 主程序 shuake.main = function () { shuake.addButton(); }; // 添加css样式 function addStyle() { let css = ` .myli{ height:50px; line-height:50px; } .myli:hover{ background:yellow; color:#000; cursor:pointer; } `; GM_addStyle(css); } (function () { 'use strict'; shuake.main(); addStyle(); })()