本脚本仅供学习和交流使用,不得用于任何违反法律法规或侵犯他人权益的行为。用户在使用本脚本时应自行承担责任,并遵守当地法律法规。若因使用本脚本导致任何违法违规行为,与本作者无关。
// ==UserScript==
// @name 大数据再教育自动刷课
// @namespace http://tampermonkey.net/
// @version v1.0.1
// @description 本脚本仅供学习和交流使用,不得用于任何违反法律法规或侵犯他人权益的行为。用户在使用本脚本时应自行承担责任,并遵守当地法律法规。若因使用本脚本导致任何违法违规行为,与本作者无关。
// @author You
// @match https://appn7ewdtmz2955.pc.xiaoe-tech.com/p/t_pc/course_pc_detail/video/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=xiaoe-tech.com
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Your code here...
// 定义要匹配的字符串开头,在每次课程完成后,下一个可以学习的课程的图标会变化
var searchString = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABadJREFUWEe1V12IVVUU/tY593adcqby';
// learnig
var searchString2 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABmlJREFUWEetV2tsHNUZPWdm12u7sUOzOzNOyA/M'
// 获取当前时间和总时长的span元素
let currentTimeSpan
let totalTimeSpan// 获取currentTimeSpan后面的span元素
// 设置检查进度的间隔(例如每秒检查一次)
const checkInterval = 5000;
let intervalId = null; // 用于存储setInterval的ID,以便稍后清除它
// 检查当前时间是否等于总时长的函数
function checkIfTimeEqualsTotal() {
currentTimeSpan = document.querySelector('.xeplayer-time-Tips');
totalTimeSpan = currentTimeSpan.nextElementSibling; // 获取currentTimeSpan后面的span元素
const currentTimeStr = currentTimeSpan.textContent;
const totalTimeStr = totalTimeSpan.textContent;
if (currentTimeStr === totalTimeStr) {
// 执行当播放完成时的操作
console.log('播放完成,执行其他操作');
// 在这里添加你的代码,比如弹出提示、跳转到下一个视频等
clickNextVideo()
// 清除检查进度的定时器
clearInterval(intervalId);
intervalId = null;
setTimeout(() => window.close(), 5000)
} else {
console.log('当前学习中:', currentTimeStr + '/' + totalTimeStr )
}
}
// 点击下一个待学习的视频
function clickNextVideo() {
// 查找所有的图片标签
var images = document.getElementsByTagName('img');
// 打印正在检查的图片数量
console.log("正在检查是否有下一个准备学习的视频");
// 循环遍历每个图片
for (var i = 0; i < images.length; i++) {
// 检查图片的src属性是否以指定的字符串开头
if (images[i].src.startsWith(searchString) || images[i].src.startsWith(searchString2)) {
console.log('检查到有准备学习的视频')
// 模拟点击图片
images[i].parentElement.parentElement.click()
console.log("点击下一个视频");
break; // 停止循环
}
}
}
// 延时开始
setTimeout(async () => {
// 获取video元素
const videoElement = document.querySelector('video');
// 设置video为静音
videoElement.muted = true;
// 开始播放video
try {
videoElement.play()
console.log('视频开始播放');
}catch(error ) {
console.error('播放视频时出错:', error);
};
console.log('开始检查进度的定时器')
// 开始检查进度的定时器
intervalId = setInterval(checkIfTimeEqualsTotal, checkInterval);
}, 10000)
})();