用于立得学单词词测的自动答题
// ==UserScript==
// @name 立得学自动答题
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 用于立得学单词词测的自动答题
// @author H-OH
// @match https://danci.lidexue.com/index.html
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// ==/UserScript==
(function() {
'use strict';
GM_registerMenuCommand("添加单词",add,"A");
GM_registerMenuCommand("自动答题",run,"R");
var now=new Array(),ans=new Array();
function load()
{
now=new Array();
ans=new Array();
var all=GM_getValue("words","");
var flag=false;
var useq="",usea="";
for (var i=0;i<all.length;i++)
{
if (all[i]=="=")
{flag=true;}
else if (all[i]=="\n")
{
now.push(useq);
ans.push(usea);
useq="";
usea="";
flag=false;
}
else if (flag)
{usea=usea+all[i];}
else
{useq=useq+all[i];}
}
}
function save()
{
var res="";
for (var i=0;i<now.length;i++)
{res=res+now[i]+"="+ans[i]+"\n";}
GM_setValue("words",res);
}
function add()
{
load();
var ens=document.getElementsByClassName("cli-con mag-bottom3");
var chs=document.getElementsByClassName("flex zhong mag-bottom1");
var en="",ch="";
for (var i=0;i<ens.length;i++)
{
ch=chs[i].children[1].innerText;
en=ens[i].innerText.substr(ens[i].innerText.indexOf(".")+2);
if (now.includes(en))
{continue;}
now.push(en);
ans.push(ch);
}
save();
alert("添加完成!");
}
function solve(id,num)
{
var pro=document.getElementsByTagName("h1")[0].innerText;
var at=now.findIndex(e=>e==pro);
if (at!=-1)
{
var todo=document.getElementsByTagName("input")[0];
var task=document.createEvent("HTMLEvents");
task.initEvent("input",true,true);
todo.value=ans[at];
todo.dispatchEvent(task);
}
if (id==num)
{return;}
setTimeout(next,300,id+1,num);
}
function next(id,num)
{
if (id!=1)
{document.getElementsByClassName("start_end_btn xend")[0].children[0].click();}
setTimeout(solve,300,id,num);
}
function run()
{
load();
var info=document.getElementsByClassName("questionIndex")[0].innerText;
var num=40;
if (info[info.indexOf("/")+3]=="0")
{num=100;}
next(1,num);
}
})();