-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcontent.js
109 lines (98 loc) · 2.84 KB
/
content.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/**
* FISAQuilbot Premium Content Script
* Handles dynamic element hiding and UI modifications
*/
// Error logging utility
const logError = (context, error) => {
console.error(`FISAQuilbot Error (${context}):`, error.message);
};
// Hide advertisement and donation elements
function hideElements() {
try {
const elementsToHide = {
ads: 'marquee#marqueeAds, marquee.__web-inspector-hide-shortcut__',
donations: 'img[src*="buymeacoffee.com"], img.__web-inspector-hide-shortcut__[alt="Buy Me A Coffee"]'
};
Object.entries(elementsToHide).forEach(([type, selector]) => {
try {
const elements = document.querySelectorAll(selector);
elements.forEach(element => {
element.style.setProperty('display', 'none', 'important');
});
} catch (err) {
logError(`hiding ${type} elements`, err);
}
});
} catch (error) {
logError('hideElements', error);
}
}
// Hide plagiarism checker elements
function hidePlagiarismChecker() {
try {
const plagiarismSelectors = [
'[data-testid="dashboard-product-card-plagiarism-checker-sm-md"]',
'.css-hey9bw[href*="plagiarism-checker"]',
'a[href*="plagiarism-checker"]'
];
plagiarismSelectors.forEach(selector => {
try {
const elements = document.querySelectorAll(selector);
elements.forEach(element => {
element.style.display = 'none';
});
} catch (err) {
logError(`hiding plagiarism element (${selector})`, err);
}
});
} catch (error) {
logError('hidePlagiarismChecker', error);
}
}
// Initialize observers for dynamic content
function initializeObservers() {
try {
const config = { childList: true, subtree: true };
// Observer for ads and donations
const elementObserver = new MutationObserver(() => {
try {
hideElements();
} catch (err) {
logError('elementObserver callback', err);
}
});
// Observer for plagiarism elements
const plagiarismObserver = new MutationObserver(() => {
try {
hidePlagiarismChecker();
} catch (err) {
logError('plagiarismObserver callback', err);
}
});
// Start observing
elementObserver.observe(document.body, config);
plagiarismObserver.observe(document.body, config);
} catch (error) {
logError('initializeObservers', error);
}
}
// Initialize extension
function initializeExtension() {
try {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => {
hideElements();
hidePlagiarismChecker();
initializeObservers();
});
} else {
hideElements();
hidePlagiarismChecker();
initializeObservers();
}
} catch (error) {
logError('initializeExtension', error);
}
}
// Start the extension
initializeExtension();