河南省新闻传播专业技术人员继续教育培训服务平台刷课脚本分享
河南省新闻传播专业技术人员继续教育培训服务平台
# 脚本说明
本脚本是为河南省新闻传播专业技术人员继续教育培训服务平台量身定制的学习辅助工具,使用纯JavaScript编写,无需额外依赖,适配平台 https://xwcb-train.ghlearning.com/。脚本经过多次优化,确保在各种网络环境下都能稳定运行。
主要功能亮点:
- 自动识别并播放课程视频
- 支持1.4倍到2.7倍的播放速度调节
- 一键静音,安静学习不打扰他人
- 智能防暂停机制,视频持续播放
- 课程完成自动跳转,无需手动操作
- 模拟真实用户操作,降低被检测风险
- 标签页切换保护,后台学习不受影响
脚本获取:
暂时下架
如果您是第一次使用此类脚本,请参考下方的详细安装步骤。
# 代学服务
提示
工作繁忙没有时间学习?我们提供专业代学服务,全程透明可查,支持多种交易方式。

微信联系:yizhituziang

QQ联系:2422270452
- img: /img/weixin.jpg
name: 微信联系:yizhituziang
- img: /img/qq.jpg
name: QQ联系:2422270452
# 安装指南
# 第一步:安装脚本管理器
要运行这个脚本,您需要先在浏览器中安装一个脚本管理器插件。我们推荐使用脚本猫(ScriptCat),这是一个免费且功能强大的用户脚本管理工具。如果您已经安装了油猴(Tampermonkey),也可以直接使用,无需重复安装。建议使用Edge浏览器,安装过程最为简单。
打开脚本猫官方网站:https://docs.scriptcat.org/ (opens new window)
在页面中找到并点击 "添加到Edge浏览器" 按钮。

浏览器会跳转到Microsoft Store页面,点击 "获取" 开始下载安装。

下载完成后,浏览器右上角会弹出确认对话框,点击 "添加扩展" 完成安装。

稍等片刻,浏览器会提示插件安装成功。

