您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
东软慕课+课后作业,借鉴了NeumoocBBQ,答案理论上都有。用谷歌浏览器!用谷歌浏览器!用谷歌浏览器!其他浏览器会有bug,不保证能正确运行。
// ==UserScript== // @name NeumoocStar,neumooc,东软慕课,东软学院,自动完成视频+课后作业 // @namespace http://tampermonkey.net/ // @version 1.3 // @description 东软慕课+课后作业,借鉴了NeumoocBBQ,答案理论上都有。用谷歌浏览器!用谷歌浏览器!用谷歌浏览器!其他浏览器会有bug,不保证能正确运行。 // @author Aisen // @match http://mooc.neumooc.com/course/play/* // @run-at document-end // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_download // @connect neu.aisencode.cn // @requier https://code.jquery.com/jquery-3.1.1.min.js // @license MIT // ==/UserScript== var window = unsafeWindow; var $ = unsafeWindow.jQuery; var setting = { time: 3000, // 默认响应速度为3秒,不建议小于3秒 answers: [], doTest: true, //做题,默认开启true,关闭为false doVideo: true, //看视频,默认开启true,关闭为false pass:80 //测试通过得分,如果小于80则会重做 }; $(function() { try{ main(); }catch (err){ window.location.reload(); } }) function main(){ logger('info', 'Init: Neumooc injected.'); pannel(); setNotice(); if (isVideo() && setting.doVideo) { var tryInitTime = 0; var initInterval = setInterval(function() { is_500(); if (isPlayerReady()) { clearInterval(initInterval); logger('info', 'Init: Success find video player.'); disableBlurPause(); waitVideo(); } else { tryInitTime++; logger('info', 'Init: Waiting video player.'); if ($(".fp-ui")) $(".fp-ui").click(); if (tryInitTime >= 6) { clearInterval(initInterval); logger('warn', 'Init: Can not find player, next outline.'); } } }, 1000); }else { checkTest(); } } function checkTest() { var seq = $(".seq_html"); if (setting.doTest && seq.length > 0) { logger('info', 'Init: doTest is true, will get getAnswers in nextTime') getAnswers(); }else { logger('info', 'doTest: dotest is closed or not a test, will go next Outline in ' + setting.time + 'ms'); //等待后点击下一节 setTimeout(function() { nextOutline() }, setting.time); } } // 获取答案 function getAnswers() { var courseId = $("#courseId").val(); var outlineId = $("#outlineId").val(); var testId = $('.seq_html:first').prop("id").substr(4); $.ajax({ type : "POST", url : getContextPath() + "/course/play/getOutlineResInfo", data : { resId : testId, resType : 2, outlineId : outlineId, courseId : courseId, }, async : false, error : function(request) { }, success : function(data) { if (data.resInfo && data.resInfo.testStatus == '1') { // 有测试数据返回 let testQuesList = data.resInfo.testQuesList let reg = /<a>([A-Z])/g; setting.answers = []; testQuesList.forEach(item=>{ let answer = []; while (true) { let arr = reg.exec(item.quesAnswer); if (arr === null){ break; }else{ answer.push(arr[1]) } } setting.answers.push(answer); }); $(".answers").html("该课程有答案。<a href=\"http://www.aisencode.cn\" target=\"_blank\">Aisen的博客(゜-゜)つロ 干杯~</a>"); logger('info', 'getAnswer: Success find answers form the server.'); doTest(); } else if (data.resInfo && data.resInfo.testStatus == '0') { // 测试不符合题目 showAlert("该测试暂无试题"); } else { showAlert("初始化测试出现错误"); } } }); } function setNotice() { GM_xmlhttpRequest({ method: "GET", url: "http://neu.aisencode.cn/notice.php", headers: { "Content-Type": "application/json" }, onload: function(res) { if (res.status == 200) { var data = JSON.parse(res.responseText)} $(".askMe").first().html(data.data) } }) } function is_500() { //<div class="error-text-2 bounceInDown animated"> // <img src="/resources/img/500_bg.png"> // </div> var err = $('.error-text-2'); if (err.length != 0) { logger('warn', 'is_500: the web is 500.'); window.location.reload(); } } // Logger function logger(type, msg) { $(".info").text(msg); msg = "[NsumoocStar] " + msg; switch (type) { case 'warn': console.warn(msg); break; case 'log': console.log(msg); break; case 'info': console.info(msg); break; } } //面板 function pannel() { GM_addStyle('.mypanel {position: fixed;overflow: hidden;top: 100px;right: 10px; width: 300px;height: 200px;background-color: rgba(251,114,153, 0.8);z-index: 999999;border-radius: 5%;}'); GM_addStyle('.answers, .askMe, .info {height: 70px;line-height: 70px;flote:left;padding-left: 10px;;border-bottom: rgba(0, 0, 0, .2) dashed 2px;font-size: 13px;color:#fff}'); GM_addStyle('.askMe {}'); GM_addStyle('.askMe a {color:#5DADE2 !important;font-size: 17px}'); var html = '<div class="mypanel">' html += '<div class="answers"><a href=\"http://www.aisencode.cn" target=\"_blank\">Aisen的博客(゜-゜)つロ 干杯~</a></div>' html += '<div class="askMe">' html += '<a href="http://wpa.qq.com/msgrd?v=3&uin=201826658&site=qq&menu=yes" target="_blank">脚本反馈、脚本定制</a>' html += '</div>' html += '<div class="info">info</div>' html += '</div>' $("body").append(html); } //测试是否通过 function testHasPassed() { var maxCorrectRate = Number($('#maxCorrectRate').text().slice(0, -1)); if (maxCorrectRate >= setting.pass) { return true; } else { return false; } } //测试 function doTest() { var seq = $(".seq_html"); seq.click(); setTimeout(function() { if (!testHasPassed()) { var answers = setting.answers; $(".answers").html("该课程有答案。<a href=\"http://www.aisencode.cn\" target=\"_blank\">Aisen的博客(゜-゜)つロ 干杯~</a>"); logger('info', 'doTest: will do test in ' + setting.time + 'ms'); setTimeout(function() { logger('info', 'doTest: test is doing.'); var btn = $(".btn-primary")[0]; btn.click(); var num = 0; $(".answers").text('本题答案为:' + answers[num]); var timer = setInterval(function() { is_500(); chooseAnswer(answers[num]); num++; var btnNext = $('.btn-primary:last'); btnNext.click() if (num == answers.length) { clearInterval(timer); var btnOk = $('.ui-dialog_art-autofocus'); var btnClose = $('.ui-dialog_art-button').children('button'); setTimeout(function() { btnOk.click(); }, setting.time); setTimeout(function() { btnClose.click(); logger('info', 'doTest: Finished, will go next Outline in ' + setting.time + 'ms'); //5s后点击下一节 setTimeout(function() { nextOutline() }, setting.time); }, setting.time + 1000); } else { $(".answers").text('本题答案为:' + answers[num]); } }, setting.time); }, setting.time); } else { logger('info', 'doTest: the test already passed, will go next Outline in ' + setting.time + 'ms'); //等待后点击下一节 setTimeout(function() { nextOutline() }, setting.time); } }, 2000); } //选择 function chooseAnswer(answers) { var btns = $("input[name='optionSelect']"); var btn; for (var i = 0; i < answers.length; i++) { try { switch (answers[i]) { case 'A': btn = btns[0]; break; case 'B': btn = btns[1]; break; case 'C': btn = btns[2]; break; case 'D': btn = btns[3]; break; case 'E': btn = btns[4]; break; case 'F': btn = btns[5]; break; case 'G': btn = btns[6]; break; case 'H': btn = btns[7]; break; } } catch (err) { btn = btns[0]; } btn.click(); } } //是否为视频 function isVideo() { if ($('.fp-player').length >= 1) { return true; } else { return false; } } // 视频是否加载完成 function isPlayerReady() { if (window.flowPlayerObj) { //console.log(window.flowPlayerObj); return window.flowPlayerObj } else { return false; } } //解锁暂停 function disableBlurPause() { logger('info', 'disableBlurPause: disableBlurPause service started.'); var disableBlurPauseTimer = setInterval(function() { try { window.flowPlayerObj.play(); } catch (e) { clearInterval(disableBlurPauseTimer); logger('warn', 'Can not find player.'); } }, 500) } //等待视频完成 function waitVideo() { logger('info', 'waitVideo: waitVideo service started.'); var nextInterval = setInterval(function() { //如果播放完成 if (isFinished()) { clearInterval(nextInterval); checkTest(); } else { logger('info', 'waitVideo: Waiting video finish.'); } }, 1000) } // 跟进播放进度 function isFinished() { return window.flowPlayerObj.finished; } // 跳转到下节课 function nextOutline() { var outlineId = $("input#outlineId").val(); var currentOutline = $('ul li.outl_' + outlineId); // 当前课程li var nextOutline; var next = currentOutline.nextAll(); if (next.length != 0) { nextOutline = $(next[0]); } else { var nextAll = currentOutline.parents('li.parent_li').nextAll(); if (nextAll.length != 0) { nextOutline = $($(nextAll[0]).children("ul").children('li')[0]); } } //var text = nextOutline.find('font').text(); var nextOutlineUrl = nextOutline.find("a:first").attr('href'); nextOutlineUrl ? window.location.href = nextOutlineUrl : logger('warn', 'Can not find next Outline or had finished.'); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址