ο»Ώ# Bluesky Moderation Helper
Bluesky Moderation Helper is a Firefox extension that enhances moderation on Bluesky. It allows moderators to quickly block users, manage block lists, and enjoy engaging visual feedback during the blocking process.
-
Quick Blocking & Context Menu Integration:
- Block users instantly via the right-click context menu.
-
Block List Management:
- Select specific block lists to add users to, ensuring effective moderation.
-
Engaging Visual Feedback:
- Fun particle explosions and animated text appear when blocking users.
-
Cross-Platform Compatibility:
- Works seamlessly on both
bsky.app
andbsky.social
.
- Works seamlessly on both
- Visit the Bluesky Moderation Helper Add-on Page.
- Click "Add to Firefox" to install the extension.
- Follow the on-screen instructions to complete the installation.
- Clone the Repository:
git clone https://github.com/rFoxen/BlueskyModerationExtension.git cd BlueskyModerationExtension
- Install Dependencies: Ensure Node.js is installed. Then run:
npm install
- Build the Extension:
-
For development
npm run build:dev
-
For production
npm run build:prod
-
- Load the Extension in Firefox:
- Open about:debugging#/runtime/this-firefox in Firefox.
- Click "Load Temporary Add-on" and select the manifest.json file in the dist folder.
-
Login:
- Open the extension slideout by clicking the new menu icon in the bsky.app website.
- Enter your Bluesky credentials to log in.
-
Logout:
- Click the "Log Out" button in the popup to log out.
-
Select a Block List:
- Choose a block list from the dropdown menu in the popup.
-
Block a User:
- Click on the "Block" buttons beside the user you want to block.
-
Unblock a User:
- Click on the "Unblock" buttons beside the user you want to unblock.
-
Report a User:
- Click on the "Report" buttons beside the user you want to report.
-
Hide block buttons:
- Toggle the "Show Block Buttons" toggle.
- Clone the Repository:
BlueskyModerationHelper/ |-- dist/ # Compiled files for distribution |-- src/ # Source code | |-- background.ts # Background script | |-- content.ts # Main content script | |-- components/ # Modular components (UI, utilities, etc.) |-- public/ # Static assets (manifest, icons, styles) |-- webpack/ # Webpack configuration files |-- package.json # Dependencies and scripts |-- tsconfig.json # TypeScript configuration
- Node.js Version 16.0.0 or later.
- npm Installed alongside Node.js.
- Firefox Browser (for extension testing).
- Code Editor (VSCode or Sublime Text recommended).
-
Clone the Repository:
git clone https://github.com/rFoxen/BlueskyModerationExtension.git cd BlueskyModerationExtension
-
Open the Project in Your Editor:
- Use your preferred code editor to explore and modify the files.
-
Test the Extension:
- Follow the manual installation steps above to load the extension temporarily in Firefox.
- Test all features to ensure they work as expected.
-
Make Changes and Commit:
git add . git commit -m "Your commit message" git push origin main
-
Iterate Based on Feedback:
- Collect feedback from testers or users.
- Implement improvements and bug fixes as needed.
Contributions are welcome! To contribute:
-
Fork the Repository:
- Click the "Fork" button on the GitHub repository page.
-
Create a Feature Branch:
git checkout -b feature/YourFeatureName
-
Commit Your Changes:
git commit -m "Add Your Feature"
-
Push to Your Fork:
git push origin feature/YourFeatureName
-
Open a Pull Request:
- Navigate to the original repository and click "New Pull Request."
- Describe your changes and submit.
This project is licensed under the MIT License. See the LICENSE file for details.
Login/Logout.
Block list download.
Searching user.
The extension interface showing block.
The extension interface showing unblock.
Create offline backup.
Restore from offline backup.
Reporting user.
Darkened block styles.
Compact block styles.
Blurred block styles.
Hidden block styles.
Effect of blook stype without additional block lists selected
Effect of blook stype with additional block lists selected
Insert injected elements below posts
Hide all Insert injected elements
Show only Block button injected element
- Improvement: adds better support for threaded replies view
- Fixes: error causing client side browser crash.
- Improvement: fully hides injected layout when all components hidden
- Change: removes outline border
- Fixes: Fixes infinite block list completion screen
- Fixes: Better list downloading (automatic pause and resume)
- Feature: Adds ETA and additional context when downloading lists
- Feature: Adds display options for freshness, blocked post appearance, and additional block list selection
- Feature: Adds manual block by userhandle input
- Feature: Adds link to currently selected list
- Feature: Labeled and Color coded tab based on selected block list
- Feature: Adds account freshness information beside injected buttons
- Feature: Adds list downloading
- Feature: Adds download/restore database for ease of transfer between devices
- Improvement: Better consistency of injected button placement
- Improvement: Utilizes browser database for faster querying of data and better persistence
- Fixes: Better session management
- Features: Adds searchable user menu
- Features: Adds dark/light mode
- Features: Adds toggle for block buttons
- Features: Adds unblock functionality
- Improvements: Implements official @atproto/api library for session management.
- LoginFunction now part of the injected Moderation Helper slide-out
- Removes unneeded Options/popout code
- Adds mobile functionality:
- Block handling moved to physical button:
- To facilitate mobile I've moved block functionality to a injected block button
- Removes right click block user context menu
- Block handling moved to physical button:
- Adds top level block list selection:
- Drop down menu to select current block list that blocks will be sent to
- Count of users in currently selected block list
- Refactor code following OOP principles
-
Bug Fix:
- Fixes bug that autologs out user from extension
-
Security Enhancements:
- Secure Data Handling:
- Continued implementation of encryption for storing sensitive data such as accessJwt using the Web Crypto API.
- Input Validation:
- Added robust input validation to ensure user inputs meet expected formats without altering their actual values.
- Enhanced Content Security Policy:
- Further refined the Content Security Policy to tighten security measures and restrict resource loading.
- Secure Data Handling:
-
Performance Improvements:
- Optimized Notification Handling:
- Improved the efficiency of batched notifications to enhance user experience without compromising performance.
- Optimized Notification Handling:
- Enhanced Visual Effects:
- Introduced professional and fun particle explosions.
- Improved block list name animations with 3D scaling.
- Persisted Block List Selection:
- The selected block list now remembers its position across sessions.
- Notifications:
- Notifications now explicitly state which block list a user was added to.
- Bug Fixes:
- Resolved issues with API requests and error handling.
- Initial Release:
- Basic functionality for blocking users and managing block lists.
- Context menu integration and keyboard shortcuts.
Bluesky Official Website Firefox Developer Hub AT Protocol Documentation