网课邦

当前位置:首页 > 网课资讯

网课资讯

2022最新学习通刷课脚本在线安装地址

时间:2025-06-05 01:13:57 作者:暂无作者 浏览量:
内容页左侧

功能:

超星学习通考试专用版|考试答题|全网聚合题库每日自动更新适用于几乎所有专业科目|完全免费永久使用【考试专用版】

学会这个教程只需要一双小手和一个不怎么灵活的大脑!!!

一、油猴安装教程篇

脚本内部已经被我修改视频秒过,作业自动提交了。
你们可以查看脚本源代码自行其他的修改,我这里就不多说了

【操作简单】无需配置安装即可使用【功能齐全】自动搜索超星尔雅学习通MOOC考试答案,支持自动答题、自动切换题目。【定制题库】独家定制试题库,精准识别,答案秒出。【✨功能扩展】隐藏答案搜索提示框等,解除各类功能限制,开放自定义参数

安装地址

// ==UserScript==

// @name超星学习通考试专用版|考试答题|全网聚合题库每日自动更新适用于几乎所有专业科目|完全免费永久使用【考试专用版】

// @version1.0.7

// @namespaceMuketool

// @description【?操作简单】无需配置安装即可使用【?功能齐全】自动搜索超星尔雅学习通MOOC考试答案,支持自动答题、自动切换题目。【?定制题库】独家定制试题库,精准识别,答案秒出。【✨功能扩展】隐藏答案搜索提示框等,解除各类功能限制,开放自定义参数

// @authorMuketool

// @match://.chaoxing.com/exam/test/reVersionTestStartNew

// @match://.edu.cn/exam/test/reVersionTestStartNew

// @match://.nbdlib.cn/exam/test/reVersionTestStartNew

// @match://.hnsyu.net/exam/test/reVersionTestStartNew

// @connectapi.muketool.com

// @connectapi2.muketool.com

// @run-atdocument-end

// @grantunsafeWindow

// @grantGM_xmlhttpRequest

// @grantGM_setValue

// @grantGM_getValue

// @grantGM_setClipboard

// @licenseMIT

// @supportURLhttps://docs.muketool.com

// @homepagehttps://www.muketool.com

// @original-script https://greasyfork.org/zh-CN/scripts/373131-%E8%B6%85%E6%98%9F%E7%BD%91%E8%AF%BE%E5%8A%A9%E6%89%8B-%E8%80%83%E8%AF%95%E4%B8%93%E7%89%88

// @original-author wyn665817

// @original-license MIT

// ==/UserScript==

// 设置修改后,需要刷新或重新打开网课页面才会生效

var setting = {

//这里设置脚本所使用的题库接口。默认使用Muketool团队题库,您也可以自行替换为其他题库服务器。

//Muketool团队默认提供两个题库接口:“http://api.muketool.com:2086/”(默认使用该接口)和“http://api2.muketool.com:2086/”,

//二个题库试题数据一样,区别在于前者使用国内加速线路,响应更快;后者采用国外高防线路以应对可能出现的网络攻击。如果您发现其中一个题库失联,可以尝试切换为另一个。

tiku: &9;http://api.muketool.com/&9;

// 8E3 == 8000,科学记数法,表示毫秒数

,time: 8E3 // 默认响应速度为8秒,不建议小于5秒

// 1代表开启,0代表关闭

,none: 0 // 未找到答案或无匹配答案时执行默认操作,默认关闭

,jump: 1 // 答题完成后自动切换,默认开启

,copy: 0 // 自动复制答案到剪贴板,也可以通过手动点击按钮或答案进行复制,默认关闭

// 非自动化操作

,hide: 0 // 不加载答案搜索提示框,键盘↑和↓可以临时移除和加载,默认关闭

,scale: 0 // 富文本编辑器高度自动拉伸,用于文本类题目,答题框根据内容自动调整大小,默认关闭

, script: &9;v1cxexam&9;

, version: &9;1.0.7&9;

},

_self = unsafeWindow,

$ = _self.jQuery,

UE = _self.UE;

setting.notice = &9;公告栏&9;;

