// ==UserScript== // @name 若离智慧校园 // @namespace 若离智慧校园,解决宜宾学院智慧校园的题目,能够自动获取宜宾学院的智慧校园的作业的答案,前提是你做了一遍后可以看到自己做过的答案 // @version 1.3 // @description 若离智慧校园,解决宜宾学院智慧校园的题目,能够自动获取宜宾学院的智慧校园的作业的答案,能够跳过秒看教学视频 // @author 若离QQ:2909998156 // @match https://mooc.yibinu.edu.cn/* // @icon https://q1.qlogo.cn/g?b=qq&nk=2909998156&s=100 // @resource cs1 https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/ant-design-vue/1.7.8/antd.css // @resource cs2 https://pan.ruoli.cc/s/8b0cc4 // @require https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js // @require https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/ant-design-vue/1.7.8/antd.min.js // @run-at document-end // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_getResourceText // @downloadURL https://update.greasyfork.icu/scripts/426615/%E8%8B%A5%E7%A6%BB%E6%99%BA%E6%85%A7%E6%A0%A1%E5%9B%AD.user.js // @updateURL https://update.greasyfork.icu/scripts/426615/%E8%8B%A5%E7%A6%BB%E6%99%BA%E6%85%A7%E6%A0%A1%E5%9B%AD.meta.js // ==/UserScript== // 脚本初始化 var setting = {'logs':['初始化脚本完成,若离QQ:2909998156','当前脚本版本:V1.3'],'datas': []}; // 日志 function log(logText){ setting.logs.unshift(logText); if(Math.random() > 0.92){ setting.logs.unshift('请勿用于非法用途哦!!'); } } // 从后台获取答案 function getAnswer(url, data){ log('获取答案中'); let id = url.match(/\/examSubmit\/(\d+)\/getExamPaper/)[1] GM_xmlhttpRequest({ method: "post", url: url, data: data, dataType: 'json', headers: { 'Origin': location.origin, 'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36', 'Content-type': 'application/x-www-form-urlencoded;charset=utf-8', 'Referer': `https://mooc.yibinu.edu.cn/examTest/stuExamList/{id}.mooc` }, onload: function(res){ console.log('res',res) if(res .status == 200){ let obj = $.parseJSON(res.responseText).paper.paperStruct; log("获取答案完成,正在格式化答案!"); setTimeout(formatAnswer, 2000, obj); }else{ } } }); } //格式化答案 function formatAnswer(str){ str.forEach((listItem,index) => { //遍历出问题 var question = listItem.quiz.quizContent; //如果存在选项,那么必定是单选或者多选,先将选项便利出来 var options = []; //定义选项的数组 var answer = []; //定义答案的数组 if(listItem.quiz.quizOptionses.length != 0){ //console.log(listItem); //将遍历出来的选项添加到选项数组 listItem.quiz.quizOptionses.forEach((optionItem, index) =>{ options[optionItem.optionId] = String.fromCharCode(65+index) + ":" +optionItem.optionContent; }) //将遍历出来的答案添加到答案数组 listItem.quiz.quizResponses.forEach(answerItem =>{ answer.push(options[answerItem.optionId]); }) }else{//不存在选项,也就是填空题 listItem.quiz.quizResponses.forEach(answerItem =>{ answer.push(answerItem.responseContent); }) } setting.datas.push({'id':index + 1 ,'question':question, 'answer': answer}); }) log('若您觉得本脚不错,记得赞助哦'); log('官方交流群:183937365欢迎大家加入!'); log('格式化完成'); log('请切换到功能页面查看答案哦') } //初始化界面 function initView(){ var $div =$('
' + ' {{item}}' + '
' + '