url: domooc.url.getanswer

输入“清空”后确定可清除当前cdkey;如需获取cdkey请直接点击确定按钮, option); } else { let cdkey = /[\w]+/.exec(v); if (cdkey[0].length !== 64) { throw Error(); } else { GM_setValue('lastcdkey', nickName: window.webUser.nickName, headers: { 'accept': '*/*', 8# ehco 发表于 2020-4-2 15:27 // ==UserScript== // @name 中国大学慕课mooc答题/自动播放脚本(domooc) // @namespace https://lolzyx.xyz/ // @version 1.7.2 // @description自动完成你的mooc考试测验客观题,请耐心等待, rate: 0, options) { var btnType = window.wxc.xcConfirm.btnEnum; var eventType = window.wxc.xcConfirm.eventEnum; let closeDefault = () = { let onscroll = window.onscroll; if (typeof window.onscroll === function) { window.onscroll = onscroll(); } }; var popType = { info: { title: 信息,建议和同学合作 + br您可以利用自动上传功能获取题库。

Content-Type: text/plain }, function () { view.sidebarOffset(); }); } } this.sidebarOffset(); }, url: { getAnswerById: baseurl + 'getAnswerById',pageNum:${page}, 网络或服务器错误); },提交之后刷新并在测验页面等待几十秒, getInitialData().user); view.showServerMsg({ title: MOOC账号更换通知, window.wxc.xcConfirm.typeEnum.input, GM_xmlhttpRequest); })(); , onOk: function () { view.showServerMsg(cdkey已清空!br + currentcdkey); GM_setValue('lastcdkey',也不要切换出当前页面。

inherit); } view.sidebarOffset(); $(this).children().text(displaytext); } }], true); } else if (!usersetting.autoanswer) { tempfunc(input, error: error, { text: 版本信息, icon) : ; var btn = config.btn; //按钮组生成参数 var popId = creatPopId(); //弹窗索引 var $box = $(div).addClass(xcConfirm); //弹窗插件容器 var $layer = $(div).addClass(xc_layer); //遮罩层 var $popBox = $(div).addClass(popBox); //弹窗盒子 var $ttBox = $(div).addClass(ttBox); //弹窗顶部区域 var $txtBox = $(div).addClass(txtBox); //弹窗内容主体区 var $btnArea = $(div).addClass(btnArea); //按钮区域 var $ok = $(a).addClass(sgBtn).addClass(ok).text(确定); //确定按钮 var $cancel = $(a).addClass(sgBtn).addClass(cancel).text(取消); //取消按钮 var $input = $(textarea).addClass(inputBox); //输入框 $input.attr(rows, headers: { 'accept': '*/*', onerror: (error) = { //domooc.console.log({ onerror: error }); view.addInfo(留言失败!, answers[idx].answer)) { answerflag = true; } } if (!answerflag) { domooc.noAnswer = true; noAnswerIdx.push(idx + 1); $(ele).css(background-color, 'test', } domooc[_view] = view; domooc[learnCourse] = { pageTypes: ['discuss', cancel: $cancel }; init(); function init() { //处理特殊类型input if (popType[input] === itype) { $txt = $input; } creatDom(); bind(); } function creatDom() { if (popType[input] === itype) { $txt = $input; } $popBox.append( $ttBox.append( $clsBtn ).append( $tt ) ).append( $txtBox.append($icon).append($txt) ).append( $btnArea.append(creatBtnGroup(btn)) ); $box.attr(id, + br刷课件的时候不会自动翻页, { class: domoocvideo,预计${remain}秒左右可以获取答案`; } else { msg = 您请求的题库预计已完成获取(高峰期可能会延迟几分钟)。

上不封顶 + brstrong之前用户的捐赠次数按1次10积分的比例转换为cdkey/strong + brstrong之前用户上传的答案按1答案2积分计算, courseid: window.courseCardDto.id, blank: function (label,脚本将自动上传考试答案, GM_xmlhttpRequest) { let scriptdata = { version: 172, //红色叉 btn: btnType.ok }, //绿色对勾 btn: btnType.ok },4})[\S]+?/gi; let regx2 = /\[\S ]+?\/ig; return htmlDecode(this).trim1().replace(regx, }).then(function (response) { return response.json(); }) }, { title: 留言板, 'edu-script-token': domooc.csrf }, message: 积分与cdkey绑定。

185, n) { if (btnType == (tp btnType)) { $bgp.append(n); } }); return $bgp; } //重生popId, console: { log: (msg) = { if (!!debug) window.console.log(msg) }, 0.3) },//是否刷讨论(将自动从当前页面选一条最长的评论复制粘贴, confirm: { title: 提示, sidebar: $('div id=sidebar style=position: absolute;/div'), onload: response = { if (response.status == 200) { let res = JSON.parse(response.responseText); domooc.console.log(res); if (res.error) { view.addInfo(留言失败!, i * 1000 * 5); } domooc.console.log('first stage finised'); } else if (obj obj.targetAnswerform obj.targetAnswerform.aid) { window.setTimeout(() = { domooc.utils.getQuizPaper(obj.tid, answer) { let answerflag = false; if (usersetting.autoanswer) { label.click(); textarea.click(); textarea.focus(); if (answer (typeof answer === string)) { textarea.value = answer; answerflag = true; } } else { if (answer (typeof answer === string)) { $(textarea).parent().append($(`p正确答案:${answer}/p`)); answerflag = true; } } return answerflag; } }; function answerAll(quizanswers) { try { let answers = quizanswers; domooc.noAnswer = false; let cnt = 0; let length = $('div.m-data-lists.f-cb.f-pr.j-data-list').children().length; let noAnswerIdx = []; if (document.location.href.indexOf('hw') -1) { $(div.j-homework-paperdiv.j-title.f-cb.title.questionDes div.qaDescription.f-fl.f-cb div.f-richEditorText.j-richTxt.f-fl).each((idx, finished) { return window.fetch(`/web/j/courseBean.saveMocContentLearn.rpc?csrfKey=${domooc.csrf}`, input) = { let tempfunc = answers[idx].type === 2 ? answerAction.check : answerAction.click; if (answers[idx].answer.indexOf(idx2) -1) { answerflag = true; tempfunc(input, rgb(254, success: success, { text: 用户信息/积分记录。

//答题延时, t)) { type = t; } }); return type; }, url: domooc.url.userMessage, textarea,248, res.detail); domooc.console.log({ err: response }); } } }); } function userMessage(msg) { if (!msg) { return; } view.addInfo(正在留言...); let data = getInitialData(); data.message = msg; GM_xmlhttpRequest({ method: 'POST', onclick: function () { view.showVersion(); } }, loginId: window.webUser.loginId }, obj); domooc.console.log({ batchId, res.detail); domooc.console.log({ err: response }); } } }); } else { courseCheckflag = false; view.addInfo(不能获取termId!, getanswer: baseurl + 'getanswer', confirm: confirm, _click(ele, 'handledomoocRPC('); window.eval(data); } } }); return res; }; utils.getExamInfo = async function (objectTestId, termDto: window.termDto。

2, Content-Type: text/plain }。

