-
Notifications
You must be signed in to change notification settings - Fork 0
/
content.js
83 lines (70 loc) · 2.75 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
function hideTweets() {
const keywords = [
"kamala", "donald", "tim walz", "jd vance",
"harris", "trump", "walz", "vance",
"presidential election", "2024 election", "election",
"campaign", "trump campaign", "harris campaign",
"debate", "election debate", "vote",
"voting", "ballot", "polling", "polls",
"electoral college", "swing state", "battleground state",
"democratic party", "republican party", "GOP", "DNC",
"maga", "make america great again", "build back better",
"tax reform", "healthcare", "immigration",
"foreign policy", "supreme court", "scotus",
"senate", "congress", "house of representatives",
"governor", "senator", "representative",
"left wing", "right wing", "liberal", "conservative",
"progressive", "moderate", "socialism", "capitalism",
"fake news", "media bias", "mainstream media", "MSM",
"campaign finance", "super pac", "dark money"
];
const tweets = document.querySelectorAll('article');
tweets.forEach(tweet => {
const tweetText = (tweet.innerText || tweet.textContent).toLowerCase();
if (keywords.some(keyword => tweetText.includes(keyword))) {
tweet.style.display = 'none';
}
});
}
function unhideTweets() {
const tweets = document.querySelectorAll('article');
tweets.forEach(tweet => {
tweet.style.display = '';
});
}
// Function to hide the entire sidebar
function hideSidebar() {
const sidebar = document.querySelector('[data-testid="sidebarColumn"]');
if (sidebar) {
sidebar.style.display = 'none';
}
}
function unhideSidebar() {
const sidebar = document.querySelector('[data-testid="sidebarColumn"]');
if (sidebar) {
sidebar.style.display = '';
}
}
// Check the hiding state and distractions state from localStorage
function applyHidingState() {
const hidePolitical = localStorage.getItem('hidePolitical') === 'true';
const hideDistractionsEnabled = localStorage.getItem('hideDistractionsEnabled') === 'true';
if (hidePolitical) {
hideTweets();
} else {
unhideTweets();
}
if (hideDistractionsEnabled) {
hideSidebar();
} else {
unhideSidebar();
}
}
// Run the function when the page is loaded
window.addEventListener('load', applyHidingState);
// Observe for new tweets and sidebar elements dynamically loaded into the page
const observer = new MutationObserver(applyHidingState);
observer.observe(document.body, { childList: true, subtree: true });
// Ensure that the sidebar stays hidden after page navigation or reload
window.addEventListener('popstate', applyHidingState);
window.addEventListener('pushstate', applyHidingState);