Skip to content

rFoxen/BlueskyModerationExtension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ο»Ώ# 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.

🌟 Features

  • 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 and bsky.social.

πŸ›  Installation

From the Firefox Add-ons Store

  1. Visit the Bluesky Moderation Helper Add-on Page.
  2. Click "Add to Firefox" to install the extension.
  3. Follow the on-screen instructions to complete the installation.

Manual Installation

  1. Clone the Repository:
    git clone https://github.com/rFoxen/BlueskyModerationExtension.git
    cd BlueskyModerationExtension
    
  2. Install Dependencies: Ensure Node.js is installed. Then run:
    npm install
    
  3. Build the Extension:
    • For development

      npm run build:dev
      
    • For production

      npm run build:prod
      
  4. 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.

πŸš€ Usage

  1. Login:

    • Open the extension slideout by clicking the new menu icon in the bsky.app website.
    • Enter your Bluesky credentials to log in.
  2. Logout:

    • Click the "Log Out" button in the popup to log out.
  3. Select a Block List:

    • Choose a block list from the dropdown menu in the popup.
  4. Block a User:

    • Click on the "Block" buttons beside the user you want to block.
  5. Unblock a User:

    • Click on the "Unblock" buttons beside the user you want to unblock.
  6. Report a User:

    • Click on the "Report" buttons beside the user you want to report.
  7. Hide block buttons:

    • Toggle the "Show Block Buttons" toggle.

πŸ“‚ File Structure

  1. 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
     

🧩 Development

Prerequisites

  • 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).

Development Workflow

  1. Clone the Repository:

    git clone https://github.com/rFoxen/BlueskyModerationExtension.git
    cd BlueskyModerationExtension
    
  2. Open the Project in Your Editor:

    • Use your preferred code editor to explore and modify the files.
  3. 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.
  4. Make Changes and Commit:

    git add .
    git commit -m "Your commit message"
    git push origin main
    
  5. Iterate Based on Feedback:

    • Collect feedback from testers or users.
    • Implement improvements and bug fixes as needed.

🀝 Contributing

Contributions are welcome! To contribute:

  1. Fork the Repository:

    • Click the "Fork" button on the GitHub repository page.
  2. Create a Feature Branch:

    git checkout -b feature/YourFeatureName
    
  3. Commit Your Changes:

    git commit -m "Add Your Feature"
    
  4. Push to Your Fork:

    git push origin feature/YourFeatureName
    
  5. Open a Pull Request:

    • Navigate to the original repository and click "New Pull Request."
    • Describe your changes and submit.

πŸ“œ License

This project is licensed under the MIT License. See the LICENSE file for details.


πŸ“Έ Screenshots

Login/Logout.

Extension Login

Extension Logout

Block list download.

Extension Download

Extension Download Complete

Searching user.

Blocking Searching

The extension interface showing block.

Blocking Block

The extension interface showing unblock.

Blocking Unblock

Create offline backup.

Extension Backup

Restore from offline backup.

Extension Restore

Reporting user.

Blocking Report

Blocking Report

Darkened block styles.

Blocking Darkened

Compact block styles.

Blocking Compact

Blurred block styles.

Blocking Blur

Hidden block styles.

Blocking Hidden

Effect of blook stype without additional block lists selected

AdditionalBlocking none

Effect of blook stype with additional block lists selected

AdditionalBlocking with

Insert injected elements below posts

AdditionalBlocking Options1

Hide all Insert injected elements

AdditionalBlocking Options2

Show only Block button injected element

AdditionalBlocking Options3


πŸ“ Changelog

v2.0.3

  • Improvement: adds better support for threaded replies view

v2.0.2

  • Fixes: error causing client side browser crash.
  • Improvement: fully hides injected layout when all components hidden
  • Change: removes outline border

v2.0.1

  • Fixes: Fixes infinite block list completion screen

v2.0

  • 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

v1.5.0

  • 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.

v1.4.1

  • LoginFunction now part of the injected Moderation Helper slide-out
  • Removes unneeded Options/popout code

v1.4

  • 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
  • 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

v1.3.1

  • 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.
  • Performance Improvements:

    • Optimized Notification Handling:
      • Improved the efficiency of batched notifications to enhance user experience without compromising performance.

v1.3.0

  • 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.

v1.2.0

  • Initial Release:
    • Basic functionality for blocking users and managing block lists.
    • Context menu integration and keyboard shortcuts.

πŸ”— Useful Links

Bluesky Official Website Firefox Developer Hub AT Protocol Documentation

About

Bluesky Moderation Extension

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published