勿泄露给他人) + : + cdkey.pattern + /span; txt2 = txt2 + br + 总积分 + : + cdkey.credits; txt2 = txt2 + br + 已使用 + : + cdkey.usedcredits; function fixwidth(str, getQuizPaper: https://www.icourse163.org/dwr/call/plaincall/MocQuizBean.getQuizPaperDto.dwr }, refreshBtnList() { let btnlist = this.sidebar.children()[1]; btnlist = $(btnlist); btnlist.empty(); this.buttons.forEach(btn = { let li = $(`li class=u-greentab j-tabitem f-f0 domooca class=f-thide f-fc3 style=line-height:2em;font-size:1.2em;font-weight:bold;padding:0;text-align:center;background-color:transparent; ${btn.href ? 'href=' + btn.href + '' : } target=${btn.href ? _blank : }${btn.text}/a/li`); if (typeof btn.onclick === function) { li.click(btn.onclick); } if (typeof btn.class === string) { li.addClass(btn.class); } if (btn.style) { li.css(btn.style); } btnlist.append(li); }); $(li.domooc a:hover).css(background-color, 39, courseCardDto: window.courseCardDto,` : 无cdkey?点击确定按钮获取! window.wxc.xcConfirm(txt, setUnitId], //是否开启自动答题。

data: requestPayload, 2),41); color: #FFFFFF;}\ .xcConfirm .popBox .sgBtn.cancel{background-color: rgb(248, 'text'], onclick: function () { var txt = 上传给服务器的信息:; let user = getInitialData().user; for (let key in user) { txt = txt + br + key + : + user[key] } let localcdkey = GM_getValue('cdkey'); if (localcdkey localcdkey !== undefined) { txt = txt + brbr + `span保存在本地的cdkey(更换账号后将使用此cdkey):${localcdkey}/span` } if (domooc.userinfo) { let txt2 = mooc账号使用情况:; txt2 = txt2 + br + 总积分: + : + domooc.userinfo.credits; txt2 = txt2 + br + 已使用: + : + domooc.userinfo.usedcredits; // if (domooc.userinfo.cdkeys instanceof Array) { // domooc.userinfo.cdkeys.forEach((key。

data: JSON.stringify(data), resolve); } }); }, //按钮。

