-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
popup.js
142 lines (122 loc) · 5.51 KB
/
popup.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
function smoothScroll() {
return new Promise(async (resolve) => {
let totalScrollHeight = 10 * window.innerHeight;
let scrolledHeight = 0;
const scrollStep = window.innerHeight;
while (scrolledHeight < totalScrollHeight) {
window.scrollBy(0, scrollStep);
scrolledHeight += scrollStep;
await new Promise((resolve) => setTimeout(resolve, 1));
}
resolve();
});
}
async function checkForSponsoredContent() {
while (true) {
const articleDivs = document.querySelectorAll('div[role="article"]');
let sponsoredFound = false;
for (const articleDiv of articleDivs) {
if (articleDiv.innerHTML.includes("<span>Sponsored</span>")) {
sponsoredFound = true;
// alert("Sponsored content found!");
const actionsButton = articleDiv.querySelector(
'div[aria-label="Actions for this post"]',
);
if (actionsButton) {
actionsButton.click();
// alert("Clicked on 'Actions for this post'");
await new Promise((resolve) => setTimeout(resolve, 1000));
const menu = document.querySelector(
'div[aria-label="Feed story menu"]',
);
if (menu) {
const reportAdOption = Array.from(
menu.querySelectorAll('div[role="menuitem"]'),
).find((item) =>
item.textContent.includes("Report ad"),
);
if (reportAdOption) {
// alert("'Report ad' option found!");
reportAdOption.click();
// alert("Clicked on 'Report ad'");
await new Promise((resolve) =>
setTimeout(resolve, 2000),
);
const otherOption = Array.from(
document.querySelectorAll(
'div[role="listitem"]',
),
).find((item) =>
item.textContent.includes("Other"),
);
if (otherOption) {
// alert("'Other' option found!");
const specificOtherButton =
document.querySelector(
".x1n2onr6:nth-child(11) .x1i10hfl > .x9f619 > .x9f619",
);
if (specificOtherButton) {
specificOtherButton.click();
} else {
otherOption.click();
}
// alert("Clicked on 'Other'");
await new Promise((resolve) =>
setTimeout(resolve, 1000),
);
const doneButton = document.querySelector(
'div[aria-label="Done"][role="button"]',
);
if (doneButton) {
doneButton.click();
let totalScrollHeight =
10 * window.innerHeight;
let scrolledHeight = 0;
const scrollStep = window.innerHeight;
while (scrolledHeight < totalScrollHeight) {
window.scrollBy(0, scrollStep);
scrolledHeight += scrollStep;
await new Promise((resolve) =>
setTimeout(resolve, 1),
);
}
} else {
// alert("'Done' button not found");
}
} else {
// alert("'Other' option not found");
}
} else {
// alert("'Report ad' option not found in the menu");
}
} else {
// alert("Feed story menu not found");
}
} else {
// alert("'Actions for this post' button not found");
}
break;
}
}
if (!sponsoredFound) {
await smoothScroll();
await new Promise((resolve) => setTimeout(resolve, 1));
}
}
}
function startShootingArrow() {
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
chrome.scripting.executeScript({
target: { tabId: tabs[0].id },
function: checkForSponsoredContent,
});
});
}
document
.getElementById("startShootingArrow")
.addEventListener("click", startShootingArrow);
document
.getElementById("stopShootingArrow")
.addEventListener("click", function () {
console.log("Stopping not implemented yet");
});