云题库刷题

try to take over the world!

当前为 2020-05-17 提交的版本,查看 最新版本

// ==UserScript==
// @name         云题库刷题
// @namespace    http://tampermonkey.net/
// @version      2.1
// @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);
                         //alert("加载");
                      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.yxmnb.top/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("题库里面一道题也没有,快答题扩充题库吧");
                  }
                 }
             }
         });
             }
         });
         });

         

         

          
     }
    
})();
function addAnswerButton(addHTML){
    $("#putIn").after(addHTML).bind("click",function(){this.hide()});
}
 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);
           }
         });
}