智慧树互动分Helper

让你愉快的水问答分

  1. // ==UserScript==
  2. // @name 智慧树互动分Helper
  3. // @namespace 无名
  4. // @version 1.1.4
  5. // @description 让你愉快的水问答分
  6. // @author 洛白
  7. // @match https://qah5.zhihuishu.com/*
  8. // @connect cx.icodef.com
  9. // @connect v.api.aa1.cn
  10. // @run-at document-end
  11. // @grant unsafeWindow
  12. // @grant GM_xmlhttpRequest
  13. // @grant GM_setClipboard
  14. // @grant GM_setValue
  15. // @grant GM_getValue
  16. // @license MIT
  17. // @connect hike-ai-course.zhihuishu.com
  18. // @connect *
  19.  
  20. // ==/UserScript==
  21. const input = document.createEvent("HTMLEvents");
  22. input.initEvent("input", true, false);
  23. const e = document.createEvent("MouseEvents");
  24. e.initEvent("click", true, true);
  25. var _self = unsafeWindow;
  26. var url = location.pathname;
  27. var $ = _self.jQuery;
  28. var xhr = _self.XMLHttpRequest;
  29. var json1 = {};
  30. var Ans = '';
  31. var l = 0;
  32. let ComentsArray = [];
  33. var Data = 0;
  34. var text = 0;
  35. var USE = 0;//Data 是否赋值
  36. let answer=["我认为","我觉得","我认为主要有以下几点","就一般普遍性而言","应该是可以的把","从我个人而言,我更加偏向于","以我拙见,我认为有以下几个理由:"]
  37. _self.XMLHttpRequest = function () {//先设置请求
  38. var ajax = new xhr();
  39. ajax.onload = function (e) {
  40. Ans = ''
  41. console.log(this.responseURL);
  42. if (this.status != 200 || !this.responseURL.match(/getAnswerInInfoOrderByTime/)) return;
  43. var obj = JSON.parse(this.responseText);
  44. var conments = obj.rt.answerInfos;
  45. l = conments.length;
  46. for (var i = 0; i < conments.length; i++) {
  47. ComentsArray.push(conments[i].answerContent);
  48. }
  49. GM_xmlhttpRequest({
  50. headers: { "Content-Type": "application/json;charset=UTF-8" },
  51. method: 'POST',
  52. url: 'http://127.0.0.1:5000/print',
  53. dataType: "json",
  54. data: JSON.stringify(obj.rt.answerInfos),
  55. onload: function (xhr) {
  56. console.log('ok');
  57. console.log(xhr.response);
  58. var dataAt = xhr.response.replace(/(\r\n)|(\n)/g, '\\n');
  59. Data = JSON.parse(dataAt);
  60. USE = 1;
  61. dataStr = dataAt;
  62. var ans = "",ans1="";
  63. var IdSentence = "DivSentence";
  64. var IdWord = "DivWord";
  65. var IdAnswer = "DivAnswer";
  66. for (var i = 0; i < Data.sentence.length; i++) {
  67. IdSentence += i.toString();
  68. ans += '<div id=';
  69. ans += IdSentence + " >";
  70. ans += "【"+Data.sentence[i][0] + " " + (Data.sentence[i][1]).toString()+"】";
  71. ans += '</div>\n';
  72. IdSentence = "DivSentence";
  73. }
  74. ans += '<h2 text-align: center;>词语</h2>\n'
  75. for (var i = 0; i < Data.word.length; i++) {
  76. IdWord += i.toString();
  77. ans += '<div id=';
  78. ans += IdWord + " >";
  79. ans += "【"+Data.word[i][0] + " " + (Data.word[i][1]).toString()+"】";
  80. ans += '</div>\n';
  81. IdWord = "DivWord";
  82. }
  83. for (var i = 0; i < answer.length; i++) {
  84. IdAnswer += i.toString();
  85. ans1 += '<div id=';
  86. ans1 += IdAnswer + " >";
  87. ans1 += "【"+answer[i]+"】";
  88. ans1 += '</div>\n';
  89. IdAnswer = "DivAnswer";
  90. }
  91. ans1+="</div>"
  92. text = document.querySelector('textarea');//获取输入框
  93. $(
  94. '<div style="border: 4px dashed rgb(217 75 75); width: 330px; height:750px;position: fixed; top: 0; left: 0; z-index: 99999; background-color: rgb(0 0 0 / 70%);color:rgb(255 255 255);overflow-y: auto;">' +
  95. '<span style="font-size: 20px;"></span>' +
  96. '<div style="font-size: medium;"><h2 text-align: center;>句子</h2> ' + ans +
  97. '</div>'
  98. ).appendTo('body');
  99. $(
  100. '<div style="border: 4px dashed rgb(217 75 75); width: 330px;height:750px; position: fixed; top: 0; right: 0; z-index: 99999; background-color:rgb(0 0 0 / 70%);color:rgb(255 255 255);overflow-y: auto;">' +
  101. '<span style="font-size: medium;"></span>' +
  102. '<div style="font-size: medium;"><h2 text-align: center;>常用水词</h2>' + ans1 +
  103. '</div>'
  104. ).appendTo('body');
  105. //$('body {-webkit-user-select: true;-moz-user-select: true;-ms-user-select: true;user-select: true;}').appendTo('head');
  106. if(Data.sentence[Data.sentence.length - 1][0]!=null)
  107. { text.value = Data.sentence[Data.sentence.length - 1][0];}
  108. //console.log(Data.word.length);
  109. for (var i1 = 0; i1 < Data.sentence.length; i1++) {
  110. // console.log(type(i1));
  111. (function (i1) {
  112. $("#DivSentence" + i1.toString()).on("click", function () {
  113. // console.log(i1.toString());
  114. text.innerText = Data.sentence[i1][0];
  115. text.value = Data.sentence[i1][0];
  116. });
  117. })(i1)
  118. }
  119. for (var i2 = 0; i2 < Data.word.length; i2++) {
  120. console.log($("#DivWord" + i2.toString()));
  121. (function (i2) {
  122. $("#DivWord" + i2.toString()).on("click", function () {
  123. text.innerText =text.value+ Data.word[i2][0];
  124. text.value =text.value+ Data.word[i2][0];
  125. });
  126. })(i2)
  127. }
  128. for (var i2 = 0; i2 < answer.length; i2++) {
  129. console.log($("#DivAnswer" + i2.toString()));
  130. (function (i2) {
  131. $("#DivAnswer" + i2.toString()).on("click", function () {
  132. text.innerText =answer[i2]+text.value;
  133. text.value =answer[i2]+text.value;
  134. });
  135. })(i2)
  136. }
  137. text.value = Data.sentence[Data.sentence.length - 1][0];
  138. }
  139. });
  140. console.log("======================ANS=====================");
  141.  
  142. $('#app > div > div.my-answer-btn.tool-show').click();
  143. setTimeout(detail, 100);
  144. console.log("======================ANS=====================");
  145.  
  146. // $(
  147. // '<div style="border: 2px dashed rgb(0, 85, 68); width: 330px; position: fixed; top: 0; left: 0; z-index: 99999; background-color: rgba(70, 196, 38, 0.6); overflow: auto;">' +
  148. // '<span style="font-size: medium;"></span>' +
  149. // '<div style="font-size: medium;">答案:+'+Ans+'</div>'
  150. // ).appendTo('body');
  151. };
  152. return ajax;
  153. };
  154.  
  155. async function detail() {
  156. const btn = document.querySelector('.my-answer-btn');//我来回答
  157. if (btn == null) return//如果没有回答按钮
  158. btn.dispatchEvent(e)//向一个指定的事件目标派发一个事件, 并以合适的顺序同步调用目标元素相关的事件处理函数。标准事件处理规则(包括事件捕获和可选的冒泡过程)同样适用于通过手动的使用dispatchEvent()方法派发的事件。
  159. setTimeout(() => {
  160. const text = document.querySelector('textarea')//获取输入框
  161. if (USE) { }
  162.  
  163.  
  164. const dialog = document.querySelector('.header-title')
  165. if (!text) return;
  166. text.oncut = "return true"
  167. text.onpaste = "return true"
  168. text.oncopy = "return true"
  169. // Participles();
  170. text.dispatchEvent(input)
  171. const btn = document.querySelector('div.up-btn.set-btn')
  172. if (btn == null) return
  173. $('#app > div > div.questionDialog > div > div > div.el-dialog__body > div > div.dialog-bottom.clearfix > div').click();
  174. console.log(btn);
  175. btn.click();
  176. //dialog.innerHTML += Render()
  177. // binding()
  178. }, 200)
  179. setTimeout(function () {
  180. }, 1000);
  181. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址