传智网课答题

传智教育答题

目前為 2021-09-11 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 传智网课答题
  3. // @namespace http://stu.ityxb.com/writePaper/busywork/*
  4. // @version 1.4
  5. // @description 传智教育答题
  6. // @author 土豆
  7. // @connect *
  8. // @match http://stu.ityxb.com/writePaper/busywork/*
  9. // @grant GM_xmlhttpRequest
  10. // ==/UserScript==
  11.  
  12.  
  13.  
  14.  
  15. var tibody;//题目数组
  16. var total = 0;//题目总数量
  17. var index = 0;//搜题索引自动增加
  18. window.onload = function(){
  19.  
  20. tibody=document.getElementsByClassName("questionItem question-item-box");
  21. total = tibody.length;
  22. kaishi(tibody[index]);//传入每道题
  23.  
  24.  
  25. // 创建一个新的 div 元素
  26. let newDiv = document.createElement("div");
  27. // 给它一些内容
  28. let newContent = document.createTextNode("自动答题功能并不完善,自己看着答案再选一遍,联系qq2049672011");
  29. // 添加文本节点 到这个新的 div 元素
  30. newDiv.appendChild(newContent);
  31. newDiv.style.position='fixed';
  32. newDiv.style.backgroundColor='red'
  33. // newDiv.style.width='20px';
  34. // newDiv.style.length='20px';
  35. newDiv.style.fontSize='20px';
  36. let currentDiv = document.querySelector("body > div > div > div.main-box > div");
  37. document.body.appendChild(newDiv);
  38. document.querySelector("body > div > div > div.main-box > div > div.center-content > header > div:nth-child(2) > div.common-affix.offSetTop").appendChild(newDiv);
  39.  
  40. }
  41.  
  42.  
  43.  
  44. function kaishi(ti){
  45. GM_xmlhttpRequest({//油猴脚本提供的异步函数
  46. method: 'POST',
  47. url: 'http://cx.icodef.com/wyn-nb?v=2',//网课接口
  48. headers: {
  49. 'Content-type': 'application/x-www-form-urlencoded'
  50. },
  51. data: 'question='+ encodeURIComponent(ti.getElementsByClassName("question-title-box")[0].innerText),
  52. timeout: 2000,
  53. onload:function(xhr)
  54. {
  55.  
  56.  
  57.  
  58. //自动选择答案
  59. let json=JSON.parse(xhr.responseText);
  60. let daan=json.data;
  61. if(json.code==-1)daan="答案未找到";
  62. // console.log(xhr.responseText.code);
  63. let answerarray=daan.split('#');//答案数组
  64.  
  65. let daanlength=ti.getElementsByClassName("radio_item question-option-item-box").length;//多少个选项
  66. for(let i=0;i<daanlength;i++){
  67. for(let i2=0;i2<answerarray.length;i2++)
  68. {
  69. // console.log(ti.getElementsByClassName("radio_item question-option-item-box")[i].innerText.split('、')[1]);
  70.  
  71. if(ti.getElementsByClassName("radio_item question-option-item-box")[i].innerText.split('、')[1]==answerarray[i2])ti.getElementsByClassName("radio_item question-option-item-box")[i].firstElementChild.click();
  72. }
  73. }
  74.  
  75. //显示答案
  76. let newdaan=' ';
  77. for(let i=0;i<answerarray.length;i++)
  78. {
  79. newdaan=newdaan+'<br>'+answerarray[i];
  80.  
  81. }
  82. ti.getElementsByClassName("question-title-box")[0].innerHTML += "<br>答案:"+newdaan;
  83. if(index < total - 1)//继续搜索接下来的题
  84. {
  85. setTimeout(function (){
  86. index = index + 1;
  87. kaishi(tibody[index]);
  88. }, 1000);
  89. }
  90.  
  91.  
  92. }
  93. })
  94. }