You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add post hiding with overlay, whitelist, and following protection
Features:
- Replace element removal with overlay approach for post hiding
- 50% opacity background matching X.com theme with 8px blur
- Preserves original post and all click handlers
- Unhidden notice appears below post after unhiding
- Add whitelist functionality to never mute specific users
- Add following protection setting (default: don't mute followed users)
- Combine getUserId and isFollowingUser into single getUserData API call
- Add statusScanner for post detail pages with replies
- Add unmute API integration when whitelisting users
Technical:
- Convert cache to accept TTL parameter, add followingCache (5min TTL)
- Create hiddenPostNotice and unhiddenNotice UI components
- Update scanners to only process mutation.addedNodes
- Add in-flight request tracking to prevent race conditions
- Fix cache early return bug that prevented post hiding
- Update button labels for clarity (Undo→Unhide, Whitelist→Unmute and whitelist)
Closes issues with duplicate processing and improves UX with immediate post hiding
@@ -4,9 +4,13 @@ Automatically mute X.com (Twitter) users from specified countries using X's new
4
4
5
5
## Features
6
6
7
+
-**Instant Post Hiding**: Posts from blacklisted users are hidden immediately with a 50% opacity overlay and 8px blur effect that adapts to your X.com theme
7
8
-**Automatic Country Detection**: Uses X.com's AboutAccountQuery API to detect users' originating countries
8
9
-**Customizable Blacklist**: Specify which countries to automatically mute
9
-
-**Multi-Page Support**: Works on timeline, profiles, search results, and notifications
10
+
-**Whitelist Support**: Whitelist specific users to never mute them, regardless of country
11
+
-**Following Protection**: Optional setting to skip muting users you follow (enabled by default)
12
+
-**Multi-Page Support**: Works on timeline, profiles, search results, post detail pages (with replies), and notifications
13
+
-**Persistent Cache**: Country and following status cached to reduce API calls
10
14
-**Mute Database**: Tracks all automatically muted users with username, country, and timestamp
11
15
-**CSV Export**: Export your muted users list to CSV format
12
16
-**Cross-Browser**: Supports both Chrome/Edge (Manifest V3) and Firefox (Manifest V2)
@@ -15,11 +19,19 @@ Automatically mute X.com (Twitter) users from specified countries using X's new
15
19
16
20
When you browse X.com, the extension:
17
21
18
-
1. Scans pages for user profiles (timeline, search, profiles, notifications)
19
-
2. Queries X.com's AboutAccountQuery API to get the user's originating country
20
-
3. Checks if the country is in your blacklist
21
-
4. Automatically mutes the user if their country matches
22
-
5. Saves the muted user to a local database for tracking
22
+
1. Scans pages for user profiles (timeline, search, profiles, post detail pages, notifications)
23
+
2. Fetches user ID and following status from X.com's UserByScreenName API
24
+
3. Checks if user is whitelisted (skips if true)
25
+
4. Checks if you follow the user and if "mute following" is disabled (skips if true)
26
+
5. Queries X.com's AboutAccountQuery API to get the user's originating country (cached for 24 hours)
27
+
6. Checks if the country is in your blacklist
28
+
7.**Immediately overlays the post** with a 50% opacity background (matching your theme) and 8px blur, while keeping the original post intact
29
+
8. Automatically mutes the user via X.com's API if first time seeing them
30
+
9. Saves the muted user to a local database for tracking
31
+
32
+
The overlay approach preserves all post functionality - click handlers remain intact so you can interact with the post after unhiding it.
33
+
34
+
All checks use persistent caching to minimize API requests and improve performance.
23
35
24
36
## Installation
25
37
@@ -81,17 +93,35 @@ For permanent installation of unsigned extensions:
81
93
- Enter a country name (e.g., "United States", "Antarctica")
82
94
- Click "Add" to add it to your blacklist
83
95
84
-
2.**Browse X.com**
96
+
2.**Manage Whitelist**
97
+
- Open the extension popup
98
+
- In the "Whitelisted Users" section, enter a username
99
+
- Click "Add" to whitelist them (they'll never be muted, regardless of country)
100
+
- Click the "×" next to a username to remove them from whitelist
101
+
102
+
3.**Configure Settings**
103
+
- Open the extension popup and go to "Settings"
104
+
- Toggle "Show country flags" to display flags next to usernames
105
+
- Toggle "Also mute users you are following" (disabled by default means you won't mute users you follow)
106
+
107
+
4.**Browse X.com**
85
108
- The extension automatically scans for users as you browse
86
-
- When a user from a blacklisted country is found, they're automatically muted
87
-
- A toast notification appears when a user is muted
109
+
- When a user from a blacklisted country is found, their posts are **immediately hidden** with a blurred overlay
110
+
- A toast notification appears when a user is muted via X.com's API
88
111
89
-
3.**View Muted Users**
112
+
5.**Interact with Hidden Posts**
113
+
-**Unhide**: Click "Unhide" on the overlay to reveal the post
114
+
- A notice appears below the unhidden post: "Post unhidden, but user is still muted"
115
+
- Click "Unmute and whitelist" to unmute via X.com API and add user to whitelist (unhides all their posts)
116
+
- Click "×" to dismiss the notice
117
+
-**Unmute and whitelist from overlay**: Click "Unmute and whitelist" on the overlay to immediately unmute the user via X.com API, add them to whitelist, and unhide all their posts
118
+
119
+
6.**View Muted Users**
90
120
- Open the extension popup to see all muted users
91
121
- Sort by username, country, or mute date
92
122
- View statistics about total muted users and top countries
0 commit comments