main.user.js aktualisiert
This commit is contained in:
parent
b0b22d8486
commit
7231c34220
1 changed files with 1 additions and 75 deletions
76
main.user.js
76
main.user.js
|
@ -27,7 +27,7 @@ window.addEventListener("keydown", event => {
|
||||||
const oldAwnsersURL = GM_getValue(URL_STORAGE_KEY);
|
const oldAwnsersURL = GM_getValue(URL_STORAGE_KEY);
|
||||||
let newAwnsersURL = prompt("Please input the answer url (itexamanswers.net)", oldAwnsersURL);
|
let newAwnsersURL = prompt("Please input the answer url (itexamanswers.net)", oldAwnsersURL);
|
||||||
GM_setValue(URL_STORAGE_KEY, newAwnsersURL);
|
GM_setValue(URL_STORAGE_KEY, newAwnsersURL);
|
||||||
fetchData(newAwnsersURL);
|
awnserData = await window.fetchAwnsers(newAwnsersURL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "n":
|
case "n":
|
||||||
|
@ -101,77 +101,3 @@ function matchAwnser(textA, textB) {
|
||||||
textB = textB.replace(replaceRegex, "");
|
textB = textB.replace(replaceRegex, "");
|
||||||
return (textA === textB);
|
return (textA === textB);
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchData(awnserURL = ""){
|
|
||||||
GM_xmlhttpRequest({
|
|
||||||
method: "GET",
|
|
||||||
url: awnserURL,
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "text/html"
|
|
||||||
},
|
|
||||||
onload: function(response) {
|
|
||||||
awnserImgs = new Map();
|
|
||||||
const results = [];
|
|
||||||
const parser = new DOMParser();
|
|
||||||
const virtDom = parser.parseFromString(response.responseText, "text/html");
|
|
||||||
|
|
||||||
let answersDom = virtDom.querySelector(".pf-content");
|
|
||||||
if (!answersDom) {
|
|
||||||
answersDom = virtDom.querySelector(".thecontent");
|
|
||||||
}
|
|
||||||
|
|
||||||
let index = -1;
|
|
||||||
for (let childDom of answersDom.children) {
|
|
||||||
index++;
|
|
||||||
|
|
||||||
if (childDom.tagName === "P" || childDom.tagName === "STRONG" ) {
|
|
||||||
|
|
||||||
// maybe a question question
|
|
||||||
let innerDom = childDom.querySelector("strong");
|
|
||||||
if (innerDom === null) {
|
|
||||||
if(!childDom.textContent){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
innerDom = childDom;
|
|
||||||
};
|
|
||||||
|
|
||||||
const textContent = innerDom.textContent.trim();
|
|
||||||
const matches = textContent.match(/^[0-9]+\. (.*)$/);
|
|
||||||
if (matches !== null) {
|
|
||||||
const questionText = matches[1];
|
|
||||||
|
|
||||||
// most likely a question
|
|
||||||
let nextChild = answersDom.children[index + 1];
|
|
||||||
|
|
||||||
if (nextChild.tagName === "P"){
|
|
||||||
nextChild = answersDom.children[index + 2];
|
|
||||||
};
|
|
||||||
|
|
||||||
if (nextChild === null) continue;
|
|
||||||
|
|
||||||
if (nextChild.tagName === "UL") {
|
|
||||||
// most likely the awnser
|
|
||||||
const answers = [];
|
|
||||||
for (let answerDom of nextChild.querySelectorAll("strong")) {
|
|
||||||
let answerText = answerDom.textContent.trim();
|
|
||||||
if (answerText.endsWith("*")) {
|
|
||||||
answerText = answerText.substring(0, answerText.length - 1);
|
|
||||||
}
|
|
||||||
answers.push(answerText);
|
|
||||||
}
|
|
||||||
|
|
||||||
results.push({
|
|
||||||
question: questionText,
|
|
||||||
answers: answers
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
awnserData = results;
|
|
||||||
GM_log(results);
|
|
||||||
GM_log(awnserImgs);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
Loading…
Reference in a new issue