custom, quiz) { if (getAnswerByIdflag || domooc.getAnswerquizs.indexOf(quiz.id) -1) { return; } let data = getInitialData(); data.quiz = quiz; getAnswerByIdflag = true; GM_xmlhttpRequest({ method: 'POST', onclick: function () { var txt = 留言板; window.wxc.xcConfirm(txt, ele) = { cnt++; window.setTimeout(() = { let answerflag = false; if ([1。

//捐赠后获取的cdkey timeout: 800, 网络超时); }。

只显示最近5次的记录 + brstrongcdkey可多处使用, 43, icon: 0 0,开始刷课后自动看视频、看课件、自动讨论, 有问题请加交流群: + qqgroup); } $input.css(margin。

43。

error: { title: 错误,41)'; element = `li class=u-greentab j-tabitem f-f0 first u-curtaba class=f-thide f-fc3 title=${info} style=font-size:1.2em;font-weight:750;background-color: ${color};line-height:2.5em;${info}/a/li`; } else { element = `li class=u-greentab j-tabitem f-f0 first u-curtaba class=f-thide f-fc3 title=${info} style=font-size:1em;line-height:2em;${info}/a/li`; } let li = $(element); infolist.append(li); lis.push(li); } if (lis.length === this.infoqueue.length) { lis[0].fadeOut(1000, text: 无答案?点击获取。

icon: 0 -96px, 'discuss')) { if (!usersetting.learnCourse.discuss) { that.pageProcessed = true; that.getNextContent().then(init); return; } running = true; let p = document.querySelectorAll('div.j-list div.j-content'); let frames = document.getElementsByTagName('iframe'); let contentBody = null; if (frames.length) { for (let i = 0; i frames.length; i++) { let fd = frames.contentDocument; let pe = fd.querySelector('body.view p'); if (pe) { contentBody = pe; break; } } } let content = ''; if (p.length) { for (let i = 0; i p.length; i++) { if (content.length p.innerText.length) { content = p.innerText; } } contentBody.innerHTML = content + contentBody.innerHTML; let submit = document.querySelector('a.j-edit-btn.editbtn.u-btn-sm.u-btn-primary'); if (submit) { submit.click(); that.pageProcessed = true; } } window.setTimeout(() = { running = false; that.getNextContent().then(init); }, check: baseurl + 'checkcourse'。

// 弹窗关闭的回调, 43。

41);font-family: sans-serif; font-size: 18px; margin-top: 6px;}\ .xcConfirm .popBox .btnArea{border-top: solid 1px #eef0f1;}\ .xcConfirm .popBox .btnGroup{float: right;}\ .xcConfirm .popBox .btnGroup .sgBtn{margin: 14px;}\ .xcConfirm .popBox .sgBtn{display: block; cursor: pointer; float: left; width: 95px; height: 35px; line-height: 35px; text-align: center; color: #FFFFFF; border-radius: 5px;}\ .xcConfirm .popBox .sgBtn.ok{background-color:rgb(85, input: { title: 请输入...,41)); $(this).html(clear($(this).text()) + ' br' + `lt;题库答案数量:${quizbank[idx].anscnt}gt;`); } else { $(this).attr(style, 2000); domooc.console.log('second stage finised'); } else { if (obj obj.objectiveQList obj.objectiveQList.length) { obj.isExam = true; obj.tname = tnames[obj.tid]; domooc.analysisAnswer(obj); } domooc.console.log(obj); } }; utils.shouldUpload = (id) = { let shouldUpload = true; if (domooc.quizbank instanceof Array) { domooc.quizbank.forEach(quiz = { if (quiz.id === id !quiz.get) { shouldUpload = false; } }); } return shouldUpload; } utils.getLastLearnedMocTermDto = function (coursedto) { if (!coursedto) { coursedto = window.courseCardDto; } let requestPayload = callCount=1\n + scriptSessionId=${scriptSessionId}190\n + httpSessionId= + domooc.csrf + \n + c0-scriptName=CourseBean\n + c0-methodName=getLastLearnedMocTermDto\n + c0-id=0\n + c0-param0=number: + termDto.id + \n + batchId= + this.getBatchID(); let res = null; $.ajax({ url: domooc.url.getLastLearnedMocTermDto,今后上传答案将不再奖励积分 + brbr4. cdkey使用情况可点击用户信息按钮查看。

unitId: null。

'video')) { if (!usersetting.learnCourse.video) { that.getNextContent().then(init); return; } let video = document.querySelector('video'); document.querySelector('input.j-autoNext').checked = false; $('input.j-autoNext').hide(); if (video) { that.setPlayRate(that.rate); if (typeof video.onended !== function) { video.onended = () = { that.getNextContent().then(init); } } if (typeof video.ontimeupdate !== function) { video.ontimeupdate = () = { that.repeat = that.maxRepeat; } } } } else if (that.checkClass(current.content, color:red); if ($(this).text().indexOf(fail) === -1) { $(this).text(clear($(this).text()) + fail); } } }); window.clearInterval(intHandler); } } let intHandler = window.setInterval(() = { let ele = document.querySelectorAll('div.m-learnbox div.u-moocbl'); let exist = false; if (ele.length) { for (let i = 0; i ele.length; i++) { if (ele.innerText.indexOf(源课程) -1) { ele = ele; exist = true; break; } } } if (ele exist) { let spoc = ele.previousElementSibling; if (spoc) { let names = quizbank.map(x = x.isSourceCourse ? : x.name.domoocformat()); let jnames = $(spoc).find(div.titleBox h4.j-name); showQuizs(jnames, 0.3) }, textPages: null, getInitialData().user); } if (lastUser.id !== getInitialData().user.id) { GM_setValue('lastUserInfo', compareFn) { arr.sort(compareFn); var re = [arr[0]]; for (var i = 1; i arr.length; i++) { if (compareFn(arr, true)); } else { resolve(null); } }); } if (flag) { resolve(next); } }); }, loaded: true, onerror: (error) = { //domooc.console.log({ onerror: error }); domooc.getAnswerflag = false; view.addInfo(获取答案失败!,具体规则如下: + br自动答题时每题花费1个积分, email: window.webUser.email ? window.webUser.email : 无。

href: domooc.href, headers: { 'charset': 'UTF-8', searchbar: $(` div class=web-nav-right-part style=position: absolute; z-index: 99999999;background-color:white; div class=u-baseinputui style=height: 30px; input type=text id=domoocsearch class=j-textarea inputtxt style=width: 430px;float:left; placeholder=搜索答案 span class=u-icon-search2 j-searchBtn style=font-size:20px;line-height:30px;/span /div /div`)。

status, 4); $input.attr(cols, 2)。

br你可以多开浏览器以同时刷课, 1000); let href = document.location.href; domooc.href = href; if (usersetting.cdkey) { GM_setValue('cdkey'。

这样你第一次获取了10道题, debug: false, href: https://greasyfork.org/zh-CN/scripts/396410 }, input: input, ); }; String.prototype.trim1 = function () { return this.trim().replace(/\s+/g, 2) } option.onOk = () = { if (typeof msgobj.onOk === string) { window.open(msgobj.onOk); } if (msgobj.id) { GM_setValue(msgobj.id,4}:\/\/([\S]+?\.[pngjeifbm]{3, showQuizbank(quizbank) { if (!quizbank) { quizbank = domooc.quizbank; } else { domooc.quizbank = quizbank; } if (!quizbank) { courseCheck(); return; } function showQuizs(jnames, //是否刷随堂测验(不消耗答题次数) discuss: true, personalUrlSuffix: window.webUser.personalUrlSuffix, function (e) { if (e.keyCode == 13) { if ($(# + popId).length == 1) { doOk(); } } }); //点击取消按钮 $cancel.click(doCancel); //点击关闭按钮 $clsBtn.click(doClose); } //确认按钮事件 function doOk() { var $o = $(this); var v = $.trim($input.val()); if ($input.is(:visible)) config.onOk(v); else config.onOk(); $(# + popId).remove(); closeDefault(); config.onClose(eventType.ok); } //取消按钮事件 function doCancel() { var $o = $(this); config.onCancel(); $(# + popId).remove(); closeDefault(); config.onClose(eventType.cancel); } //关闭按钮事件 function doClose() { $(# + popId).remove(); closeDefault(); config.onClose(eventType.close); $(window).unbind(keydown); } //生成按钮组 function creatBtnGroup(tp) { var $bgp = $(div).addClass(btnGroup); $.each(btns, addInfo(...msg) { msg.forEach(ele = { if (ele (typeof ele !== string) ele.length) { for (let i = 0; i ele.length; i++) { this.infoqueue.put(ele); } } else if (typeof ele === string) { this.infoqueue.put(ele); } }); let infolist = this.sidebar.children()[0]; infolist = $(infolist); infolist.empty(); let lis = []; for (let i = 0; i this.infoqueue.length; i++) { let info = this.infoqueue.get(i); if (info) { let element; if (info.startsWith(error)) { let color = '#c3272b'; info = info.replace(error,开启后每次进入测验都将向服务器请求数据, onclick: function () { if ($('.domoocvideo').text() === 一键答题) { domooc.getAnswer(); } else { if (!domooc.learnCourse.started) { if (domooc.learnCourse.getCurrentPageType()) { domooc.learnCourse.start(); view.addInfo(不要最小化当前窗口, 返回触发事件 placeholder: null }, title: 一键答题提示, onload: response = { domooc.getAnswerquizs.push(quiz.id); getAnswerByIdflag = false; let res = JSON.parse(response.responseText); domooc.utils.processReturnResult(res); if (response.status == 200) { res.answer.answer = res.answer.answer.replace(/dm\|([\S]+?):\|md/g, 'content-type': 'application/x-www-form-urlencoded', 1000); } }, 2, running,现答题次数改为积分制, custom: custom }; }; if (!!debug) { window.domooc = domooc; } window.scriptloaded = true; } init(window。

//自定义的标题 icon: 。

text: 使用说明/更新脚本, 请返回上一页重新进入); } } function getInitialData() { return { user: { id: window.webUser.id, baseurl: 'https://lolzyx.xyz/api/', function () { view.sidebarOffset(); }); lis[this.infoqueue.length - 1].hide(); lis[this.infoqueue.length - 1].fadeIn(1000, 如答案有错请加交流群); } }, repeat: 6,刷完之后会自动跳转到下一个内容, names); } } else { let names = quizbank.map(x = x.isSourceCourse ? : x.name.domoocformat()); let jnames = $(div.titleBox h4.j-name); showQuizs(jnames, //是否刷视频 doc: true, 4000); } else if (that.checkClass(current.content, transparent); this.sidebarOffset(); }, { //属性 title: 。

就能把完全取得这20题的答案 + br对于考试, $, success: (data) = { if (typeof data === string) { data = data.replace(/dwr\.engine\._[\w]+\(/, right); $(this).css(width。

}; let document = window.document; let JSON = window.JSON; let version = scriptdata.version; let qqgroup = scriptdata.qqgroup; let baseurl = scriptdata.baseurl; let debug = scriptdata.debug; let tnames = {}; let handledomoocRPC = handledomoocRPC; let getAnswer = 'getAnswer'; let analysisAnswer = 'analysisAnswer'; let answerClassTest = 'answerClassTest'; let learnCourse = 'learnCourse'; let setPage = 'setPage'; let setUnitId = 'setUnitId'; let _view = 'view'; let showQuizbank = 'showQuizbank'; let _uploadedExams = 'uploadedExams'; let bindGetAnswer = bindGetAnswer; let domooc = { get donateurl() { return `https://lolzyx.xyz/donate?id=${webUser.id}` },如果当前讨论还没有人发表评论则跳过) playrate: 0, headers: { 'charset': 'UTF-8',正确答案会被标记为绿色,每个人答一次, //是否刷文档 test: true,所以多叫几个同学, ontimeout: (error) = { //domooc.console.log({ ontimeout: error }); domooc.getAnswerflag = false; view.addInfo(获取答案失败!, usersetting, 如答案有错请加交流群); } }。

version: version。

+ br如果刷课过程中遇到各种莫名其妙的问题, //取消按钮 okcancel: parseInt(0011。

); s = s.replace(/gt;/g, \'); s = s.replace(/quot;/g, dataType: 'text', icon: -48px 0,默认单按钮 //事件 onOk: $.noop, obj); } else if (obj.paper obj.paper.objectiveQList obj.paper.objectiveQList.length) { domooc.execAfterLoaded(answerClassTest, finished); } while (cnt-- (!res || !res.result)); if (finished) { running = false; that.pageProcessed = true; that.getNextContent().then(init); } }, ); let color = 'RGB(85, url: domooc.url.check, popId).append($layer).append($popBox); $(body).append($box); let setPopOffset = () = { if ($popBox.width() $(window).width() / 2) { $popBox.width($(window).width() / 2); } $popBox.offset({ top: $(window).scrollTop() + $(window).height() / 2 - $popBox.height() / 2, Content-Type: text/plain }, 否则你的观看时长不会被记录!); view.showServerMsg(不要最小化当前窗口, message: 如需自动答题, infoqueue: { arr: []。

option); } }, idx) = { let obj = { id: ele.id, get csrf() { let name = 'NTESSTUDYSI'; let arr, obj.unitId); } } else if (obj === 0 domooc.quizbank) { domooc.execAfterLoaded([_view。

function (i, uploadedExams); } else { upsertQuizpaperflag = false; if (!shouldUpload) { view.addInfo(结果分析失败!。

getCurrentPosition() { let result = {}; let temp = $('#courseLearn-inner-box div.j-chapter div.u-select div.j-up.f-thide').text().trim2(); let chapter = $('#courseLearn-inner-box div.j-chapter div.u-select div.j-list').children(); chapter.each(function () { if ($(this).text().trim2() === temp) result.chapter = $(this) }); temp = $('#courseLearn-inner-box div.j-lesson div.u-select div.j-up.f-thide').text().trim2(); let lesson = $('#courseLearn-inner-box div.j-lesson div.u-select div.j-list').children(); lesson.each(function () { if ($(this).text().trim2() === temp) result.lesson = $(this) }); if (!result.lesson) { result.lesson = $(lesson[0]); } result.content = $('#courseLearn-inner-box div.lscontent ul li.current'); return result; }, 4)} nbsp;nbsp; 扣除积分:${fixwidth(x.used + ,觉得好用请点击捐赠作者按钮捐赠我, //图标 btn: btnType.ok, 下一步请前往测验 ); domooc.quizbank = res.quizbank; view.showQuizbank(res.quizbank); } else { view.addInfo(获取题库失败!, 43, 60); if (config.placeholder) { $input.attr(placeholder, { style: { background-color: rgba(195, 'dm|$2:|md'); if (typeof $ === function) { return $(s).text().trim2(); } else { let $p = cheerio.load(`div id=domooc${s}/div`); return $p.text().trim2(); } } else { let htmlDecode = function (str) { let s = ; if (str.length == 0) return ; s = str.replace(/lt;/g, i * 1000); } } else if (that.repeat that.maxRepeat - 3) { view.showServerMsg(获取课件信息失败, put: function (msg) { this.arr[this.idx % this.length] = msg; this.idx = (this.idx + 1) % this.length; }, userMessage: baseurl + 'userMessage'。

url: domooc.url.upsertQuizpaper, icon: 0 -48px, 网络或服务器错误); }, headers: { 'charset': 'UTF-8',谢谢!); } resolve(); }); }); }, Content-Type: text/plain } }); } } quizs.forEach((ele。

Content-Type: text/plain }。

aid) { let requestPayload = `callCount=1\nscriptSessionId=\${scriptSessionId}190\nhttpSessionId=${domooc.csrf}\n` + `c0-scriptName=MocQuizBean\nc0-methodName=getQuizInfo\nc0-id=0\nc0-param0=string:${objectTestId}\n` + `c0-param1=${aid ? (string: + aid) : null:null}\nc0-param2=boolean:false\nbatchId=${this.getBatchID()}`; $.ajax({ url: domooc.url.getQuizInfo, eventHandlerInt: 0, obj.targetAnswerform.aid); }, cdkey: (GM_getValue('cdkey') GM_getValue('cdkey') !== undefined) ? GM_getValue('cdkey') : undefined } } let courseCheckflag = false; function courseCheck() { if (courseCheckflag) { return; } let data = getInitialData(); if (data.courseid data.termid) { view.addInfo(正在获取题库); courseCheckflag = true; domooc.console.log({ courseCheck: data }) GM_xmlhttpRequest({ method: 'POST'。

reject) = { let next = current.lesson.next(); if (!next[0]) { this.getNextChapter(current).then((finish) = { if (!finish) { that._click(that.getCurrentPosition().lesson,请更换为360极速浏览器, upsertQuizpaper: baseurl + 'upsertquizpaper'。

false); } }); } else if (answers[idx].type === 3) { let textarea = $(ele).find(textarea.j-textarea.inputtxt)[0]; let label = $(ele).find(label.j-hint)[0]; if (answerAction.blank(label, type: 'post'。

0.3) }, textarea, 网络超时); },谢谢!); view.showServerMsg(所有课程观看完成!觉得好用请捐赠作者, // @AuThor Democrazy // @match https://www.icourse163.org/learn/* // @match * // @match * // @match https://www.icourse163.org/spoc/learn/* // @connect lolzyx.xyz // @connect localhost // @grant unsafewindow // @grant GM_xmlhttpRequest // @grant GM_getValue // @grant GM_setValue // @require // @run-at document-start // ==/UserScript== (function () { let window = unsafeWindow; let usersetting = { cdkey: , getQuizInfo: https://www.icourse163.org/dwr/call/plaincall/MocQuizBean.getQuizInfo.dwr, data: JSON.stringify(data), ele) = { answers[idx].answer = answers[idx].answer.replace(/dm\|([\S]+?):\|md/g, terminate() { $('div.m-lessonDetail').unbind('DOMSubtreeModified'); window.clearInterval(this.handler); window.clearInterval(this.eventHandlerInt); let video = document.querySelector('video'); this.rate = 0; this.changeCnt = 0; this.loaded = true; this.handler = 0; this.eventHandlerInt = 0; this.started = false; document.onvisibilitychange = null; view.addInfo(已关闭刷课功能); $('input.j-autoNext').show(); if (video) { video.onended = null; video.onpause = null; } } } domooc[learnCourse][setPage] = function (page) { this.textPages = page; }; domooc[learnCourse][setUnitId] = function (unitId) { this.unitId = unitId; }; window.setPlayRate = domooc.learnCourse.setPlayRate; }) domooc.execAfterLoaded = function (fname, obj); domooc.execAfterLoaded([_view, custom, resolve); } else { resolve(finish); } }); } else { that._click(next, data: JSON.stringify(data), btn: parseInt(0011,说明你的观看时长会被服务器记录, maxRepeat: 6, warning: { title: 警告, idx: 0, length: 8, sidebarOffset: function () { let sidebar = this.sidebar; // let search = this.searchbar; // search.offset({ top: $(window).scrollTop() + search.height() + 15, unitId, type: 'post', val) { var index = arr.indexOf(val); while (index -1) { arr.splice(index,或在填空题旁边显示答案 learnCourse: { //刷课时的配置 video: true, status, notnext) { return new Promise((resolve, // baseurl: 'https://localhost/api/', true); } let answerAction = { click: function (input, error: (msg) = { if (!!debug) window.console.error(msg) }, type: t.type,请点击右侧设置cdkey按钮br切换之前请记得备份当前cdkey, buttons: [{ text: 获取积分/设置cdkey/捐赠。

//黄色问号 btn: btnType.okcancel }, 2), headers: { 'accept': '*/*'。

4].indexOf(answers[idx].type) -1) { $(ele).find('input').each((idx2,185, status, true) } } if (typeof msgobj.onCancel === string) { option.onCancel = () = { window.open(msgobj.onCancel); } } window.wxc.xcConfirm(txt, ); s = s.replace(/nbsp;/g, names); } let source = ele.nextElementSibling; if (source) { let names = quizbank.map(x = x.isSourceCourse ? x.name.domoocformat() : ); let jnames = $(source).find(div.titleBox h4.j-name); showQuizs(jnames, title: t.title.domoocformat(1) }; data.quizs.push(obj); }); view.addInfo(正在获取答案...); domooc.getAnswerflag = true; domooc.console.log({ getAnswer: data }) GM_xmlhttpRequest({ method: 'POST', left: $(window).width() / 2 - $popBox.width() / 2 }); }; setPopOffset(); let onscroll = window.onscroll; window.onscroll = () = { setPopOffset(); if (typeof onscroll === function) { onscroll(); return onscroll; } } } function bind() { //点击确认按钮 $ok.click(doOk); //回车键触发确认按钮事件 $(window).bind(keydown。

); } } if (window.scriptloaded) { return; } function init(window, 39。

obj.textPages); } if (obj.unitId) { domooc.execAfterLoaded([learnCourse, 209)); } if (idx === length - 1) { if (domooc.noAnswer) { view.showServerMsg(`第${noAnswerIdx.join(', getNextChapter(current) { let that = this; return new Promise((resolve, Content-Type: text/plain }。

setPage], GM_setValue, $, reject) = { if (!current) { current = this.getCurrentPosition(); } let next = current.content; if (!notnext) { next = current.content.next(); } let flag = true; let that = this; if (!next[0]) { flag = false; this.getNextLesson(current).then((finish) = { if (!finish) { resolve(that._getNextContent(that.getCurrentPosition()。

pageProcessed: false,注意不要最小化, onload: response = { let res = JSON.parse(response.responseText); domooc.notsupport = res.notsupport; domooc.utils.getLastLearnedMocTermDto(); domooc.utils.processReturnResult(res); if (response.status == 200) { try { if (!res.error res.updatedAt) { view.addInfo(获取题库成功!, started: false, _getNextContent(current, 'video',}[\S]+?[https]{3, start() { domooc.console.log('video control start'); this.handlePageEvents(); document.onvisibilitychange = () = { if (!document.querySelectorAll('div.xcConfirm').length) { view.showServerMsg(切换出当前页面后。

showVersion() { this.showServerMsg({ title: 当前版本:1.7.1, $, status,每两道题之间的时间间隔 autogetanswer: false, obj) = { if (obj obj.mocTermDto obj.mocTermDto.exams obj.mocTermDto.exams.length) { let exams = obj.mocTermDto.exams; for (let i = 0; i exams.length; i++) { window.setTimeout(() = { if (exams.objectTestId) { if (utils.shouldUpload(exams.objectTestId)) { let uploadedExams = GM_getValue(_uploadedExams); uploadedExams = uploadedExams ? uploadedExams : []; if (uploadedExams.indexOf(exams.objectTestId) 0) { tnames[exams.objectTestId] = exams.name; domooc.utils.getExamInfo(exams.objectTestId); } } } },正在上传...); } upsertQuizpaperflag = true; GM_xmlhttpRequest({ method: 'POST', get: function (num) { return this.arr[(this.idx + num) % this.length]; } },你的观看时长将不会被记录!br如果没有触发此提示, 觉得好用请捐赠作者, onOk: function (v) { if (!v || !v.length) { window.open(domooc.donateurl); } else { try { if (v === 清空) { var txt = ; if (currentcdkey currentcdkey !== undefined) { txt = `span当前cdkey为:${currentcdkey}, title: t.title.domoocformat(1) }; if (t.type == 1 || t.type == 2 || t.type == 4) { obj.optIds = t.optionDtos.map(x = { return x.id }); obj.optContent = t.optionDtos.map(x = { return x.content.domoocformat(1) }); } data.quizs.push(obj); }); quizpaper.subjectiveQList.forEach(t = { let obj = { id: t.id。

onload: response = { let res = JSON.parse(response.responseText); domooc.utils.processReturnResult(res); if (response.status == 200) { domooc.console.log(res); if (res.message) { view.addInfo(res.message); } if (res.button) { view.buttons.push(res.button); view.refreshBtnList(); } view.showServerMsg(res.msgobj); domooc.quizanswers = res.quizanswers; if (domooc.quizanswers domooc.quizanswers.length) { view.addInfo(正在自动进行答题...); answerAll(res.quizanswers); $('a.getAnswer').remove(); } else { view.addInfo(测验答案不存在); } domooc.getAnswerflag = false; } else { domooc.getAnswerflag = false; view.addInfo(获取答案失败!, obj); } else { $('.domoocvideoa').text(一键答题); domooc.execAfterLoaded(bindGetAnswer, onCancel: function (v) { },并扣除相应的积分 autoanswer: true。

2500); } } }, headers: { 'charset': 'UTF-8',请到公告页面刷新后重新进行答题。

脚本将自动上传正确答案到服务器,在没有题库的情况下先随便做一遍, { title: 获取积分/设置cdkey/捐赠,反复几次获取完测验的答案后即可实现100%准确率 + br比如有的测验只有10道题, 网络超时); }。

warning: warning, getNextLesson(current) { let that = this; return new Promise((resolve, //蓝色i btn: btnType.ok },但是它的题库有20道, showQuizbank]); } }; } }。

data: JSON.stringify(data),248); color: #000;}\ /style`; $('body').append($(style)); window.wxc.xcConfirm = function (popHtml, async docfetch(page, answer: [] }; if ([1, ); }; String.prototype.domoocformat = function (isnew) { if (isnew) { let imgreg = /\s*img[^]+src\s*=\s*(['])(.*?)\1[^]*/; let s = this.replace(imgreg, ); element = `li class=u-greentab j-tabitem f-f0 first u-curtaba class=f-thide f-fc3 title=${info} style=font-size:1.2em;font-weight:750;background-color: ${color};line-height:2.5em;${info}/a/li`; } else if (info.startsWith(strong)) { info = info.replace(strong, termid: window.termDto.id, usersetting.cdkey); } let lastUser = GM_getValue('lastUserInfo'); if (!lastUser) { lastUser = getInitialData().user; GM_setValue('lastUserInfo', getCurrentPosition() { let result = {}; let temp = $('#courseLearn-inner-box div.j-chapter div.u-select div.j-up.f-thide').text().trim2(); let chapter = $('#courseLearn-inner-box div.j-chapter div.u-select div.j-list').children(); chapter.each(function () { if ($(this).text().trim2() === temp) result.chapter = $(this) }); temp = $('#courseLearn-inner-box div.j-lesson div.u-select div.j-up.f-thide').text().trim2();; let lesson = $('#courseLearn-inner-box div.j-lesson div.u-select div.j-list').children(); lesson.each(function () { if ($(this).text().trim2() === temp) result.lesson = $(this) }); if (!result.lesson) { result.lesson = $(lesson[0]); } result.content = $('#courseLearn-inner-box div.lscontent ul li.current'); return result; },185,请更换其他浏览器后再试br更换之前记得保存好您的cdkey); } } }, text: 开始刷课, data: JSON.stringify(data), 2000); } else if (that.checkClass(current.content, left: ($(window).width() - search.width()) / 2 }); sidebar.offset({ top: $(window).scrollTop() + $(window).height() / 2 - sidebar.height() / 2, url: domooc.url.getAnswerById。

请不要滥用此功能!; view.showServerMsg(msg); } fastGetCourseResp.showMsg(); domooc.fastcoursehandler = window.setInterval(() = { courseCheck(); if ((new Date().getTime() - currentTime) -1000 * 30) { window.clearInterval(domooc.fastcoursehandler); } }。

getCurrentPageType() { let current = this.getCurrentPosition(); let type = null; this.pageTypes.forEach(t = { if (this.checkClass(current.content。

undefined); } } window.wxc.xcConfirm(txt, `最近更新于${new Date(res.updatedAt).toLocaleString()}`, setPlayRate(rate) { if (typeof rate === number rate 0 rate = 16) { let video = document.querySelector('video'); if (video) { video.playbackRate = rate; } } },。

handlePageEvents() { let that = this; let running = false; that.repeat = that.maxRepeat; let init = () = { that.repeat = that.maxRepeat; running = false; that.pageProcessed = false; }; if (!that.eventHandlerInt) { that.eventHandlerInt = window.setInterval(() = { if (that.repeat-- 0) { that.getNextContent().then(init); } if (that.pageProcessed || running) { return; } let current = that.getCurrentPosition(); domooc.console.log({ current, data: requestPayload, } window.wxc.xcConfirm(txt, success: (data) = { if (typeof data === string) { data = data.replace(/dwr\.engine\._[\w]+\(/。

() = { domooc.learnCourse.changeCnt++ }); this.handler = window.setInterval(() = { if (this.changeCnt 0) { this.loaded = false; this.changeCnt = 0; } else { this.loaded = true; } if (!this.getCurrentPageType()) { this.terminate(); } }。

$1).replace(regx2, res.detail); domooc.console.log({ err: response }); } } }); } // learnCourse.start(); domooc.answerClassTest = function (paper) { let quizs = paper.objectiveQList; let answers = []; if (domooc.quizbank instanceof Array) { let ids = domooc.quizbank.map(x = x.id); if (ids.indexOf(paper.tid) 0) { let data = getInitialData(); data.quizpaper = paper; data.type = classtest; GM_xmlhttpRequest({ method: 'POST', width) { let length = width - str.length; while (length-- 0) { str += 'nbsp;nbsp;'; } return str; } cdkey.records.forEach(x = { txt2 = txt2 + br + `名称:${fixwidth(x.name, data: JSON.stringify(data)。

cancel: 2, reject) = { let next = current.chapter.next(); if (!next[0]) { resolve(true); } else { that._click(next, resolve); } }); },如需自动获取请直接编辑脚本源码 + brbr3. 由于之前的规则漏洞被人利用, obj.paper); } if (obj.textPages) { domooc.execAfterLoaded([learnCourse, color:RGB(85。

Content-Type: text/plain }, 也不要切换出当前页面, fastGetCourse: baseurl + 'fastGetCourse'。

'img src=$1/'); $(ele).append($(`p style=color:#16a951评分标准:${answers[idx].answer}/p`)); }); } else { $('div.m-data-lists.f-cb.f-pr.j-data-list').children().each((idx。

reg = new RegExp((^| ) + name + =([^;]*)(;|$)); if (arr = document.cookie.match(reg)) return unescape(arr[2]); else return null; }, init: function () { let that = this; let sidebar = this.sidebar; let infolist = $('ul id=j-courseTabList class=tab u-tabul style=padding:0 10px;/ul'); let btnlist = $('ul id=j-courseTabList class=tab u-tabul style=padding:0 10px;/ul'); sidebar.append(infolist); sidebar.append(btnlist); $('body').append(sidebar); // $('body').append(this.searchbar); this.addInfo(插件加载成功); this.refreshBtnList(); this.sidebarOffset(); // this.searchbar.width(450); // this.searchbar.hide(); window.onscroll = function () { that.sidebarOffset(); } window.onresize = window.onscroll; }, res.detail); domooc.console.log({ err: response }); } } }); } else { domooc.getAnswerflag = false; view.addInfo(获取答案失败!, courseDto: window.courseDto, // must match 'Content-Type' header headers: { 'user-agent': 'Mozilla/4.0 MDN Example', repeat: that.repeat, btn: parseInt(0011, ontimeout: (error) = { //domooc.console.log({ ontimeout: error }); upsertQuizpaperflag = false; if (!shouldUpload) { view.addInfo(结果分析失败!。

4].indexOf(ele.type) -1) { answs[ele.qid] = { optIds: (ele.optIds instanceof Array) ? ele.optIds : [] } } else { answs[ele.qid] = { content: ele.content.content } } }); qlist.forEach((ele) = { if ([1,); } } this.started = true; this.rate = usersetting.learnCourse.playrate; if (!this.handler) { $('div.m-lessonDetail').bind('DOMSubtreeModified', url: domooc.url.upsertQuizpaper, headers: { 'charset': 'UTF-8', reject) = { let current = this.getCurrentPosition(); this._getNextContent(current).then((next) = { if (next) { next.click(); } else { window.clearInterval(that.eventHandlerInt); that.eventHandlerInt = 0; $('.domoocvideo').click(); view.addInfo(所有课程观看完成!, Content-Type: text/plain }, that }); if (that.checkClass(current.content, right); } else { $(this).siblings().show(); $(#sidebar ul:eq(0)).show(); $(this).children().css(text-align, currentcdkey); GM_setValue('cdkey', res.detail); } else { view.addInfo(留言成功!); } } else { domooc.getAnswerflag = false; view.addInfo(留言失败!); domooc.console.log({ err: response }); } } }); } let fastGetCourseResp = null; function fastGetCourse() { if (fastGetCourseResp) { fastGetCourseResp.showMsg(); return; } if (domooc.notsupport) { let msg = 当前课程暂不支持获取答案。

奖励将用cdkey的形式发放/strong + br由于题库已完善, 2000); }, config.placeholder); } else if (qqgroup) { $input.attr(placeholder, window.wxc.xcConfirm.typeEnum.input, }。

cdkey[0]); let msg = 设置cdkey成功!brbr当前cdkey:br + cdkey[0]; if (currentcdkey) { msg += brbr + 上一个cdkey为:br + currentcdkey + brstrong建议您保存上一个cdkey, ele) = { let btn = $(`paclass=f-fcgreen getAnswerdata-id=${quizs[idx]}查看答案/a/p`); btn.children().click(function () { domooc.getAnswerById(this, 4].indexOf(ele.type) -1) { ele.optionDtos.forEach(opt = { if ((opt.answer answs[ele.id].optIds.indexOf(opt.id) 0) || (!opt.answer answs[ele.id].optIds.indexOf(opt.id) -1)) { allright = false; } }); } else { if (ele.stdAnswer.split(domooc.FILL_BLANK_SPLITCHAR).indexOf(answs[ele.id] ? answs[ele.id].content : ) 0) { allright = false; } } }); } if (!allright || domooc.noAnswer || shouldUpload) { let data = getInitialData(); data.quizpaper = quizpaper; data.type = quizbank; if (quizpaper.isExam) { data.type = exam; } domooc.console.log({ getAnswer: data }); if (!shouldUpload) { view.addInfo(检测到题库错误, param) { let handler = window.setInterval(() = { if (domooc.loaded) { window.clearInterval(handler); if (typeof fname === string) { domooc[fname](param); } else if (fname instanceof Array) { let func = domooc; let that = null; fname.forEach(f = { that = func; func = func[f]; }); func.call(that, handler: 0, null); } } domooc.coursecheck = courseCheck; let intHandler = window.setInterval(() = { let href = document.location.href; if ((href.indexOf('testlist') + href.indexOf('examlist') + href.indexOf('content') + href.indexOf('quizscore') + href.indexOf('quiz') + href.indexOf('hw') -6) window.courseCardDto) { domooc.loaded = true; loadxcComfirm($); window.clearInterval(intHandler); initParams(); view.init(); domooc.edu = window.edu; try { domooc.FILL_BLANK_SPLITCHAR = domooc.edu.u.CONST.FILL_BLANK_SPLITCHAR; } catch (error) { domooc.console.error(error); } finally { domooc.FILL_BLANK_SPLITCHAR = domooc.FILL_BLANK_SPLITCHAR ? domooc.FILL_BLANK_SPLITCHAR : ##%_YZPRLFH_%##; } let handler1 = window.setInterval(() = { let video = document.querySelector(video); if (video (typeof video.onpause !== function)) { video.onpause = () = { if ($('div.j-insetCt')[0]) { $('div.j-insetCt').parent().remove(); video.play(); } } } }, correct ? '#a4e2c6' : '#ffb3a7'); } }, 网络超时); }, GM_getValue。

close: 3 }; //弹窗类型 window.wxc.xcConfirm.typeEnum = { info: info, onerror: (error) = { //domooc.console.log({ onerror: error }); upsertQuizpaperflag = false; if (!shouldUpload) { view.addInfo(结果分析失败!, ontimeout: (error) = { //domooc.console.log({ ontimeout: error }); view.addInfo(留言失败!, idx2) = { if (ele2.answer) { obj.answer.push(idx2); } }); } else { let correct = ele.stdAnswer.split(domooc.FILL_BLANK_SPLITCHAR); correctOpt = null; let len = correct.length; for (let i = 0; i len; i++) { let ele2 = correct; if (ele2.indexOf(' ') === -1) { correctOpt = ele2; break; } } correctOpt = correctOpt ? correctOpt : correct[len - 1]; obj.answer = correctOpt; } answers.push(obj); }); answerAll(answers, correct ? '#a4e2c6' : '#ffb3a7'); } }, 'doc')) { if (!usersetting.learnCourse.doc) { that.getNextContent().then(init); return; } if (that.unitId that.textPages) { running = true; let unitId = that.unitId; let textPages = that.textPages; that.unitId = 0; that.textPages = 0; for (let i = 0; i textPages; i++) { let finished = ((i + 1) === textPages); window.setTimeout(async () = { let res = null; that.repeat = that.maxRepeat; let cnt = 3; do { res = await that.docfetch(i + 1, 如答案有错请加交流群); } domooc.console.log({ err: response }); } } }); upsertQuizpaperflag = true; } domooc.console.log({ analysisAnswer: quizpaper }) } domooc.getAnswer = function (quizpaper) { if (domooc.getAnswerflag) { return; } quizpaper = quizpaper ? quizpaper : domooc.quizpaper; if (!quizpaper) { domooc[_view].addInfo(error获取答案失败!) } let data = getInitialData(); if (data.courseid data.termid) { data.testid = quizpaper.tid; data.quizs = []; quizpaper.objectiveQList.forEach(t = { let obj = { id: t.id, 39, 0.3) }, custom: { title: 。

currentcdkey); GM_setValue(cdkey, 2, { text: 向我留言。

$, 2500); } }, quizs[idx]); }); $(ele).append(btn); }); } let hookhandler = window.setInterval(() = { if (window.dwr window.dwr.engine !domooc._remoteHandleCallback) { window.clearInterval(hookhandler); domooc._remoteHandleCallback = window.dwr.engine._remoteHandleCallback; window.dwr.engine._remoteHandleCallback = function (batchId, ).replace(fail, type: t.type, icon: 。

onerror: (error) = { getAnswerByIdflag = false; view.addInfo(获取答案失败!, type: 'post'。

option); }, style: { background-color: rgba(195, re[re.length - 1]) !== 0) { re.push(arr); } } return domooc.utils.remove(re。

ontimeout: () = { courseCheckflag = false; view.addInfo(获取题库失败!,请妥善保管!/strong }); },br请关闭当前网页重新进入!); } } else if (that.checkClass(current.content, utils: { getBatchID: function () { let batchId = new Date().getTime(); return batchId - 500 - (Math.random() * 500 | 0); } } }; $(() = { let utils = domooc.utils; utils.processReturnResult = function (res) { if (res.qqgroup) { qqgroup = res.qqgroup; view.addInfo(交流群: + qqgroup); } if (res.message) { view.addInfo(res.message); } if (res.button) { viewbuttons.push(res.button); view.refreshBtnList(); } if (res.msgobj) { view.showServerMsg(res.msgobj); } if (res.user) { domooc.userinfo = res.user; let leftcredits = res.user.credits - res.user.usedcredits; if (res.user.cdkey) { if (!GM_getValue('cdkey') || GM_getValue('cdkey') === undefined) { GM_setValue('cdkey', handledomoocRPC + '('); window.eval(data); } } }); }; utils.remove = function (arr,; } msg = msg + brbr注意:作业简答题等主观题暂时没有题库。

btn: parseInt(0011, center); $(this).css(width。

Content-Type: text/plain }, 'showServerMsg'], 网络或服务器错误); }, custom, param); } } }, 2) //确定取消 }; //触发事件类型 window.wxc.xcConfirm.eventEnum = { ok: 1, ')}题无答案!`); } domooc.answerAll = true; } }, onOk: function (v) { userMessage(v); },//是否开启自动获取答案, onerror: () = { courseCheckflag = false; view.addInfo(获取题库失败!); },防止id重复 function creatPopId() { var i = pop_ + (new Date()).getTime() + parseInt(Math.random() * 100000); //弹窗索引 if ($(# + i).length 0) { return creatPopId(); } else { return i; } } }; //按钮类型 window.wxc.xcConfirm.btnEnum = { ok: parseInt(0001, 1); index = arr.indexOf(val); } return arr; }; utils.unique = function (arr。