# 第二步:安装学习脚本
获取到脚本的安装链接后,在浏览器中打开该链接,点击页面上的 "安装脚本" 按钮,然后在弹出的确认窗口中再次点击 "安装",稍等片刻即可完成安装。
# 第三步:使用脚本
安装完成后,请重新访问河南省新闻传播专业技术人员继续教育培训服务平台。如果您之前已经打开了学习页面,请刷新页面,脚本会自动生效。
# 代码实现
class HenanMediaTrainer {
constructor() {
this.settings = {
enableAutoPlay: true,
playbackRate: 2.4,
enableAutoMute: true,
enableAutoNext: true,
enableAntiDetection: true,
checkInterval: 2100,
activityInterval: 20000,
maximumRetries: 10
};
this.retryCount = 0;
this.initialize();
}
printLog(msg) {
console.log(`[河南新闻传播学习] ${msg}`);
}
initialize() {
this.printLog('学习助手正在初始化...');
this.overrideVisibilityAPI();
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => {
this.startWorking();
});
} else {
this.startWorking();
}
}
overrideVisibilityAPI() {
document.addEventListener('visibilitychange', (event) => {
event.stopImmediatePropagation();
}, true);
const originalHidden = Object.getOwnPropertyDescriptor(Document.prototype, 'hidden');
const originalVisibilityState = Object.getOwnPropertyDescriptor(Document.prototype, 'visibilityState');
Object.defineProperty(document, 'hidden', {
get: () => false
});
Object.defineProperty(document, 'visibilityState', {
get: () => 'visible'
});
this.printLog('可见性API已覆盖');
}
startWorking() {
this.printLog('河南省新闻传播专业技术人员继续教育培训服务平台学习助手已启动');
setInterval(() => {
this.executeMainTasks();
}, this.settings.checkInterval);
if (this.settings.enableAntiDetection) {
setInterval(() => {
this.simulateUserActions();
}, this.settings.activityInterval);
}
}
locateVideoElement() {
const videoSelectors = [
'video',
'.player-wrapper video',
'#courseVideoPlayer video',
'.lesson-player video',
'.media-player video',
'[class*="video"] video',
'[id*="player"] video'
];
for (let index = 0; index < videoSelectors.length; index++) {
const video = document.querySelector(videoSelectors[index]);
if (video) {
this.printLog(`视频元素已定位: ${videoSelectors[index]}`);
return video;
}
}
return null;
}
configureVideoElement(video) {
if (!video) return;
if (this.settings.enableAutoMute && !video.muted) {
video.muted = true;
this.printLog('视频已设置为静音状态');
}
if (video.playbackRate !== this.settings.playbackRate) {
video.playbackRate = this.settings.playbackRate;
this.printLog(`播放倍速已调整为 ${this.settings.playbackRate}x`);
}
video.addEventListener('ratechange', () => {
if (video.playbackRate !== this.settings.playbackRate) {
video.playbackRate = this.settings.playbackRate;
}
});
}
attemptVideoPlay(video) {
if (!video) return;
if (video.paused && !video.ended) {
this.printLog('检测到视频处于暂停状态,正在尝试恢复播放');
video.play().then(() => {
this.printLog('视频恢复播放成功');
this.retryCount = 0;
}).catch((error) => {
this.printLog(`自动播放失败,错误信息: ${error.message}`);
this.retryCount++;
if (this.retryCount < this.settings.maximumRetries) {
this.printLog(`尝试点击播放按钮 (${this.retryCount}/${this.settings.maximumRetries})`);
this.triggerPlayButtonClick();
}
});
}
}
triggerPlayButtonClick() {
const buttonSelectors = [
'.play-btn',
'.video-play-control',
'.start-video',
'.vjs-play-btn',
'.play-button',
'#playVideo',
'[class*="play"]',
'button[title*="播放"]'
];
for (let i = 0; i < buttonSelectors.length; i++) {
const button = document.querySelector(buttonSelectors[i]);
if (button && button.offsetParent !== null) {
button.click();
this.printLog(`已点击播放按钮: ${buttonSelectors[i]}`);
break;
}
}
}
navigateToNextLesson() {
if (!this.settings.enableAutoNext) return;
const video = this.locateVideoElement();
if (!video || !video.ended) return;
this.printLog('课程播放完成,准备切换到下一课');
const nextButtonSelectors = [
'.next-chapter-btn',
'.next-lesson-button',
'.btn-next-course',
'.lesson-next',
'a[title*="下一课"]',
'a[title*="下一讲"]',
'[class*="next"]'
];
for (let i = 0; i < nextButtonSelectors.length; i++) {
const button = document.querySelector(nextButtonSelectors[i]);
if (button && button.offsetParent !== null) {
button.click();
this.printLog('已点击下一课按钮');
break;
}
}
}
simulateUserActions() {
if (!this.settings.enableAntiDetection) return;
const positionX = Math.random() * window.innerWidth;
const positionY = Math.random() * window.innerHeight;
const mouseMoveEvent = new MouseEvent('mousemove', {
view: window,
bubbles: true,
cancelable: true,
clientX: positionX,
clientY: positionY
});
document.dispatchEvent(mouseMoveEvent);
const keyboardEvent = new KeyboardEvent('keydown', {
key: 'Alt',
bubbles: true
});
document.dispatchEvent(keyboardEvent);
if (Math.random() > 0.45) {
window.scrollBy(0, Math.random() > 0.5 ? 45 : -45);
}
this.printLog('用户行为模拟完成');
}
executeMainTasks() {
const video = this.locateVideoElement();
if (video) {
this.configureVideoElement(video);
this.attemptVideoPlay(video);
this.navigateToNextLesson();
}
}
}
new HenanMediaTrainer();