Fixing question answer getting on result page, and replacing some old URL-s

This commit is contained in:
YourFriendlyNeighborhoodDealer 2019-03-02 08:32:39 +01:00
parent 2c19d05489
commit e71b781164
2 changed files with 40 additions and 8 deletions

View file

@ -34,8 +34,8 @@
// @grant GM_xmlhttpRequest
// @grant GM_openInTab
// @license GNU General Public License v3.0 or later
// @supportURL questionmining.tk
// @contributionURL questionmining.tk
// @supportURL qmining.tk
// @contributionURL qmining.tk
// @resource data file:///<file path space is %20, and use "/"-s plz not "\" ty (and add .txt)// UTF-8 PLZ>
// @namespace https://greasyfork.org/users/153067
// ==/UserScript==

44
main.js
View file

@ -384,13 +384,39 @@ function GetSelectAnswer() {
function GetAnswerNode(i) {
if (logElementGetting)
Log("getting answer node");
var results = GetFormResult(); // getting results element
var r = results[i].getElementsByClassName("answer")[0].childNodes;
var ret = [];
for (var j = 0; j < r.length; j++)
if (r[j].tagName != undefined && r[j].tagName.toLowerCase() == "div")
ret.push(r[j]);
return ret;
let qtype = DetermineQuestionType(ret);
return {
nodes: ret,
type: qtype
};
}
function DetermineQuestionType(nodes) {
let qtype = "";
let i = 0;
while (i < nodes.length && qtype == "") {
let inps = nodes[i].getElementsByTagName("input");
if (inps.length > 0) {
qtype = inps[0].type;
}
i++;
}
return qtype;
}
function GetPossibleAnswers(i) {
@ -548,7 +574,6 @@ function GetQuestionFromResult(i) {
// tries to get right answer from result page
// i is the index of the question
function GetRightAnswerFromResult(i) {
var possibleAnswers = GetPossibleAnswers(i);
var fun = [];
// the basic type of getting answers
@ -558,8 +583,9 @@ function GetRightAnswerFromResult(i) {
return temp[0].innerText; // adding the answer to curr question as .a
});
// if there is dropdown list in the current question
fun.push(function TryGet1(i) {
if (GetDropboxes(i).length > 0) // if there is dropdown list in the current question
if (GetDropboxes(i).length > 0)
return GetCurrentAnswer(i);
});
@ -577,6 +603,7 @@ function GetRightAnswerFromResult(i) {
// if the correct answers are not shown, and the selected answer
// is incorrect, and there are only 2 options
fun.push(function TryGet4(i) {
var possibleAnswers = GetPossibleAnswers(i);
if (possibleAnswers.length == 2) {
for (var k = 0; k < possibleAnswers.length; k++)
if (possibleAnswers[k].iscorrect == undefined)
@ -602,7 +629,12 @@ function GetRightAnswerFromResult(i) {
// i is the index of the question
function GetRightAnswerFromResultv2(i) {
try {
var items = GetAnswerNode(i);
var answerNodes = GetAnswerNode(i);
let items = answerNodes.nodes;
if (answerNodes.type == "checkbox")
return GetRightAnswerFromResult(i);
for (var j = 0; j < items.length; j++) {
var cn = items[j].className;
if (cn.includes("correct") && !cn.includes("incorrect"))
@ -1254,9 +1286,9 @@ function GetQuiz() {
if (q != undefined)
question.q = SimplifyQuery(q);
// RIGHTANSWER ---------------------------------------------------------------------------------------------------------------------
var a = GetRightAnswerFromResult(i);
var a = GetRightAnswerFromResultv2(i);
if (a == undefined)
a = GetRightAnswerFromResultv2(i);
a = GetRightAnswerFromResult(i);
if (a != undefined)
question.a = SimplifyQuery(a);
// IMG ---------------------------------------------------------------------------------------------------------------------