up_tk

up_tk_1.0

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/526341/1534144/up_tk.js

  1. // ==UserScript==
  2. // @name up_tk
  3. // @author trprr
  4. // @version 1.0.0
  5. // @description up_tk_1.0.0
  6. // ==/UserScript==
  7.  
  8.  
  9. function upLoadWork(index, doms, dom) {
  10. let $CyHtml = $(dom).contents().find(".CeYan");
  11. let TiMuList = $CyHtml.find(".TiMu");
  12. let data = [];
  13. for (let i = 0; i < TiMuList.length; i++) {
  14. let _a = {};
  15. let questionFull = $(TiMuList[i]).find(".Zy_TItle.clearfix > div.clearfix").html().trim();
  16. let _question = tidyQuestion(questionFull);
  17. let _TimuType = { 单选题: 0, 多选题: 1, 填空题: 2, 判断题: 3, 简答题: 4 }[questionFull.match(/^<span.*?newZy_TItle.*?【(.*?)】<\/span>|$/)[1]];
  18. _a["question"] = _question;
  19. _a["type"] = _TimuType;
  20. let _selfAnswerCheck = $(TiMuList[i]).find(".newAnswerBx > .myAnswerBx > .answerScore .CorrectOrNot span").attr("class");
  21. switch (_TimuType) {
  22. case 0:
  23. if (_selfAnswerCheck == "marking_dui") {
  24. let _selfAnswer = { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 }[$(TiMuList[i]).find(".newAnswerBx > .myAnswerBx > .myAnswer").text().trim().replace(/正确答案[::]/, "").replace(/我的答案[::]/, "").trim()];
  25. let _answerForm2 = $(TiMuList[i]).find(".Zy_ulTop li");
  26. let _answer2 = $(_answerForm2[_selfAnswer]).find("a.fl").html();
  27. _a["answer"] = tidyStr(_answer2);
  28. }
  29. break;
  30. case 1:
  31. let _answerArr = $(TiMuList[i]).find(".newAnswerBx > .myAnswerBx > .myAnswer").text().trim().replace(/正确答案[::]/, "").replace(/我的答案[::]/, "").trim();
  32. let _answerForm = $(TiMuList[i]).find(".Zy_ulTop li");
  33. let _answer = [];
  34. if (_selfAnswerCheck == "marking_dui" || _selfAnswerCheck == "marking_bandui") {
  35. for (let i2 = 0; i2 < _answerArr.length; i2++) {
  36. let _answerIndex = { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 }[_answerArr[i2]];
  37. _answer.push($(_answerForm[_answerIndex]).find("a.fl").html());
  38. }
  39. } else {
  40. break;
  41. }
  42. _a["answer"] = tidyStr(_answer.join("#"));
  43. break;
  44. case 2:
  45. let _TAnswerArr = $(TiMuList[i]).find(".newAnswerBx > .myAnswerBx > .myAnswer");
  46. let _TAnswer = [];
  47. for (let i2 = 0; i2 < _TAnswerArr.length; i2++) {
  48. let item = _TAnswerArr[i2];
  49. if ($(item).find("i").attr("class") == "marking_dui") {
  50. _TAnswer.push($(item).find("p").html().replace(/[(][0-9].*?[)]/, "").replace(/第.*?空:/, "").trim());
  51. }
  52. }
  53. if (_TAnswer.length <= 0) {
  54. break;
  55. }
  56. _a["answer"] = tidyStr(_TAnswer.join("#"));
  57. break;
  58. case 3:
  59. if (_selfAnswerCheck == "marking_dui") {
  60. let _answer2 = $(TiMuList[i]).find(".newAnswerBx > .myAnswerBx > .myAnswer").html().replace(/正确答案[::]/, "").replace(/我的答案[::]/, "").trim();
  61. _a["answer"] = tidyStr(_answer2);
  62. } else {
  63. if ($(TiMuList[i]).find(".newAnswerBx > .myAnswerBx > .myAnswer").html()) {
  64. let _answer2 = $(TiMuList[i]).find(".newAnswerBx > .myAnswerBx > .myAnswer").html().replace(/正确答案[::]/, "").replace(/我的答案[::]/, "").trim();
  65. if ("对|√|正确".indexOf(tidyStr(_answer2)) != -1) {
  66. _a["answer"] = "错";
  67. } else {
  68. _a["answer"] = "对";
  69. }
  70. } else {
  71. break;
  72. }
  73. }
  74. break;
  75. }
  76. if (_a["answer"] != void 0) {
  77. data.push(_a);
  78. } else {
  79. continue;
  80. }
  81. }
  82. uploadAnswer(data, 0).then(() => {
  83. _mlist.splice(0, 1);
  84. _domList.splice(0, 1);
  85. setTimeout(() => {
  86. startDoCyWork(index + 1, doms);
  87. }, 3e3);
  88. });
  89. }
  90.  
  91. function uploadExam() {
  92. logger("考试答案收录功能处于bate阶段,遇到bug请及时反馈!!", "red");
  93. logger("开始收录考试答案", "green");
  94. let TimuList = $(".mark_table .mark_item .questionLi");
  95. let data = [];
  96. $.each(TimuList, (i, t) => {
  97. let _a = {};
  98. let _answer;
  99. let _answerTmpArr, _answerList = [];
  100. let TiMuFull = tidyQuestion($(t).find("h3").html());
  101. let _type = { 单选题: 0, 多选题: 1, 填空题: 2, 判断题: 3, 简答题: 4 }[TiMuFull.match(/[(](.*?)[)]|$/)[1].replace(/,.*?分/, "")];
  102. let _question = TiMuFull.replace(/^[(].*?[)]|$/, "").trim();
  103. let _rightAns = $(t).find(".mark_answer").find(".colorGreen").text().replace(/正确答案[::]/, "").trim();
  104. switch (_type) {
  105. case 0:
  106. if (_rightAns.length <= 0) {
  107. let _isTrue2 = $(t).find(".mark_answer").find(".mark_score span").attr("class");
  108. let _isZero = $(t).find(".mark_answer").find(".mark_score .totalScore.fr i").text();
  109. if (_isTrue2 == "marking_dui" || _isZero != "0") {
  110. _rightAns = $(t).find(".mark_answer").find(".colorDeep").text().replace(/我的答案[::]/, "").trim();
  111. } else {
  112. break;
  113. }
  114. }
  115. _answerTmpArr = $(t).find(".mark_letter li");
  116. $.each(_answerTmpArr, (a, b) => {
  117. _answerList.push(tidyStr($(b).html()).replace(/[A-Z].\s*/, ""));
  118. });
  119. let _i = { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 }[_rightAns];
  120. _answer = _answerList[_i];
  121. _a["question"] = _question;
  122. _a["type"] = _type;
  123. _a["answer"] = _answer;
  124. data.push(_a);
  125. break;
  126. case 1:
  127. _answer = [];
  128. if (_rightAns.length <= 0) {
  129. let _isTrue2 = $(t).find(".mark_answer").find(".mark_score span").attr("class");
  130. let _isZero = $(t).find(".mark_answer").find(".mark_score .totalScore.fr i").text();
  131. if (_isTrue2 == "marking_dui" || _isTrue2 == "marking_bandui" || _isZero != "0") {
  132. _rightAns = $(t).find(".mark_answer").find(".colorDeep").text().replace(/我的答案[::]/, "").trim();
  133. } else {
  134. break;
  135. }
  136. }
  137. _answerTmpArr = $(t).find(".mark_letter li");
  138. $.each(_answerTmpArr, (a, b) => {
  139. _answerList.push(tidyStr($(b).html()).replace(/[A-Z].\s*/, ""));
  140. });
  141. $.each(_rightAns.split(""), (c, d) => {
  142. let _i2 = { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 }[d];
  143. _answer.push(_answerList[_i2]);
  144. });
  145. _a["question"] = _question;
  146. _a["type"] = _type;
  147. _a["answer"] = _answer.join("#");
  148. data.push(_a);
  149. break;
  150. case 2:
  151. _answerTmpArr = [];
  152. let answers = $(t).find(".mark_answer").find(".colorDeep").find("dd");
  153. if (_rightAns.length <= 0) {
  154. $.each(answers, (i2, t2) => {
  155. _isTrue = $(t2).find("span:eq(1)").attr("class");
  156. if (_isTrue == "marking_dui") {
  157. _rightAns = $(t2).find("span:eq(0)").html();
  158. _answerTmpArr.push(_rightAns.replace(/[(][0-9].*?[)]/, "").replace(/第.*?空:/, "").trim());
  159. } else {
  160. return;
  161. }
  162. });
  163. _answer = _answerTmpArr.join("#");
  164. } else {
  165. _answer = _rightAns.replace(/\s/g, "").replace(/[(][0-9].*?[)]/g, "#").replace(/第.*?空:/g, "#").replace(/^#*/, "");
  166. }
  167. if (_answer.length != 0) {
  168. _a["question"] = _question;
  169. _a["type"] = _type;
  170. _a["answer"] = _answer;
  171. data.push(_a);
  172. }
  173. break;
  174. case 3:
  175. if (_rightAns.length <= 0) {
  176. let _isTrue2 = $(t).find(".mark_answer").find(".mark_score span").attr("class");
  177. let _isZero = $(t).find(".mark_answer").find(".mark_score .totalScore.fr i").text();
  178. if (_isTrue2 == "marking_dui" || _isZero != "0") {
  179. _rightAns = $(t).find(".mark_answer").find(".colorDeep").text().replace(/我的答案[::]/, "").trim();
  180. } else {
  181. let _true = "正确|是|对|√|T|ri";
  182. _rightAns = $(t).find(".mark_answer").find(".colorDeep").text().replace(/我的答案[::]/, "").trim();
  183. if (_true.indexOf(_rightAns) != -1) {
  184. _rightAns = "错";
  185. } else {
  186. _rightAns = "对";
  187. }
  188. }
  189. }
  190. _a["question"] = _question;
  191. _a["type"] = _type;
  192. _a["answer"] = _rightAns;
  193. data.push(_a);
  194. break;
  195. case 4:
  196. if (_rightAns.length <= 0) {
  197. break;
  198. }
  199. _a["question"] = _question;
  200. _a["type"] = _type;
  201. _a["answer"] = _rightAns;
  202. data.push(_a);
  203. break;
  204. }
  205. });
  206. setTimeout(() => {
  207. uploadAnswer(data, 0);
  208. }, 1500);
  209. }
  210. function uploadHomeWork() {
  211. logger("开始收录答案", "green");
  212. let $_homeworktable = $(".mark_table");
  213. let TiMuList = $_homeworktable.find(".mark_item").find(".questionLi");
  214. let data = [];
  215. $.each(TiMuList, (i, t) => {
  216. let _a = {};
  217. let _answer;
  218. let _answerTmpArr, _answerList = [];
  219. let TiMuFull = tidyQuestion($(t).find("h3.mark_name").html());
  220. let TiMuType = { 单选题: 0, 多选题: 1, 填空题: 2, 判断题: 3, 简答题: 4 }[TiMuFull.match(/[(](.*?)[)]|$/)[1].replace(/, .*?分/, "")];
  221. let TiMu = TiMuFull.replace(/^[(].*?[)]|$/, "").trim();
  222. let rightAns_path = $(t).find(".mark_answer").find(".colorGreen")[0];
  223. switch (TiMuType) {
  224. case 0:
  225. let d_rightAns;
  226. if (rightAns_path) {
  227. d_rightAns = filterAnswerIndex($(t).find(".mark_answer").find(".colorGreen").text());
  228. } else {
  229. let _isTrue2 = $(t).find(".mark_answer").find(".mark_score span").attr("class");
  230. let _isZero = $(t).find(".mark_answer").find(".mark_score .totalScore.fr i").text();
  231. if (_isTrue2 == "marking_dui" || _isZero != "0") {
  232. d_rightAns = filterAnswerIndex($(t).find(".mark_answer").find(".colorDeep").text());
  233. } else {
  234. return;
  235. }
  236. }
  237. _answerTmpArr = $(t).find(".mark_letter li");
  238. $.each(_answerTmpArr, (a, b) => {
  239. _answerList.push(tidyStr($(b).html()).replace(/[A-Z].\s*/, ""));
  240. });
  241. let _i = { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 }[d_rightAns];
  242. _answer = _answerList[_i];
  243. _a["question"] = TiMu;
  244. _a["type"] = TiMuType;
  245. _a["answer"] = _answer;
  246. data.push(_a);
  247. break;
  248. case 1:
  249. _answer = [];
  250. let m_rightAns;
  251. if (rightAns_path) {
  252. m_rightAns = filterAnswerIndex($(t).find(".mark_answer").find(".colorGreen").text());
  253. } else {
  254. let _isTrue2 = $(t).find(".mark_answer").find(".mark_score span").attr("class");
  255. let _isZero = $(t).find(".mark_answer").find(".mark_score .totalScore.fr i").text();
  256. if (_isTrue2 == "marking_dui" || _isTrue2 == "marking_bandui" || _isZero != "0") {
  257. m_rightAns = filterAnswerIndex($(t).find(".mark_answer").find(".colorDeep").text());
  258. } else {
  259. break;
  260. }
  261. }
  262. _answerTmpArr = $(t).find(".mark_letter li");
  263. $.each(_answerTmpArr, (a, b) => {
  264. _answerList.push(tidyStr($(b).html()).replace(/[A-Z].\s*/, ""));
  265. });
  266. $.each(m_rightAns.split(""), (c, d) => {
  267. let _i2 = { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 }[d];
  268. _answer.push(_answerList[_i2]);
  269. });
  270. _a["question"] = TiMu;
  271. _a["type"] = TiMuType;
  272. _a["answer"] = _answer.join("#");
  273. data.push(_a);
  274. break;
  275. case 2:
  276. _answerTmpArr = [];
  277. let t_rightAns;
  278. let answers = $(t).find(".mark_answer").find(".colorDeep").find("dd");
  279. if (rightAns_path) {
  280. t_rightAns = $(rightAns_path).text().replace(/\s/g, "").replace(/[(][0-9].*?[)]/g, "#").replace(/第.*?空:/g, "#").replace(/^正确答案[::]#*/, "");
  281. _answer = t_rightAns;
  282. } else {
  283. let _isZero = $(t).find(".mark_answer").find(".mark_score .totalScore.fr i").text();
  284. if (_isZero && _isZero != 0) {
  285. $.each(answers, (i2, t2) => {
  286. t_rightAns = $(t2).find("span:eq(0)").text();
  287. _answerTmpArr.push(t_rightAns.replace(/[(][0-9].*?[)]/, "").replace(/第.*?空:/, "").trim());
  288. });
  289. } else {
  290. $.each(answers, (i2, t2) => {
  291. let _isTrue2 = $(t2).find("span:eq(1)").attr("class");
  292. if (_isTrue2 == "marking_dui") {
  293. t_rightAns = $(t2).find("span:eq(0)").text();
  294. _answerTmpArr.push(t_rightAns.replace(/[(][0-9].*?[)]/, "").replace(/第.*?空:/, "").trim());
  295. } else {
  296. return;
  297. }
  298. });
  299. }
  300. _answer = _answerTmpArr.join("#");
  301. }
  302. if (_answer.length != 0) {
  303. _a["question"] = TiMu;
  304. _a["type"] = TiMuType;
  305. _a["answer"] = _answer;
  306. data.push(_a);
  307. }
  308. break;
  309. case 3:
  310. let p_rightAns;
  311. if (rightAns_path) {
  312. p_rightAns = $(rightAns_path).text().replace(/\s/g, "").replace(/^正确答案[::]/, "");
  313. } else {
  314. let _isTrue2 = $(t).find(".mark_answer").find(".mark_score span").attr("class");
  315. let _isZero = $(t).find(".mark_answer").find(".mark_score .totalScore.fr i").text();
  316. if (_isTrue2 == "marking_dui" || _isZero != "0") {
  317. p_rightAns = $(t).find(".mark_answer").find(".colorDeep").text().replace(/\s/g, "").replace(/^我的答案[::]/, "");
  318. } else {
  319. let _true = "正确|是|对|√|T|ri";
  320. p_rightAns = $(t).find(".mark_answer").find(".colorDeep").text().replace(/\s/g, "").replace(/^我的答案[::]/, "");
  321. if (_true.indexOf(p_rightAns) != -1) {
  322. p_rightAns = "错";
  323. } else {
  324. p_rightAns = "对";
  325. }
  326. }
  327. }
  328. _a["question"] = TiMu;
  329. _a["type"] = TiMuType;
  330. _a["answer"] = p_rightAns;
  331. data.push(_a);
  332. break;
  333. case 4:
  334. let j_rightAns;
  335. if (rightAns_path) {
  336. j_rightAns = $(rightAns_path).text().replace(/\s/g, "");
  337. } else {
  338. break;
  339. }
  340. _a["question"] = TiMu;
  341. _a["type"] = TiMuType;
  342. _a["answer"] = j_rightAns;
  343. data.push(_a);
  344. break;
  345. }
  346. });
  347. setTimeout(() => {
  348. uploadAnswer(data, 0);
  349. }, 1500);
  350. }
  351. function uploadAnswer(a, t) {
  352. a.forEach((item) => {
  353. item.type = item.type + "";
  354. });
  355. return new Promise((resolve, reject) => {
  356. _GM_xmlhttpRequest({
  357. url: atob(_host) + "/api/v1/upload",
  358. data: JSON.stringify({
  359. "v": _GM_info["script"]["version"],
  360. "data": a,
  361. "uid": "13f2f52f434d44d6e595088b8f5a4baf"
  362. }),
  363. method: "POST",
  364. headers: {
  365. "Content-Type": "application/json"
  366. },
  367. onload: function (xhr) {
  368. try {
  369. if (t == 1) {
  370. resolve();
  371. } else {
  372. let res = JSON.parse(xhr.responseText);
  373. if (res["code"] == 1e3) {
  374. logger("Upload Success.", "green");
  375. } else {
  376. logger("Upload Error. Next Part.", "red");
  377. }
  378. resolve();
  379. }
  380. } catch {
  381. let res = xhr.responseText;
  382. if (res.indexOf("防火墙") != -1) {
  383. logger("Upload Error. Please contact the author.", "red");
  384. } else {
  385. logger("Upload Unknow Error. Please contact the author.", "red");
  386. }
  387. resolve();
  388. }
  389. }
  390. });
  391. });
  392. }

QingJ © 2025

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