高校考试网(gaoxiaokaoshi.com)答案储存自动测试

我的九尾狐奶奶呀,毛概每次测试都不及格,算了还是用笨办法吧。获取答案通过历史测试的试题解析,或者多做题库里面的无限次数测试来增加答案。

目前為 2020-06-03 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 高校考试网(gaoxiaokaoshi.com)答案储存自动测试
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description 我的九尾狐奶奶呀,毛概每次测试都不及格,算了还是用笨办法吧。获取答案通过历史测试的试题解析,或者多做题库里面的无限次数测试来增加答案。
  6. // @author Aisen
  7. // @match http://www.gaoxiaokaoshi.com/ExamList/ExamPage/*
  8. // @run-at document-end
  9. // @grant GM_addStyle
  10. // @grant unsafeWindow
  11. // @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js
  12. // @license MIT
  13. // ==/UserScript==
  14. var $ = window.jQuery;
  15. var out = {};
  16. pannel();
  17. if (localStorage.getItem('题库')) {
  18. out = JSON.parse(localStorage.getItem('题库'));
  19. logger('log', '目前题库已收录:' + Object.keys(out).length + '题。')
  20.  
  21. } else {
  22. logger('log', '题库为空,请先进行试题分析建立题库。')
  23. localStorage.setItem('题库', '{}')
  24. }
  25. var url = window.location.pathname;
  26. console.log(url)
  27. if (url == '/ExamList/ExamPage/ExamDo.aspx') {
  28. logger('log', '开始答题!')
  29. doTest()
  30. } else if(url == '/ExamList/ExamPage/viewExam.aspx' || url == '/ExamList/ExamPage/ViewExam.aspx'){
  31. logger('log', '开始更新题库!')
  32. saveAnswers()
  33. }
  34.  
  35. function doTest() {
  36. var questions = $('.exam_list dt');
  37. var num = 0;
  38. for (var i = 0; i < questions.length; i++) {
  39. var question = $(questions[i]).text();
  40. question = question.match(/\.(\S*)\(/)[1];
  41. if (out[question]) {
  42. num++;
  43. var answers = out[question];
  44. var choices = $('label[for^=tm_' + (i + 1) + '_');
  45. for (var j = 0; j < choices.length; j++) {
  46. if (answers.includes($(choices[j]).text().match(/、(\S*)/)[1])) {
  47. $(choices[j]).click();
  48.  
  49.  
  50. }
  51.  
  52. }
  53. //console.log(choices);
  54.  
  55. }
  56.  
  57.  
  58. }
  59. logger('log', '答题完成,有答案的有:' + num + '道题。');
  60.  
  61.  
  62. }
  63.  
  64. function saveAnswers() {
  65. var ddtms = $("div[id^=ddTm_]");
  66. var num = 0;
  67. for (var i = 0; i < ddtms.length; i++) {
  68. var div = $(ddtms[i]);
  69. var question = div.children('dt').text().match(/[0-9]\.(\S*)\(/)[1];
  70. //console.log(question)
  71. var choices = div.find('.green:last').text();
  72. //console.log(choices)
  73. var answers = [];
  74. for (var j = 0; j < choices.length; j++) {
  75.  
  76. switch (choices[j]) {
  77. case '对':
  78. answers.push('对');
  79. break;
  80. case '错':
  81. answers.push('错');
  82. break;
  83. case 'A':
  84. answers.push($('label[for=tm_' + (i + 1) + '_0').text().slice(2))
  85. break;
  86. case 'B':
  87. answers.push($('label[for=tm_' + (i + 1) + '_1').text().slice(2))
  88. break;
  89. case 'C':
  90. answers.push($('label[for=tm_' + (i + 1) + '_2').text().slice(2))
  91. break;
  92. case 'D':
  93. answers.push($('label[for=tm_' + (i + 1) + '_3').text().slice(2))
  94. break;
  95. case 'E':
  96. answers.push($('label[for=tm_' + (i + 1) + '_4').text().slice(2))
  97. break;
  98. case 'F':
  99. answers.push($('label[for=tm_' + (i + 1) + '_5').text().slice(2))
  100. break;
  101. case 'G':
  102. answers.push($('label[for=tm_' + (i + 1) + '_6').text().slice(2))
  103. break;
  104. case 'H':
  105. answers.push($('label[for=tm_' + (i + 1) + '_7').text().slice(2))
  106. break;
  107. }
  108.  
  109. }
  110. //console.log(answers)
  111. if (!out[question]) {
  112. num++;
  113. out[question] = answers;
  114.  
  115. }
  116.  
  117.  
  118.  
  119.  
  120. }
  121. logger('log', '已更新:' + num + '题,目前题库已收录:' + Object.keys(out).length + '题。')
  122. localStorage.setItem('题库', JSON.stringify(out))
  123.  
  124.  
  125. }
  126.  
  127. // Logger
  128. function logger(type, msg) {
  129. $(".info").text(msg);
  130. msg = "[NsumoocStar] " + msg;
  131. switch (type) {
  132. case 'warn':
  133. console.warn(msg);
  134. break;
  135. case 'log':
  136. console.log(msg);
  137. break;
  138. case 'info':
  139. console.info(msg);
  140. break;
  141. }
  142. }
  143. //面板
  144. function pannel() {
  145. GM_addStyle('.mypanel {position: fixed;overflow: hidden;top: 100px;right: 10px; width: 300px;height: 200px;background-color: rgba(70, 196, 38, 0.6);z-index: 999999;border-radius: 5%;}');
  146. 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: 14px;color:#fff}');
  147. GM_addStyle('.askMe a {color:pink !important;font-size: 17px}');
  148. var html = '<div class="mypanel">'
  149. html += '<div class="answers">我是可爱的标题。(>‿◠)✌</div>'
  150. html += '<div class="askMe">'
  151. html += '<a href="http://wpa.qq.com/msgrd?v=3&uin=201826658&site=qq&menu=yes" target="_blank">如果有bug,点这反馈。 (゜-゜)つロ </a>'
  152. html += '</div>'
  153. html += '<div class="info">info</div>'
  154. html += '</div>'
  155. $("body").append(html);
  156.  
  157.  
  158.  
  159. }