Skip to content

Commit 2e41475

Browse files
Merge pull request #5 from AhmedMohamedAbdelaty/fix-explanation
Refactor scrapeData function to improve readability and handle edge cases
2 parents c21803b + 6c38b82 commit 2e41475

1 file changed

Lines changed: 30 additions & 7 deletions

File tree

popup.js

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,13 @@ function scrapeData() {
3838
var i = 0;
3939
let isAD = function (element) {
4040
if (
41-
element.classList.contains("google-auto-placed") ||
42-
element.classList.contains("ap_container") ||
43-
element.classList.contains("google-auto-placed ap_container") ||
44-
element.classList.contains("sf-mobile-ads") ||
45-
element.classList.contains("sf-desktop-ads")
41+
element &&
42+
element.classList &&
43+
(element.classList.contains("google-auto-placed") ||
44+
element.classList.contains("ap_container") ||
45+
element.classList.contains("google-auto-placed ap_container") ||
46+
element.classList.contains("sf-mobile-ads") ||
47+
element.classList.contains("sf-desktop-ads"))
4648
) {
4749
return true;
4850
}
@@ -57,7 +59,10 @@ function scrapeData() {
5759
let ExplanationCode = "";
5860
i++;
5961
// get the code
60-
while (isAD(content.children[i])) {
62+
while (
63+
isAD(content.children[i]) ||
64+
!content.children[i]?.querySelector("pre")
65+
) {
6166
i++;
6267
}
6368
// get the pre tag
@@ -90,6 +95,10 @@ function scrapeData() {
9095
while (isAD(content.children[i])) {
9196
i++;
9297
}
98+
// the answer is in div tag, skip any other tags
99+
while (content.children[i].tagName !== "DIV") {
100+
i++;
101+
}
93102
let answerDiv = content.children[i];
94103
answer = answerDiv.innerText;
95104
// remove "Answer: " from the string
@@ -162,7 +171,21 @@ function scrapeData() {
162171
}
163172
i++;
164173
}
165-
174+
for (let i = 0; i < questions.length; i++) {
175+
let question = questions[i];
176+
console.log(
177+
"Question: ",
178+
question.questionText,
179+
"\nCode: ",
180+
question.codeText,
181+
"\nChoices: ",
182+
question.choices,
183+
"\nAnswer: ",
184+
question.answer,
185+
"\nExplanation: ",
186+
question.explanation
187+
);
188+
}
166189
chrome.runtime.sendMessage({ title: title.innerText, questions });
167190
}
168191

0 commit comments

Comments
 (0)