A Chrome/Firefox extension that simplifies follow and post interactions on Mastodon servers other than your own.
 
 
 
 
Go to file
Lartsch c3e97d460b
Update README.md
2022-11-21 23:54:21 +01:00
firefox big update, utilize api 2022-11-21 17:47:32 -05:00
img add screenshots 2022-11-17 15:16:57 +01:00
src big update, utilize api 2022-11-21 17:47:32 -05:00
.gitignore update gitignore, add firefox zip 2022-11-18 09:18:39 -05:00
LICENSE Update LICENSE 2022-11-17 15:09:19 +01:00
README.md Update README.md 2022-11-21 23:54:21 +01:00
manifest.json big update, utilize api 2022-11-21 17:47:32 -05:00

README.md

FediFollow

A Chrome/Firefox extension that simplifies following and post interactions on other Mastodon instances than your own by intelligently redirecting you to your instance and utilizing the local API to resolve the content.

Should work for all updated Chromium browsers, updated Firefox, as well as Kiwi browser on Android. Currently only Mastodon in different flavors is supported as far as I tested. Additional support will be added in the future.

Installation

Right now, this needs to be installed in debugging / developer mode. Soon it will be available on Chrome Webstore / Firefox addon store.

  1. Clone this repo or download it as ZIP (in this case, extract it somewhere)

Chrome

  1. Go to your Chrome extension page (URL: chrome://extensions) and enable developer mode
  2. Click the "Load unpacked" button and then select the folder of the unpacked extension (should be "FediFollow-Chrome-main")
    • If you have a "Load ZIP" option you can also directly load the downloaded ZIP file

Firefox

  1. Open the debugging page (URL: about:debugging)
  2. Select "This Firefox"
  3. Click the "Load Temporary Add-on" button and then select the firefox.zip file in the folder you extracted earlier

Setup

  • Required: Click the extension icon to set your Mastodon instance
    • Only set the domain name (like "infosec.exchange") without http/https or URL)
  • Optional: Change whether to redirect in current or new tab
  • Optional: Change the mode (all sites except those on blacklist (default) / no sites but those on whitelist)
  • Optional: Add domain names to the blacklist/whitelist textarea, one per line, for ex.
    mastodon.social
    bbq.snoot.com
    
  • Required: Hit "Submit" to update your settings

Note

  1. Currently supports different flavours of Mastodon 4 (3 should work too)
  2. The whitelist mode can be useful if you do not want the extension to run basic checks on every site (since it needs to determine if it is a Mastodon site). Not sure if the blacklist feature is good for anything but I still included it.
  3. It can have several reasons why a redirection/instance might not work:
    • You are not logged in to your home instance
    • There are instances that use custom layouts/flavours (additional identifiers need to be added to extension)
    • Instance chose to hide the follow button when not logged in (not supported yet)
    • It's not a Mastodon instance (not supported yet)
    • Element identifiers might change over time (extension needs to be updated)
    • Instance has turned off public API endpoints or changed to custom paths (not sure if this is even possible)

So please be aware, that this extension can fail in some cases. Feel free to submit pull requests / issues.

Screenshots

Extension Popup        Redirect Indication

Todos / Planned features

  • Add support for post interactions (DONE)
  • Add support for other implementations (Plemora, GNU Social, ...)
  • Publish to Chrome Webstore (IN PROGRESS)
  • Publish to Firefox addon store (IN PROGRESS)
  • Find additional layouts/flavours to add identifiers for
  • Support for profiles views with follow button disabled
  • Add support for Firefox (DONE)
  • Fix some rare cases where an instance runs on a subdomain but the handle uses the domain without subdomain (need to get the handle directly from the profile instead of URL + domain name) (DONE)
  • Add support for whitelist/blacklist (DONE)
  • Add feature to indicate if you are already following a user when browsing his profile on another instance (this requires calls to the home instance, will look into it soon)
  • Review if permissions in current manifest are actually needed like that (DONE)
  • If I find myself to be bored, probably more

Thanks to...

@raikasdev because I stole his fix for cross-browser storage API support