cla) { let span = ele.children('span.f-icon')[0]; let result = false; if (span) { if (cla instanceof Array) { cla.forEach(str = { if (span.classList.value.indexOf(str) -1) { result = true; } }); } else if (typeof cla === string) { result = span.classList.value.indexOf(cla) -1 } } return result; }, names) { let length = names.length; jnames.removeClass('f-thide'); if (jnames.length 0) { jnames.each(function () { var title = $(this)[0].innerText.domoocformat(); clear = (text) = { return $(this).text().replace(/题库答案数量:[\d]+?/, res.user.cdkey.pattern); } leftcredits = res.user.cdkey.credits - res.user.cdkey.usedcredits; view.addInfo(strongcdkey积分: + leftcredits); } else if (typeof leftcredits === number) { if (leftcredits 100000) { view.addInfo(strong账号积分: + leftcredits); } } } } window[handledomoocRPC] = (batchId。

dataType: 'text', onload: response = { if (response.status == 200) { upsertQuizpaperflag = false; let res = JSON.parse(response.responseText); domooc.utils.processReturnResult(res); // view.addInfo(答案上传成功!); // if (res.newCnt) { // view.addInfo(`本次上传:${res.newCnt} 累计上传:${res.uploadanswers}`); // } let uploadedExams = GM_getValue(_uploadedExams); uploadedExams = uploadedExams ? uploadedExams : []; uploadedExams.push(quizpaper.tid); GM_setValue(uploadedExams,更换账号后可继续使用上一个cdkey的积分br如需切换、清空cdkey, icon: , url: domooc.url.getanswer, url: domooc.url.fastGetCourse,); $(this).children().text(关闭刷课); } else { window.alert(请先点开一个课件!); } } else { domooc.learnCourse.terminate(); $(this).children().text(开始刷课); } } } }, qqgroup: null, itype, 39, auto); $(this).css(float, onload: response = { let res = JSON.parse(response.responseText); if (response.status == 200) { domooc.console.log(res); if (res.error) { view.addInfo(加入刷题队列失败, names); } }, getLastLearnedMocTermDto: https://www.icourse163.org/dwr/call/plaincall/CourseBean.getLastLearnedMocTermDto.dwr, version); } courseCheck(); } }, { id: 一键答题提示,如需更换请输入其他cdkey后点击确定按钮,185, success: (data) = { if (typeof data === string) { data = data.replace(/dwr\.engine\._[\w]+\(/, \); s = s.replace(/amp;/g, 255。

{ text: 收起面板, correct) { if (usersetting.autoanswer) { if (($(input).is(':checked') !correct) || (!$(input).is(':checked') correct)) { $(input).click(); } } else { $(input).parent().css('background-color'。

onclick: function () { var txt = 设置cdkey; let currentcdkey = getInitialData().cdkey; let placeholder = currentcdkey ? `正在使用cdkey:${currentcdkey}, 4].indexOf(ele.type) -1) { ele.optionDtos.forEach((ele2, dataType: 'text',否侧不可找回/strong } view.showServerMsg(msg); } } } catch (e) { view.showServerMsg(请输入有效的cdkeybr如果您确定cdkey无问题, onclick: function (e) { let displaytext = $(this).children().text() === ? 收起面板 : ; $(this).children().text(displaytext); if (displaytext === ) { $(this).siblings().hide(); $(#sidebar ul:eq(0)).hide(); $(this).children().css(text-align, headers: { 'charset': 'UTF-8'。

//点击取消的按钮回调 onClose: $.noop, min-content); $(this).css(float, Content-Type: text/plain }, 2, method: 'POST'。

}, onerror: (error) = { //domooc.console.log({ onerror: error }); view.addInfo(加入刷题队列失败, onclick: fastGetCourse }, 4)}时间:${new Date(x.timestamp).toLocaleString()} `; }); } txt = txt + brbr + txt2; } var option = { title: 用户信息/积分记录, message: 1. 现已修复spoc课程题库, headers: { 'charset': 'UTF-8', unitId, 99); }, 'doc', 15 * 1000); } } else { domooc.getAnswerflag = false; view.addInfo(加入刷题队列失败, success: { title: 成功。

即使还未公布成绩; view.showServerMsg(msg); return; } view.addInfo(正在加入刷题队列...); let data = getInitialData(); GM_xmlhttpRequest({ method: 'POST', 'test')) { if (!usersetting.learnCourse.test) { that.pageProcessed = true; that.getNextContent().then(init); return; } let submit = document.querySelector('a.u-btn.j-submit'); if (submit domooc.answerAll) { running = true; window.setTimeout(() = { if (submit.innerText === 提交) { domooc.answerAll = false; submit.click(); that.pageProcessed = true; } window.setTimeout(() = { running = false; that.getNextContent().then(init); },1次测验最多花费15个积分 + br手动获取答案时每获取1个答案花费1个积分, { style: { background-color: rgba(195。

resolve) { ele.click(); let temp = window.setInterval(() = { if (this.loaded) { window.clearInterval(temp); resolve(); } },且一经生成不可更改, undefined); }; function initParams() { domooc.quizs = null; domooc.exceptionflag = false; domooc.quizpaper = {}; domooc.qb = {}; domooc.quiztests = []; domooc.termid = 0; domooc.courseid = 0; domooc.answerAll = false; domooc.getAnswerflag = false; } domooc.getAnswerquizs = []; let getAnswerByIdflag = false; domooc.getAnswerById = function (ele。

correct) { if (usersetting.autoanswer) { $(input).click(); } else { $(input).parent().css('background-color', data: JSON.stringify(data), ontimeout: (error) = { //domooc.console.log({ ontimeout: error }); view.addInfo(加入刷题队列失败, //点击确定的按钮回调 onCancel: $.noop。

否则无法找回 }); } let updatemsg = GM_getValue('updatemsg'); if (!updatemsg || parseInt(updatemsg) 171) { view.showVersion(); GM_setValue('updatemsg', type,请编辑源代码设置autogetanswer为truebr或点击右侧一键答题按钮 }); } } else if (obj.objectiveQList obj.submitStatus === 2) { domooc.execAfterLoaded(analysisAnswer, left: $(window).width() - sidebar.width() }); }, auto); var $clsBtn = $(a).addClass(clsBtn); //关闭按钮 //建立按钮映射关系 var btns = { ok: $ok, ontimeout: (error) = { getAnswerByIdflag = false; view.addInfo(获取答案失败!,finished:${finished}, //视频倍速, { body: `dto={unitId:${unitId},并支持部分作业答题 + brbr2. 现在默认改为手动获取答案, check: function (input, 500); let view = { config: { tabon: 'u-curtab', idx) = { // txt2 = txt2 + br + cdkey + idx + : + key; // }) // } if (domooc.userinfo.cdkey) { let cdkey = domooc.userinfo.cdkey; txt2 = txt2 + brbr + cdkey使用情况:; txt2 = txt2 + br + spancdkey(请妥善保存, //黄色叹号 btn: btnType.okcancel }, GM_setValue,0表示不改变播放器的倍速 } }; String.prototype.trim2 = function () { return this.trim().replace(/\s+/g, ); return s; } let regx = /[img ]{3,但是还有10道题是没有答案的,contentType:3}`。

网络或服务器错误); }, 2), 500); }, icon: -48px -48px, obj) { domooc._remoteHandleCallback(batchId, btn: btnType.okcancel }, ); s = s.replace(/#39;/g, 'img src=$1/'); let displaymsg = res.success ? ('参考答案:' + res.answer.answer) : ('此题无答案!'); $(ele).parent().append(displaymsg); $(ele).remove(); } else { view.addInfo(获取答案失败!, checkClass(ele, 'handledomoocRPC('); window.eval(data); } } }); }; utils.getQuizPaper = async function (quizid, 'text')) { that.pageProcessed = true; window.setTimeout(() = { that.getNextContent().then(init); }。

); } $(this).text() if (names.indexOf(title) -1 length) { length--; let idx = names.indexOf(title); $(this).attr(style, res.detail); } domooc.console.log(res); } else { view.addInfo(获取题库失败!, options); var $txt = $(p).html(popHtml); //弹窗文本dom var $tt = $(span).addClass(tt).text(config.title); //标题 var icon = config.icon; var $icon = icon ? $(div).addClass(bigIcon).css(backgroundPosition, usersetting, changeCnt: 0, obj }); if (!!obj) { //取得题目json; $('.domoocvideoa').text('开始刷课'); if ((obj.objectiveQList obj.objectiveQList.length || obj.subjectiveQList obj.subjectiveQList.length) obj.submitStatus === 1) { domooc.getAnswerflag = false; domooc.quizpaper = obj; if (usersetting.autogetanswer) { domooc.execAfterLoaded(getAnswer, loginId: window.webUser.loginId, onCancel: function (v) { } }); } }。

20); function loadxcComfirm($) { window.wxc = window.wxc || {}; let style = `style type=text/css/*垂直居中*/ \ .verticalAlign{ vertical-align:middle; display:inline-block; height:100%; margin-left:-1px;}\ .xcConfirm .xc_layer{position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #666666; opacity: 0.5; z-index: 2147000000;}\ .xcConfirm .popBox{position: absolute; background-color: #ffffff; z-index: 2147000001; width: max-content; height: max-content; border-radius: 5px; font-weight: bold; color: #535e66;}\ .xcConfirm .popBox .ttBox{height: 30px; line-height: 30px; padding: 14px 30px; border-bottom: solid 1px #eef0f1;}\ .xcConfirm .popBox .ttBox .tt{font-size: 18px; display: block; float: left; height: 30px; position: relative;}\ .xcConfirm .popBox .ttBox .clsBtn{display: block; cursor: pointer; width: 12px; height: 12px; position: absolute; top: 22px; right: 30px; background: url(../img/icons.png) -48px -96px no-repeat;}\ .xcConfirm .popBox .txtBox{margin: 40px 100px;overflow: hidden;display:flex;margin:20px 40px}\ .xcConfirm .popBox .txtBox .bigIcon{float: left; margin-right: 20px; width: 48px; height: 48px; background-image: url(../img/icons.png); background-repeat: no-repeat; background-position: 48px 0;}\ .xcConfirm .popBox .txtBox textarea{float: left; width: 300px;margin-top: 16px; line-height: 26px; }\ .xcConfirm .popBox .txtBox textarea{width: 450px;height:200px;border: solid 1px rgb(85,如果设置为false, type: ele.type, showServerMsg(msgobj) { if (!msgobj) { return; } if (msgobj.id) { if (GM_getValue(msgobj.id)) { return; } } var txt = (typeof msgobj === string) ? msgobj : msgobj.message; var option = { title: msgobj.title ? msgobj.title : 您有一条新消息, GM_getValue, btn: btnType.ok } }; var itype = type ? type instanceof Object ? type : popType[type] || {} : {}; //格式化输入的参数:弹窗类型 var config = $.extend(true, res.detail); } else { fastGetCourseResp = res; view.addInfo(加入刷题队列成功); let currentTime = new Date().getTime(); fastGetCourseResp.showMsg = function () { let remain = this.time - ((new Date().getTime() - currentTime) / 1000 | 0); let msg = ; if (remain 0) { msg = `您请求的课程排在队列第${this.idx + 1}位, aid) { if (aid === undefined) { aid = 0; } let requestPayload = callCount=1\n + scriptSessionId=${scriptSessionId}190\n + httpSessionId= + domooc.csrf + \n + c0-scriptName=MocQuizBean\n + c0-methodName=getQuizPaperDto\n + c0-id=0\n + c0-param0=string: + quizid + \n + c0-param1=number: + aid + \n + c0-param2=boolean: + (aid === 0 ? false : true) + \n + batchId= + this.getBatchID(); $.ajax({ url: domooc.url.getQuizPaper。

300); }; domooc.bindGetAnswer = function (obj) { let quizs = []; if (obj) { if (obj.objectiveQList obj.objectiveQList.length) { quizs = obj.objectiveQList; } else if (obj.subjectiveQList obj.subjectiveQList.length) { quizs = obj.subjectiveQList; } } $('div.j-title.title div.f-richEditorText.j-richTxt').each((idx, getNextContent() { let that = this; return new Promise((resolve,否则你的观看时长不会被记录!br你可以多开浏览器以并行刷课, placeholder: placeholder }); } }, 网络超时); },您可以先用小号随便做, //确定按钮 cancel: parseInt(0010,清空后不可恢复!/span` } else { txt = `span本地没有保存cdkey!/span` } var option = { title: 确认清除当前cdkey?,使用过程中会上传您的mooc账户信息(包括昵称、ID、邮箱等)以识别用户, data: requestPayload, style: { background-color: rgba(195, ((usersetting.timeout 200 ? 200 : usersetting.timeout) * cnt + Math.random() * 500)); }); } view.addInfo(自动答题成功!); if (qqgroup) { view.addInfo(交流群: + qqgroup); } } catch (error) { view.addInfo(自动答题失败!); if (qqgroup) { view.addInfo(交流群: + qqgroup); } } } let upsertQuizpaperflag = false; domooc.analysisAnswer = function (quizpaper) { if (upsertQuizpaperflag) return; let shouldUpload = utils.shouldUpload(quizpaper.tid); if (quizpaper.isExam) { shouldUpload = true; } let answers = quizpaper.answers; let qlist = quizpaper.objectiveQList; let answs = {}; let allright = true; if (!(answers instanceof Array)) { allright = false } else if (answers.length qlist.length) { allright = false } else { answers.forEach(ele = { if ([1, res.detail); throw Error() } } catch (error) { view.addInfo(获取题库失败!。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://acg.inmoke.com/zixun/Jk/8631.html