-
Notifications
You must be signed in to change notification settings - Fork 1
/
testScam.js
82 lines (79 loc) · 3.45 KB
/
testScam.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
function getRealDoc() {
let iframe = document.getElementsByTagName("iframe")[0]
if (iframe) {
return iframe.contentDocument
} else {
return null
}
}
function waitForQuestions() {
return new Promise(resolve => {
if (getRealDoc().getElementsByClassName('problem-header').length > 0) {
return resolve(getRealDoc().getElementsByClassName('problem-header').length);
}
let timerId = setInterval(() => {
if (getRealDoc().getElementsByClassName('problem-header').length > 0) {
clearInterval(timerId)
return resolve(getRealDoc().getElementsByClassName('problem-header'));
}
}, 1000);
});
}
waitForQuestions().then(r => testScam())
function testScam() {
if (getRealDoc().getElementsByClassName('testScam').length) {
console.log("Answers already added")
return;
}
var questions = Array.from(getRealDoc().getElementsByClassName('problem-header'));
console.log('Questions:');
console.log(questions);
if (answers.length === 0) {
console.error('Has no answers');
} else questions.forEach((q) => {
if (q) {
//var regex = new RegExp(q.innerText, "i");
var answer = answers.filter((ans) => {
return ans.question.toLowerCase().includes(q.innerText.toLowerCase())
});
if (answer.length) {
var ans = document.createElement('div');
ans.className = 'testScam';
ans.innerHTML = `Answer: ${answer.map(e => e.answer).join("<div style='font-weight: bold'>ANOTHER ANSWER:</div>")}`;
q.insertAdjacentElement('afterend', ans);
/* auto-select answer
try {
var el = Array.from(Array.from(Array.from(q.parentElement.children).find((e) => {
return e.className === 'problem'
}).children[0].children).filter((p) => {
return p.tagName.toLowerCase() === 'div'
})[0].children[0].children[0].children).find((div) => {
if (div.nodeName !== 'SPAN') {
var r = new RegExp(answer.answer, "i");
return r.test(div.children[0].innerText)
}
}).children[0];
if (!el.children[0].checked) el.children[0].click();
} catch (e) {
answer.answer.split(', ').forEach((a) => {
if (a) {
try {
var el = Array.from(Array.from(q.parentElement.children).find((e) => {
return e.className === 'problem'
}).children[0].children[0].children[0].children[0].children).find((div) => {
if (div.nodeName !== 'SPAN') {
var r = new RegExp(a, "i");
return r.test(div.children[0].innerText)
}
}).children[0];
if (!el.children[0].checked) el.children[0].click();
} catch (ee) {
console.log(ee.stack)
}
}
})
}*/
}
}
});
};