// ==UserScript== // @name 教师研修ak // @namespace http://tampermonkey.net/ // @version 2024-07-23 // @description 教师研修网2024 // @author f_cat // @match https://ipx.yanxiu.com/train2/workspace/* // @match https://ipx.yanxiu.com/grain/course/* // @icon https://srt-read-online.3ren.cn/basebusiness/headimg/20200711/1594463211851X00rZyPRV8-23.png // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (function() { 'use strict'; // Your code here... function wait(ms) { return new Promise((resolve, reject) => { setTimeout(() => { console.log("Done waiting"); resolve(ms) }, ms) }) } function getTraining(){ return new Promise((resolve)=>{ let getT = setInterval(()=>{ let trainings = document.querySelectorAll('.training-pack.web'); if(trainings.length >0){ clearInterval(getT); resolve(trainings); } }); }) } function getCourse(training){ return new Promise((resolve)=>{ let getC = setInterval(()=>{ let courses = training.querySelectorAll('.course-item'); if(courses.length >0){ clearInterval(getC); resolve(courses); } }); }) } async function waitForEnd(){ return new Promise(async (resolve)=>{ while(GM_getValue('studing')){ await wait(3000); } resolve('done'); }); } async function learnCourse(course){ return new Promise(async (resolve)=>{ if(course.querySelector('.learn-status') == undefined || course.querySelector('.learn-status > span').innerText != '已观看 100%'){ console.log('开始学习'); course.click(); await waitForEnd(); console.log('结束学习'); resolve('done'); } else{ console.log('已学过'); resolve('done'); } }); } async function gotoTraining(item){ if(item.querySelector('.pack-tool-content').style.display == 'none'){ item.querySelector('.pack-tool-content').querySelector('.pack-info').click(); await wait(300); console.log('展开'); } let courses = await getCourse(item); console.log('共找到 '+courses.length + '节课'); for(var i=0;i{ let getR = setInterval(()=>{ let resourses = document.querySelectorAll('.res-item'); if(resourses.length >0){ clearInterval(getR); resolve(resourses); } }); }) } async function readResourse(){ console.log('开始阅读'); return new Promise((resolve)=>{ let study = setInterval(function() { if(document.querySelector('.action-timer').querySelector('span').innerText.substr(0,4) == '您已完成'){ clearInterval(study); console.log('结束阅读'); resolve('done'); return; } if (document.querySelector('.vcp-playtoggle').style.backgroundImage != undefined) { if (document.querySelector('.scoring-wrapper').style.display != 'none') { var event = new Event("mousemove"); document.querySelectorAll('.scoring-wrapper .rate-item')[4].dispatchEvent(event); document.querySelectorAll('.scoring-wrapper .rate-item')[4].click(); document.querySelector('.ivu-btn.ivu-btn-primary').click(); console.log('完成评分,继续播放'); return; } if (document.querySelector('.ended-mask').style.display != 'none') { clearInterval(study); console.log('结束阅读'); resolve('done'); return; } if (document.querySelector('.alarmClock-wrapper').style.display != 'none') { document.querySelector('.alarmClock-wrapper').click(); console.log('继续播放'); return; } if (document.querySelector('.vcp-player.vcp-playing') == undefined) { const player = document.querySelector('video').click(); document.querySelector('.vcp-bigplay').click(); console.log('开始播放'); return; } } }, 3000); }); } async function coursePage(){ console.log('课程学习页面'); let resourse = await getResourse(); console.log('共找到 '+resourse.length + '个资源') console.log('开始学习'); if(document.querySelector('.action-timer').querySelector('span').innerText.substr(0,4) != '您已完成'){ for(let i=0;i