GM_xmlhttpRequest({

method: &9;GET&9;,

url: setting.tiku + &9;notice?script=&9; + setting.type + &9;&version=&9; + setting.version,

timeout: setting.time,

onload: function (xhr) {

if (xhr.status == 200) {

var obj = $.parseJSON(xhr.responseText) || {};

setting.notice = obj.injection;

document.querySelector(&9;cx-notice&9;).innerHTML = setting.notice;

}

},

ontimeout: function () {

setting.loop && setting.div.children(&9;div:eq(0)&9;).html(setting.over + &9;服务器超时,正在重试...&9;);

}

});

String.prototype.toCDB = function() {

return this.replace(/\s/g, &9;&9;).replace(/[\uff01-\uff5e]/g, function(str) {

return String.fromCharCode(str.charCodeAt(0) - 65248);

}).replace(/[“”]/g, &9;"&9;).replace(/[‘’]/g, "&9;").replace(/。/g, &9;.&9;);

};

// setting.time += Math.ceil(setting.timeMath.random()) - setting.time / 2;

setting.TiMu = [

filterImg(&9;.Cy_TItle .clearfix&9;).replace(/\s(\d+\.\d+分)$/, &9;&9;),

$(&9;[name^=type]:not([id])&9;).val() || &9;-1&9;,

$(&9;.cur a&9;).text().trim() || &9;无&9;,

$(&9;li .clearfix&9;).map(function() {

return filterImg(this);

})

];

var maximize=$(

&9;<div style="border: 2px dashed ED4C78; position: fixed; top: 0; right: 0; z-index: 99999; background-color: 00C9A7; overflow-x: auto;display:none;"> ▣ </div>&9;

).appendTo(&9;body&9;).click(function(){

$(setting.div).css("display","block");

GM_setValue("minimize","0");

$(maximize).css("display","none");

});

setting.div = $(

&9;<div style="border: 2px dashed 77DFF; width: 330px; position: fixed; top: 0; right: 0; z-index: 99999; background-color: EBF2FF; overflow-x: auto;">&9; +

&9;<span style="font-size: medium;"></span>&9; +

&9;<div style="font-size: medium;width:70%;display: inline-block;">正在搜索答案...</div>&9;+

&9;<div style="width:30%;display: inline-block;padding-right: 10px;box-sizing: border-box;text-align: right;"><minimize style="width:20px;font-size:16px;line-height: 12px;font-weight: bold;cursor: context-menu;user-select:none;">一</minimize></div>&9; +

&9;<div style="border-top: 1px solid 000;margin: 2px;overflow: hidden;font-weight:800;">MukeTool 超星网课助手 官网:http://muketool.com</div>&9; +

&9;<div id="cx-notice" style="border-top: 1px solid 000;border-bottom: 1px solid 000;margin: 4px 0px;overflow: hidden;">&9; + setting.notice + &9;</div>&9; +

&9;<button style="margin-right: 10px;">暂停答题</button>&9; +

&9;<button style="margin-right: 10px;&9; + (setting.jump ? &9;&9; : &9; display: none;&9;) + &9;">点击停止本次切换</button>&9; +

&9;<button style="margin-right: 10px;">重新查询</button>&9; +

&9;<button style="margin-right: 10px; display: none;">复制答案</button>&9; +

&9;<button>答题详情</button>&9; +

&9;<div style="max-height: 200px; overflow-y: auto;">&9; +

&9;<table border="1" style="font-size: 12px;">&9; +

&9;<thead>&9; +

&9;<tr>&9; +

&9;<th colspan="2">&9; + ($(&9;randomOptions&9;).val() == &9;false&9; ? &9;&9; : &9;<font color="red">本次考试的选项为乱序 脚本会选择正确的选项</font>&9;) + &9;</th>&9; +

&9;</tr>&9; +

&9;<tr>&9; +

&9;<th style="width: 60%; min-width: 130px;">题目(点击可复制)</th>&9; +

&9;<th style="min-width: 130px;">答案(点击可复制)</th>&9; +

&9;</tr>&9; +

&9;</thead>&9; +

&9;<tfoot style="&9; + (setting.jump ? &9; display: none;&9; : &9;&9;) + &9;">&9; +

&9;<tr>&9; +

&9;<th colspan="2">已关闭 本次自动切换</th>&9; +

&9;</tr>&9; +

&9;</tfoot>&9; +

&9;<tbody>&9; +

&9;<tr>&9; +

&9;<td colspan="2" style="display: none;"></td>&9; +

&9;</tr>&9; +

&9;</tbody>&9; +

&9;</table>&9; +

&9;</div>&9; +

&9;</div>&9;

).appendTo(&9;body&9;).on(&9;click&9;, &9;button, td&9;, function() {

var num = setting.$btn.index(this);

if (num == -1) {

GM_setClipboard($(this).text());

} else if (num === 0) {

if (setting.loop) {

clearInterval(setting.loop);

delete setting.loop;

num = [&9;已暂停搜索&9;, &9;继续答题&9;];

} else {

setting.loop = setInterval(findTiMu, setting.time);

num = [&9;正在搜索答案...&9;, &9;暂停答题&9;];

}

setting.$div.html(function() {

return $(this).data(&9;html&9;) || num[0];

}).removeData(&9;html&9;);

$(this).html(num[1]);

} else if (num == 1) {

setting.jump = 0;

setting.$div.html(function() {

return arguments[1].replace(&9;即将切换下一题&9;, &9;未开启自动切换&9;);

});

setting.div.find(&9;tfoot&9;).add(this).toggle();

} else if (num == 2) {

location.reload();

} else if (num == 3) {

GM_setClipboard(setting.div.find(&9;td:last&9;).text());

} else if (num == 4) {

($(&9;.leftCard .saveYl&9;)[0] || $()).click();

} else if (num == 5) {

setting.tk_num++;

GM_setValue(&9;tk_num_1&9;,setting.tk_num);

setting.tk_num = GM_getValue(&9;tk_num_1&9;);

console.log(setting.tk_num);

parent.location.reload();

}

}).on(&9;click&9;,&9;minimize&9;, function() {

$(this).parent().parent().css("display","none");

GM_setValue("minimize","1");

$(maximize).css("display","block");

}).detach(setting.hide ? &9;&9; : &9;html&9;);

if(GM_getValue("minimize")=="1"){

$(setting.div).css("display","none");

$(maximize).css("display","block");

}

setting.$btn = setting.div.children(&9;button&9;);

setting.$div = setting.div.children(&9;div:eq(0)&9;);

$(document).keydown(function(event) {

if (event.keyCode == 38) {

setting.div.detach();

} else if (event.keyCode == 40) {

setting.div.appendTo(&9;body&9;);

}

});

if (setting.scale) _self.UEDITOR_CONFIG.scaleEnabled = false;

$.each(UE.instants, function() {

var key = this.key;

this.ready(function() {

this.destroy();

UE.getEditor(key);

});

});

setting.loop = setInterval(findTiMu, setting.time);

function findTiMu() {

GM_xmlhttpRequest({

method: &9;POST&9;,

url: setting.tiku + &9;v1/cxexam&9;,

headers: {

&9;Content-type&9;: &9;application/x-www-form-urlencoded&9;,

},

data: &9;question=&9; + encodeURIComponent(setting.TiMu[0]) + &9;&type=&9; + setting.TiMu[1] + &9;&id=&9; + $(&9;paperId&9;).val(),

timeout: setting.time,

onload: function(xhr) {

if (!setting.loop) {

} else if (xhr.status == 200) {

var obj = $.parseJSON(xhr.responseText) || {};

obj.answer = obj.data;

if (obj.code) {

var answer = String(obj.answer).replace(/&/g, &9;&&9;).replace(/<(?!img)/g, &9;<&9;),

que = setting.TiMu[0].match(&9;<img&9;) ? setting.TiMu[0] : setting.TiMu[0].replace(/&/g, &9;&&9;).replace(/</g, &9;<&9;);

obj.answer = /^http/.test(answer) ? &9;<img src="&9; + obj.answer + &9;">&9; : obj.answer;

setting.div.find(&9;tbody&9;).append(

&9;<tr>&9; +

&9;<td title="点击可复制">&9; + que + &9;</td>&9; +

&9;<td title="点击可复制">&9; + (/^http/.test(answer) ? obj.answer : &9;&9;) + answer + &9;</td>&9; +

&9;</tr>&9;

);

setting.copy && GM_setClipboard(obj.answer);

setting.$btn.eq(3).show();

fillAnswer(obj);

} else {

setting.$div.html(obj.answer || &9;服务器繁忙,正在重试...&9;);

}

setting.div.children(&9;span&9;).html(obj.msg || &9;&9;);

} else if (xhr.status == 403) {

var html = xhr.responseText.indexOf(&9;{&9;) ? &9;请求过于频繁,建议稍后再试&9; : $.parseJSON(xhr.responseText).data;

setting.$div.data(&9;html&9;, html).siblings(&9;button:eq(0)&9;).click();

} else {

setting.$div.text(&9;服务器异常,正在重试...&9;);

}

},

ontimeout: function() {

setting.loop && setting.$div.text(&9;服务器超时,正在重试...&9;);

}

});

}

function fillAnswer(obj, tip) {

var $input = $(&9;:radio, :checkbox&9;, &9;.Cy_ulBottom&9;),

str = String(obj.answer).toCDB() || new Date().toString(),

data = str.split(/|\x01|\|/),

opt = obj.opt || str,

btn = $(&9;.saveYl:contains(下一题)&9;).offset();

// $input.filter(&9;:radio:checked&9;).prop(&9;checked&9;, false);

obj.code > 0 && $input.each(function(index) {

if (this.value == &9;true&9;) {

data.join().match(/(^|,)(正确|是|对|√|T|ri)(,|$)/) && this.click();

} else if (this.value == &9;false&9;) {

data.join().match(/(^|,)(错误|否|错|×|F|wr)(,|$)/) && this.click();

} else {

index = setting.TiMu[3][index].toCDB() || new Date().toString();

index = $.inArray(index, data) + 1 || (setting.TiMu[1] == &9;1&9; && str.indexOf(index) + 1);

Boolean(index) == this.checked || this.click();

}

}).each(function() {

if (!/^A?B?C?D?E?F?G?$/.test(opt)) return false;

Boolean(opt.match(this.value)) == this.checked || this.click();

});

if (setting.TiMu[1].match(/^[013]$/)) {

tip = $input.is(&9;:checked&9;) || setting.none && (($input[Math.floor(Math.random()$input.length)] || $()).click(), &9; &9;);

} else if (setting.TiMu[1].match(/^(2|[4-9]|1[08])$/)) {

data = String(obj.answer).split(/|\x01|\|/);

tip = $(&9;.Cy_ulTk textarea&9;).each(function(index) {

index = (obj.code > 0 && data[index]) || &9;&9;;

UE.getEditor(this.name).setContent(index.trim());

}).length;

tip = (obj.code > 0 && data.length == tip) || setting.none && &9; &9;;

setting.len = str.lengthsetting.time / 10;

}

if (tip == &9; &9;) {

tip = &9;已执行默认操作&9;;

} else if (tip) {

tip = &9;自动答题已完成&9;;

} else if (tip === undefined) {

tip = &9;该题型不支持自动答题&9;;

} else {

tip = &9;未找到有效答案&9;;

}

if (btn) {

tip += setting.jump ? &9;,即将切换下一题&9; : &9;,未开启自动切换&9;;

setInterval(function() {

if (!setting.jump) return;

var mouse = document.createEvent(&9;MouseEvents&9;),

arr = [btn.left + Math.ceil(Math.random()80), btn.top + Math.ceil(Math.random()26)];

mouse.initMouseEvent(&9;click&9;, true, true, document.defaultView, 0, 0, 0, arr[0], arr[1], false, false, false, false, 0, null);

_self.event = $.extend(true, {}, mouse);

delete _self.event.isTrusted;

_self.getTheNextQuestion(1);

}, setting.len || Math.ceil(setting.timeMath.random())2);

} else {

setting.$btn.eq(1).hide();

tip = &9;答题已完成,请自行查看答题详情&9;;

}

setting.$div.data(&9;html&9;, tip).siblings(&9;button:eq(0)&9;).hide().click();

}

function filterImg(dom) {

return $(dom).clone().find(&9;img[src]&9;).replaceWith(function() {

return $(&9;<p></p>&9;).text(&9;&9;);

}).end().find(&9;iframe[src]&9;).replaceWith(function() {

return $(&9;<p></p>&9;).text(&9;&9;);

}).end().text().trim();

}