// ==UserScript== // @name 灯塔党建自动答题 // @namespace // @version 2.0 // @description 1、增加答案显示 // @author Aaron // @match http://*.dtdjzx.gov.cn/kaishijingsai.html // @grant none // @downloadURL https://update.greasyfork.icu/scripts/367789/%E7%81%AF%E5%A1%94%E5%85%9A%E5%BB%BA%E8%87%AA%E5%8A%A8%E7%AD%94%E9%A2%98.user.js // @updateURL https://update.greasyfork.icu/scripts/367789/%E7%81%AF%E5%A1%94%E5%85%9A%E5%BB%BA%E8%87%AA%E5%8A%A8%E7%AD%94%E9%A2%98.meta.js // ==/UserScript== (function() { var domen=location.href.substring(location.href.indexOf("//")+2,location.href.indexOf(".")); var allDataList=[]; var err=[]; var dataId=""; var dataName=""; var tkList=""; var isLoad=false; var allDataListWidthAns=[]; var tkNum=0; $(".w_btn_tab").append("
"); $("#divAutoA").append("
"); function getAns(tm){ for(let i=0;i=0){ var a=allDataList[i].optionInfoList.filter(f=>f.isRight==1); return a; } } return []; } //获取全部题库列表 $.get("http://"+domen+".dtdjzx.gov.cn/quiz-api/chapter_info/list",r=>{ if(r.code==200&&r.data.length>0){ tkList=r.data; dataId=r.data[0].id; dataName=r.data[0].title; loadTK(); } }); function randomClick(){ for(var i=0;i<19;i++){ ClickButton({ button:0, clientX:getRandom(1051,974), clientY:getRandom(855,833) }); } } function getRandom(max,min){ return parseInt(Math.random()*(max-min+1)+min,10); } function loadTK(){ $.get("http://"+domen+".dtdjzx.gov.cn/quiz-api/subject_info/list?chapterId="+dataId,r=>{ if(r.code==200){ $("#divMsg").text("成功载入《"+dataName+"》 "+r.data.totalSubject+" 题库!"); allDataList=r.data.subjectInfoList; $("#divAutoA").prepend("答案"); $("#divAutoA").prepend("自动分析"); $("#divAutoA").prepend("加载全部题库"); $("#divAutoA").prepend(""); $("#cbCheck3").click(e=>{loadOtherTK();}); $("#cbCheck4").click(e=>{showAns();}); $("#btnAuto").click(()=>{ randomClick(); let elemLi=$(".w_charu li"); for(var i=0;ii){ ans=A_ans[i].split(','); }else{ ans=getAns(tm); } if(ans.length<=0){ var autoC=$("#cbCheck2").prop("checked"); if(autoC){ var ansStr=muItem(tm); if(ansStr){ var e_lelemts_s=$(e).find("input").next(); for(var ei=0;ei1?e_as_l[1]:e_as_l[0]; if(ansStr.indexOf(e_as)>=0) $(e_lelemts_s[ei]).prev().click(); } err.push("第 "+(i+1)+" 题,未找到答案,分析成功,请您核实。"); var t=getTnum(ansStr); console.log("第 "+(i+1)+" 题,答案:"+ansStr+t); }else{ err.push("第 "+(i+1)+" 题,未找到答案,分析失败"); } }else{ err.push("第 "+(i+1)+" 题,未找到答案."); } } ans.forEach(a=>{ if(a.optionTitle) $(e).find("input").next(":contains('"+a.optionTitle+"')").prev().click(); else $(e).find("[value='"+a+"']").click(); }); } if(err.length>0){ $("#divMsg").html(err.join("
")); }else{ $("#divMsg").text("答题完成"); } }); } }); } var A_ans=[]; var A_ansList=[]; function showAns(){ if(A_ans.length==0 && $("#cbCheck4").prop('checked')){ if(A_ansList.length==0){ $.ajax({ async:false , type: "post", url:'http://'+domen+'.dtdjzx.gov.cn/quiz-api/game_info/lookBackSubject', data:{roundOnlyId:roundOnlyId}, dataType: "json", success: function(data) { if(data.success&&data.data.dateList.length>0){ A_ansList=data.data.dateList; let ttt=""; let i=0; A_ansList.forEach(e=>{ A_ans.push(e.answer); i++; ttt+=i+":"+e.answer+"、"; }); $("#divMsg").text(ttt); }else{ $("#divMsg").text("答案加载失败"); } } }); }else{ let ttt=""; let i=0; A_ansList.forEach(e=>{ A_ans.push(e.answer); i++; ttt+=i+":"+e.answer+"、"; }); $("#divMsg").text(ttt); } }else{ A_ans=[]; } } function getTnum(s){ var ss=s.split("|"); var str=""; if(ss.length>1){ let lastCount=tkNum%200; for(var i=1;i0){ var z= n<=lastCount?1:parseInt((n-lastCount)/200)+2; var t=n<=lastCount?n:(n-lastCount)%200; str+="第"+z+"期,第"+t+"题。"; } } } return str; } function loadOtherTK(){ if(!isLoad && $("#cbCheck3").prop('checked')){ allDataList=[]; tkList.forEach(tk=>{ $.get("http://"+domen+".dtdjzx.gov.cn/quiz-api/subject_info/list?chapterId="+tk.id,r=>{ if(r.code==200){ allDataList=allDataList.concat(r.data.subjectInfoList); tkNum+=r.data.totalSubject; $("#divMsg").text("成功载入"+tkNum+" 题库!"); } }); }); } } //分析变异题目 function muItem(qStr){ if(allDataListWidthAns.length==0) addAns(); let index=qStr.indexOf('()'); let serLen=qStr.length>10?10:qStr.length; let toRight=true; let serIndex=0; let serStr=''; if(index1){ if(list.length<1){ serLen--; if(!toRight) serIndex++; } if(list.length>1){ serLen++; if(!toRight) serIndex--; } list=getG(qStr.substr(serIndex,serLen)); if(list.length!=n_l) break; } if(list.length>0){ var in_list=findIndex(qStr,"()"); var ass=[]; in_list.forEach(e=>{ var s=getAnsStr(qStr,list[0],e); var st=list[0].split("|"); if(st.length>1) s+="|"+st[1]; ass.push(s); }); return ass.join(";"); } return ""; } function getAnsStr(qStr,mbStr,index){ let s_index=-1;let e_index=-1; if(index<3) s_index=index; else if(index >= qStr.length-3) e_index=mbStr.length-1; if(e_index<0){ let i_index=1; let endStr=""; let endIndex=-1; while (endIndexindex){ e_index=endIndex; } } if(s_index<0){ let i_index=2; let staStr=""; let staIndex=-1; while (staIndex<0 && (index-i_index)>=0) { i_index++; staStr=qStr.substr(index-i_index,3); staIndex= mbStr.indexOf(staStr); } if(staIndex>=0){ s_index=staIndex+3; } } if(s_index=0) return mbStr.substring(s_index,e_index); } function getG(str){ var l=[]; allDataListWidthAns.forEach(e=>{ if(e.indexOf(str)>=0){ l.push(e); } }); return l; } function findIndex(str1,str2){ var res=[]; var len=0; var list=str1.split(str2); for(var i=0;i{ i++; var ans=""; e.optionInfoList.forEach(a=>{ if(a.isRight=="1") ans+=a.optionTitle; }); var t=e.subjectTitle.replace(/(/g,ans); t=t.replace(/)/g,""); allDataListWidthAns.push(t+"|"+i); }); } })();