// ==UserScript== // @name 🏆全国成人继续教育网课处理平台(学习通、知到、u校园ai、英华全系列、智慧职教、雨课堂、FIF、高校邦、池馆、中国大学、welearn、在浙学、utalk)(学起plus、青书、柠檬文才、睿学、慕享、联大、智慧中小学、学习公社、168网校)、自考(讯网、出头科技、学历教育云、慕华、龙知网)、国开、广开、云开、江开、寒期教师研修、2026年春季学期人教版义教新教材等平台视频处理,作业、考试需付费,详情请联系客服QQ:125431514 // @namespace http://tampermonkey.net/ // @version V2026.4 // @description 🏆全国成人继续教育网课处理平台(学习通、知到、u校园ai、英华全系列、智慧职教、雨课堂、FIF、高校邦、池馆、中国大学、welearn、在浙学、utalk)(学起、青书、柠檬文才、睿学、慕享、联大、智慧中小学、学习公社、168网校)、自考(讯网、出头科技、学历教育云、慕华、龙知网)、国开、广开、云开、江开等平台视频处理,作业、考试需付费,详情请联系客服QQ:125431514 // @author 125431514 // @match *://*.zjy2.icve.com.cn/* // @match *://*.yuketang.cn/* // @match *://*.kaoshixing.com/* // @match *://*.168wangxiao.com/* // @match *://*.lemonwen.com/* // @match *://*.yixuebao.com/* // @match *://*.youkexuetang.com/* // @match *://*.xiaoetong.com/* // @match *://*.ahjxjy.cn/* // @match *://*.shou.edu.cn/* // @match *://*.hqu.edu.cn/* // @match *://*.hexue.com.cn/* // @match *://*.pmph.com/* // @match *://*.ouchn.cn/* // @match *://*.scetc.edu.cn/* // @match *://*.zjedu.org/* // @match *://*.cug.edu.cn/* // @match *://*.zjzs.net/* // @match *://*.hneao.cn/* // @match *://*.ulearning.cn/* // @match *://*.xueqiplus.com/* // @match *://*.qingshuxuetang.com/* // @match *://*.xuetangx.com/* // @match *://*.yinghuaxuetang.com/* // @match *://*.gdou.com/* // @match *://*.chaoxing.com/* // @match *://*.hlju.edu.cn/* // @match *://*.ecust.edu.cn/* // @match *://lms.ouchn.cn/* // @match *://xczxzdbf.moodle.qwbx.ouchn.cn/* // @match *://study.ouchn.cn/* // @match *://moodle.syxy.ouchn.cn/* // @match *://moodle.qwbx.ouchn.cn/* // @match *://*.tongyi.com/* // @match *://chatglm.cn/* // @match *://xinghuo.xfyun.cn/* // @match *://chat.deepseek.com/* // @match *://*.zhihuishu.com/* // @match *://course.ougd.cn/* // @match *://elearning.bjou.edu.cn/* // @match *://whkpc.hnqtyq.cn:5678/* // @match *://www.51xinwei.com/* // @match *://*.w-ling.cn/* // @match *://*.edu-edu.com/* // @match *://xuexi.jsou.cn/* // @match *://*.icve.com.cn/* // @match *://zice.cnzx.info/* // @match *://any.cnzx.info:81/* // @match *://www.icourse163.org/* // @match *://*.shou.org.cn/* // @match *://*.chinaedu.net/* // @match *://training.qingshuxuetang.com/* // @match *://cce.org.uooconline.com/* // @match *://*.courshare.cn/* // @match *://*.cep.webtrn.cn/* // @match *://*.webtrn.cn/* // @match *://*.cj-edu.com/* // @match *://*.ytccr.com/* // @match *://*.exam-cloud.cn/* // @match *://gdrtvu.exam-cloud.cn/* // @match *://*.open.ha.cn/* // @match *://lhycjy.cloudwis.tech/* // @match *://*.sclecb.cn/* // @match *://*.web2.superchutou.com/* // @match *://*.ls365.net/* // @match *://*.jijiaox.com/* // @match *://*.wencaischool.net/* // @match *://sdrz.gxk.yxlearning.com/* // @match *://*.crjxjy.net/* // @match *://*.cjnep.net/* // @match *://*.91huayi.com/* // @match *://teach.ynou.edu.cn/* // @match *://*.edu-edu.com.cn/* // @match *://*.21tb.com/* // @match *://*.mynep.com/* // @match *://www.mosoteach.cn/* // @match *://*.aufe.edu.cn/* // @match *://*.learnin.com.cn/* // @match *://*.swufe-online.com/* // @match *://ks.cqsdx.cn/* // @match *://*.qau.edu.cn/* // @match *://*.gdufemooc.cn/* // @match *://*.telfri-edu.com/* // @match *://www.beeline-ai.com/* // @match *://*.wxic.edu.cn/* // @match *://*.yxbyun.com/* // @match *://*.wdjycj.com/* // @match *://*.hbcjpt.com/* // @match *://*.csmu.edu.cn/* // @match *://*.ketangx.net/* // @match *://*.cnzx.info/* // @match *://www.asklib.com/* // @match *://*.xust.edu.cn/* // @match *://*.whut.edu.cn/* // @match *://*.lut.edu.cn/* // @match *://*.wwwwsoft.com/* // @match *://*.dufe.edu.cn/* // @match *://*.lygtc.edu.cn/* // @match *://*.iwdjy.com/* // @match *://*.jijiaool.com/* // @match *://lms.cjzx.hblll.com/* // @match *://*.ouc-online.com.cn/* // @match *://*.lsedu.vip/* // @match *://*.gdcxxy.net/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // 假设的免费AI题库API const AIQuestionBankAPI = { getAnswer: async function(question) { // 这里应该是调用一个真实的API来获取答案 // 以下代码仅为示例,实际情况下需要根据API的具体实现来编写 const response = await fetch('https://api.freeaitestbank.com/getAnswer', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ question }) }); const data = await response.json(); return data.answer; } }; // 自动播放视频 function autoPlayMedia() { const mediaElements = document.querySelectorAll('video, audio'); mediaElements.forEach(media => { if (media.paused) { media.play(); } }); } // 从AI题库获取答案 async function getAnswerFromAI(question) { try { const answer = await AIQuestionBankAPI.getAnswer(question); return answer; } catch (error) { console.error('获取AI题库答案失败', error); return null; } } // 检测当前页面所属的平台 function detectPlatform() { const url = window.location.href; if (url.includes('chaoxing.com')) return '超星学习通'; if (url.includes('zhihuishu.com')) return '智慧树'; if (url.includes('zjy2.icve.com.cn')) return '职教云系列'; if (url.includes('yuketang.cn')) return '雨课堂'; if (url.includes('kaoshixing.com')) return '考试星'; if (url.includes('168wangxiao.com')) return '168网校'; if (url.includes('lemonwen.com')) return '柠檬文才'; if (url.includes('yixuebao.com')) return '亿学宝云'; if (url.includes('youkexuetang.com')) return '优课学堂'; if (url.includes('xiaoetong.com')) return '小鹅通'; if (url.includes('ahjxjy.cn')) return '安徽继续教育'; if (url.includes('shou.edu.cn')) return '上海开放大学'; if (url.includes('hqu.edu.cn')) return '华侨大学自考网络助学平台'; if (url.includes('hexue.com.cn')) return '和学在线'; if (url.includes('pmph.com')) return '人卫慕课'; if (url.includes('ouchn.cn')) return '国家开放大学'; if (url.includes('scetc.edu.cn')) return '山财培训网(继续教育)'; if (url.includes('zjedu.org')) return '浙江省高等学校在线开放课程共享平台'; if (url.includes('cug.edu.cn')) return '国地质大学远程与继续教育学院'; if (url.includes('zjzs.net')) return '浙江省高等教育自学考试网络助学平台'; if (url.includes('hneao.cn')) return '湖南高等学历继续教育'; if (url.includes('ulearning.cn')) return '优学院'; if (url.includes('xueqiplus.com')) return '学起Plus'; if (url.includes('qingshuxuetang.com')) return '青书学堂'; if (url.includes('xuetangx.com')) return '学堂在线'; if (url.includes('yinghuaxuetang.com')) return '英华学堂'; if (url.includes('gdou.com')) return '广开网络教学平台'; return '未知平台'; } // 获取题目内容 function getQuestionContent() { // 这里需要根据具体平台的页面结构来获取题目内容 // 例如,假设题目内容在一个类名为 'question-content' 的元素中 const questionElement = document.querySelector('.question-content'); return questionElement ? questionElement.innerText : ''; } // 从本地题库获取答案 function getAnswerFromLocalBank(platform, question) { const bank = questionBank[platform]; return bank ? bank[question] : null; } // 自动填写答案 function fillAnswer(answer) { // 这里需要根据具体平台的页面结构来填写答案 // 例如,假设答案填写在一个类名为 'answer-input' 的输入框中 const answerInput = document.querySelector('.answer-input'); if (answerInput) { answerInput.value = answer; } } // 自动提交答案 function autoSubmit() { // 这里需要根据具体平台的页面结构来提交答案 // 例如,假设提交按钮在一个类名为 'submit-button' 的按钮中 const submitButton = document.querySelector('.submit-button'); if (submitButton) { submitButton.click(); } } (function() { 'use strict'; if (window.hasVideoControlScriptRun) { return; } window.hasVideoControlScriptRun = true; let currentRate = 1.0; let isMinimized = false; let isClosed = false; let modal; function setPlaybackRate(rate) { const videos = document.querySelectorAll('video'); videos.forEach(video => { video.playbackRate = rate; video.muted = true; // 自动静音 if (!video.playing) { video.play().catch(err => {}); } }); } function checkAndPlayVideo() { const videos = document.querySelectorAll('video'); videos.forEach(video => { if (video.paused &&!video.ended) { video.play().catch(err => {}); } }); } function observeVideoChanges() { const observer = new MutationObserver((mutations) => { mutations.forEach(mutation => { if (mutation.type === 'childList') { setPlaybackRate(currentRate); checkAndPlayVideo(); } }); }); observer.observe(document.body, { childList: true, subtree: true }); } function createControlModal() { const modal = document.createElement('div'); modal.id = 'videoControlModal'; modal.style.position = 'fixed'; modal.style.left = '10px'; modal.style.top = '10px'; modal.style.backgroundColor = '#ffffff'; modal.style.padding = '15px'; modal.style.zIndex = '1000'; modal.style.borderRadius = '10px'; modal.style.boxShadow = '0 4px 15px rgba(0, 0, 0, 0.2)'; modal.style.width = '280px'; modal.style.fontFamily = 'Arial, sans-serif'; modal.style.border = '1px solid #e0e0e0'; modal.style.transition = 'all 0.3s ease'; modal.style.opacity = '0'; modal.style.transform = 'translateY(-20px)'; setTimeout(() => { modal.style.opacity = '1'; modal.style.transform = 'translateY(0)'; }, 10); const title = document.createElement('h3'); title.textContent = '视频倍速控制'; title.style.margin = '0 0 15px 0'; title.style.textAlign = 'center'; title.style.color = '#333333'; title.style.fontSize = '18px'; modal.appendChild(title); const rateInput = document.createElement('input'); rateInput.type = 'number'; rateInput.min = '0.1'; rateInput.max = '16'; rateInput.step = '0.1'; rateInput.value = currentRate; rateInput.style.width = '100%'; rateInput.style.padding = '8px'; rateInput.style.marginBottom = '10px'; rateInput.style.border = '1px solid #e0e0e0'; rateInput.style.borderRadius = '5px'; rateInput.style.fontSize = '14px'; rateInput.style.outline = 'none'; rateInput.style.transition = 'border-color 0.3s ease'; rateInput.addEventListener('focus', () => { rateInput.style.borderColor = '#007bff'; }); rateInput.addEventListener('blur', () => { rateInput.style.borderColor = '#e0e0e0'; }); modal.appendChild(rateInput); const confirmButton = document.createElement('button'); confirmButton.textContent = '设置倍速'; confirmButton.style.width = '100%'; confirmButton.style.padding = '8px'; confirmButton.style.marginBottom = '10px'; confirmButton.style.backgroundColor = '#007bff'; confirmButton.style.color = '#ffffff'; confirmButton.style.border = 'none'; confirmButton.style.borderRadius = '5px'; confirmButton.style.fontSize = '14px'; confirmButton.style.cursor = 'pointer'; confirmButton.style.transition = 'background-color 0.3s ease'; confirmButton.onclick = function() { const newRate = parseFloat(rateInput.value); if (newRate >= 0.1 && newRate <= 16) { currentRate = newRate; setPlaybackRate(currentRate); } else { alert('倍速必须在 0.1 到 16 之间'); } }; confirmButton.addEventListener('mouseenter', () => { confirmButton.style.backgroundColor = '#0056b3'; }); confirmButton.addEventListener('mouseleave', () => { confirmButton.style.backgroundColor = '#007bff'; }); modal.appendChild(confirmButton); const minimizeButton = document.createElement('button'); minimizeButton.textContent = isMinimized? '恢复' : '最小化'; minimizeButton.style.width = '48%'; minimizeButton.style.marginRight = '4%'; minimizeButton.style.padding = '8px'; minimizeButton.style.backgroundColor = '#6c757d'; minimizeButton.style.color = '#ffffff'; minimizeButton.style.border = 'none'; minimizeButton.style.borderRadius = '5px'; minimizeButton.style.fontSize = '14px'; minimizeButton.style.cursor = 'pointer'; minimizeButton.style.transition = 'background-color 0.3s ease'; minimizeButton.onclick = function() { isMinimized =!isMinimized; if (isMinimized) { modal.style.height = '50px'; modal.style.overflow = 'hidden'; minimizeButton.textContent = '恢复'; } else { modal.style.height = 'auto'; modal.style.overflow = 'visible'; minimizeButton.textContent = '最小化'; } }; minimizeButton.addEventListener('mouseenter', () => { minimizeButton.style.backgroundColor = '#5a6268'; }); minimizeButton.addEventListener('mouseleave', () => { minimizeButton.style.backgroundColor = '#6c757d'; }); modal.appendChild(minimizeButton); const closeButton = document.createElement('button'); closeButton.textContent = '关闭'; closeButton.style.width = '48%'; closeButton.style.padding = '8px'; closeButton.style.backgroundColor = '#dc3545'; closeButton.style.color = '#ffffff'; closeButton.style.border = 'none'; closeButton.style.borderRadius = '5px'; closeButton.style.fontSize = '14px'; closeButton.style.cursor = 'pointer'; closeButton.style.transition = 'background-color 0.3s ease'; closeButton.onclick = function() { isClosed = true; modal.style.opacity = '0'; modal.style.transform = 'translateY(-20px)'; setTimeout(() => { modal.style.display = 'none'; }, 300); }; closeButton.addEventListener('mouseenter', () => { closeButton.style.backgroundColor = '#c82333'; }); closeButton.addEventListener('mouseleave', () => { closeButton.style.backgroundColor = '#dc3545'; }); modal.appendChild(closeButton); const infoText = document.createElement('p'); infoText.style.marginTop = '13px'; infoText.style.fontSize = '13px'; infoText.style.color = '#666666'; infoText.innerHTML = ` 提示:
1. 倍速范围:0.1x - 16x
2. 部分平台可能不支持倍速播放(设置强制倍数)
3. 视频会自动尝试播放自带静音
4. 按F2键可快速显示/隐藏控制面板
5. 需要进行托管(帮忙学习)的可以联系125431514
`; modal.appendChild(infoText); const tipLabel = document.createElement('div'); tipLabel.textContent = '脚本并不适用所有的网页,自行尝试使用! 感谢理解!'; tipLabel.style.textAlign = 'center'; tipLabel.style.marginTop = '10px'; tipLabel.style.fontSize = '14px'; tipLabel.style.color = '#666666'; tipLabel.style.fontWeight = 'bold'; modal.appendChild(tipLabel); return modal; } function toggleModal() { if (!modal) return; if (modal.style.display === 'none' || modal.style.display === '') { modal.style.display = 'block'; modal.style.opacity = '0'; modal.style.transform = 'translateY(-20px)'; setTimeout(() => { modal.style.opacity = '1'; modal.style.transform = 'translateY(0)'; }, 10); isClosed = false; } else { modal.style.opacity = '0'; modal.style.transform = 'translateY(-20px)'; setTimeout(() => { modal.style.display = 'none'; }, 300); isClosed = true; } } function init() { if (document.querySelector('#videoControlModal')) { return; } modal = createControlModal(); document.body.appendChild(modal); setPlaybackRate(currentRate); observeVideoChanges(); setInterval(checkAndPlayVideo, 1000); // Add F2 key listener document.addEventListener('keydown', function(e) { if (e.key === 'F2') { toggleModal(); } }); } if (document.readyState === 'complete' || document.readyState === 'interactive') { init(); } else { window.addEventListener('DOMContentLoaded', init); } })(); // 视频和音频倍速播放 function setMediaSpeed(speed) { const mediaElements = document.querySelectorAll('video, audio'); mediaElements.forEach(media => { media.playbackRate = speed; }); } // 文档和图书自动完成 function autoCompleteDocument() { // 这里需要根据具体平台的页面结构来实现文档和图书的自动完成 // 例如,假设文档内容在一个类名为 'document-content' 的元素中 const documentContent = document.querySelector('.document-content'); if (documentContent) { // 模拟用户滚动或点击操作 documentContent.scrollIntoView(); } } // 字体解密 function decryptFont() { // 这里需要根据具体平台的页面结构来实现字体解密 // 例如,假设字体加密的元素在一个类名为 'encrypted-font' 的元素中 const encryptedFont = document.querySelector('.encrypted-font'); if (encryptedFont) { // 解密逻辑 encryptedFont.style.fontFamily = 'Arial'; } } // 自动切换任务点 function autoSwitchTask() { // 这里需要根据具体平台的页面结构来实现任务点的自动切换 // 例如,假设任务点按钮在一个类名为 'task-button' 的按钮中 const taskButton = document.querySelector('.task-button'); if (taskButton) { taskButton.click(); } } // 自动登录 function autoLogin() { // 这里需要根据具体平台的页面结构来实现自动登录 // 例如,假设用户名和密码输入框分别在一个类名为 'username-input' 和 'password-input' 的输入框中 const usernameInput = document.querySelector('.username-input'); const passwordInput = document.querySelector('.password-input'); const loginButton = document.querySelector('.login-button'); if (usernameInput && passwordInput && loginButton) { usernameInput.value = 'your_username'; passwordInput.value = 'your_password'; loginButton.click(); } } // 根据平台执行相应的自动化任务 function executeTasks(platform) { const question = getQuestionContent(); const answer = getAnswerFromLocalBank(platform, question); if (answer) { fillAnswer(answer); autoSubmit(); } else { console.log('未找到答案'); } setMediaSpeed(2); // 设置视频和音频倍速为2倍 autoCompleteDocument(); decryptFont(); autoSwitchTask(); autoLogin(); } // 主函数 function main() { const platform = detectPlatform(); console.log(`当前平台: ${platform}`); executeTasks(platform); } // 执行主函数 main(); })();