您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name 云题库刷题辅助 // @namespace http://tampermonkey.net/ // @version 2.4 // @description try to take over the world! // @author 吃瓜男孩 // @match http://tiku.kgc.cn/testing/exam/* // @match http://tiku.kgc.cn/testing/unified/* // @match http://tiku.kgc.cn/testing/paper/* // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest //@require https://cdn.bootcss.com/spark-md5/3.0.0/spark-md5.min.js //@connect * // ==/UserScript== var currentURL = window.location.href; (function() { 'use strict'; jQuery.support.cors = true; var answerURL = /tiku\.kgc\.cn\/testing\/exam*/; var testURL = /tiku\.kgc\.cn\/testing\/unified*/; var sumbitURL = /tiku\.kgc\.cn\/testing\/paper\/report*/; if (answerURL.test(currentURL) || testURL.test(currentURL)) { $(document).ready(function() { var questHTML = $(".sec2>pre>img"); var reg = /\d{10,15}/; window.quests = new Array(); $(questHTML).bind("load", function() { var ele = this; var returnValue = function(e) { window.quests[window.quests.length] = e; $(ele).attr('data', e); console.log(window.quests.length + "," + questHTML.length + "," + e); if (window.quests.length == questHTML.length) { addAnswerButton(addHTML) } }; returnImgMd5(this.src, returnValue) }); setTimeout(function() { for (var e = 0; e < questHTML.length; e++) { if ($(questHTML[e]).attr("data") == null) { console.log("节点" + e); var ele = $(questHTML[e]); var returnValue = function(e) { window.quests[window.quests.length] = e; $(ele).attr('data', e); console.log(window.quests.length + "," + questHTML.length + "," + e); if (window.quests.length == questHTML.length) { addAnswerButton(addHTML) } }; returnImgMd5($(ele).attr("src"), returnValue) } } }, 3000); var addHTML = $('<a id="getAnswer" href="javascript:void(0);" class="f14 rest acenter"></a>').text("获取答案").click(function() { console.log(window.quests); if (window.quests != null && window.quests.length > 0) { GM_xmlhttpRequest({ method: "post", url: 'http://tiku.summerpond.cn/answer/get', data: JSON.stringify(quests), headers: { "Content-Type": 'application/json;charset=utf-8' }, onload: function(r) { if (r.status == 200) { var answerResult = []; answerResult = JSON.parse(r.responseText); if (answerResult.length > 0) { for (var a = 0; a < questHTML.length; a++) { var questMd5 = $(questHTML[a]).attr("data"); for (var w = 0; w < answerResult.length; w++) { var answer = answerResult[w].answer; if (questMd5 == answerResult[w].imageMd5 && answer != null) { var value = answer.split(','); var options = $(questHTML[a]).parents(".sec").find(".sec2>li"); if (value.length == 1) { options[value[0]].click() } else { for (var q = 0; q < value.length; q++) { options[value[q]].click() } } } } } } else { alert("糟糕,题库里面一道题也没有") } } } }) } $("#getAnswer").hide(); }); }) } })(); function addAnswerButton(addHTML) { $("#putIn").after(addHTML); } function returnImgMd5(url, callback) { GM_xmlhttpRequest({ method: 'GET', responseType: "blob", url: url, onload: response => { //console.log("状态码" + response.status); if (response.status == 200) { var reader = new FileReader(); reader.onload = function(e) { var spark = new SparkMD5.ArrayBuffer(); spark.append(e.target.result); callback(spark.end()) } reader.onerror = function(e) { console.log("解析异常" + e) } console.log(reader.readyState); reader.readAsArrayBuffer(response.response) } }, onerror: function(e) { console.log("请求失败" + e) } }) };