FediAct/README.md

134 wiersze
8.8 KiB
Markdown
Czysty Zwykły widok Historia

2022-11-26 01:50:14 +00:00
# FediFollow (v0.6.0)
2022-11-26 02:30:44 +00:00
A Chrome/Firefox extension that simplifies following and post interactions on other Mastodon instances than your own by utilizing the Mastodon APIs to resolve the content on your home instance. If enabled, the extension also automatically performs the desired action (follow, unfollow, boost, favourite) for you. If you are already following a user while viewing his profile on another instance, this is also shown.
2022-11-21 22:53:55 +00:00
2022-11-26 01:51:25 +00:00
Should work for all *updated* Chromium browsers, *updated* Firefox, as well as Kiwi browser and Firefox Nightly on Android. Currently only Mastodon 3 + 4 in different flavours are supported as far as I tested. Support for other Fediverse software and additional flavours might be added in the future. Feel free to create pull requests / issues. This is my first proper browser extension so please bear with my awful JS skills.
2022-11-16 14:46:36 +00:00
2022-11-26 02:10:09 +00:00
**It can take up to 2 minutes after you have set your home instance to start working** (needs to get your API token). Performance of this addon depends on the performance of the external instance and your home instance.
2022-11-26 02:07:16 +00:00
2022-11-23 10:24:31 +00:00
**Important**: Your data will never leave your machine by using this addon. Also, no usage stats are collected.
2022-11-21 23:01:24 +00:00
2022-11-22 11:30:02 +00:00
* [Installation](#installation)
* [Setup](#setup)
* [Screenshots / GIFs](#screenshots--gifs)
2022-11-23 13:29:17 +00:00
* [Manual installation](#manual-installation)
2022-11-25 09:51:57 +00:00
* [Install in Firefox for Android](#install-in-firefox-for-android)
2022-11-23 13:29:17 +00:00
* [Additional notes](#additional-notes)
2022-11-22 11:30:02 +00:00
* [Todos / Planned features](#todos--planned-features)
2022-11-16 14:46:36 +00:00
## Installation
2022-11-23 13:29:17 +00:00
[link-chrome]: https://chrome.google.com/webstore/detail/fedifollow/lmpcajpkjcclkjbliapfjfolocffednm 'Version published on Chrome Web Store'
[link-firefox]: https://addons.mozilla.org/en-US/firefox/addon/fedifollow/ 'Version published on Mozilla Add-ons'
2022-11-24 11:12:14 +00:00
[<img src="https://raw.githubusercontent.com/alrra/browser-logos/90fdf03c/src/chrome/chrome.svg" width="48" alt="Chrome" valign="middle">][link-chrome] [<img valign="middle" src="https://img.shields.io/chrome-web-store/v/lmpcajpkjcclkjbliapfjfolocffednm.svg?label=%20">][link-chrome] and other Chromium browsers
2022-11-23 13:29:17 +00:00
2022-11-23 16:15:08 +00:00
[<img src="https://raw.githubusercontent.com/alrra/browser-logos/90fdf03c/src/firefox/firefox.svg" width="48" alt="Firefox" valign="middle">][link-firefox] [<img valign="middle" src="https://img.shields.io/amo/v/fedifollow.svg?label=%20">][link-firefox] including Firefox for Android
2022-11-23 13:29:17 +00:00
> **Note**
>
2022-11-23 16:16:39 +00:00
> - **If webstore release is outdated, use the [manual installation method](#manual-installation) to install the latest version**
2022-11-25 09:53:30 +00:00
> - **Special installation steps for [Firefox on Android](#install-in-firefox-for-android)**
2022-11-16 14:46:36 +00:00
2022-11-22 15:01:38 +00:00
## Setup
2022-11-22 10:42:44 +00:00
2022-11-17 14:37:08 +00:00
- Required: Click the extension icon to set your Mastodon instance
2022-11-23 22:18:03 +00:00
- Only set the domain name (like "infosec.exchange") without http/https or URL
2022-11-23 16:16:16 +00:00
- Optional: All other settings (they are self-explanatory)
2022-11-17 14:00:50 +00:00
- Required: Hit "Submit" to update your settings
2022-11-16 14:46:36 +00:00
2022-11-26 03:54:05 +00:00
It can take 1-2 minutes after you have set your home instance to sync your API token and following list.
2022-11-23 13:34:41 +00:00
**Please read the [additional notes](#additional-notes).**
2022-11-21 23:11:44 +00:00
## Screenshots / GIFs
2022-11-23 16:50:08 +00:00
Not guaranteed to be up to date ;)
<details>
<summary>Extension popup / settings</summary>
<img src="https://github.com/lartsch/FediFollow-Chrome/blob/main/img/screenshot1.PNG?raw=true">
</details>
<details>
2022-11-23 16:56:16 +00:00
<summary>Follow interaction (GIF)</summary>
2022-11-23 16:50:08 +00:00
<img src="https://github.com/lartsch/FediFollow-Chrome/blob/main/img/follow-interaction.gif?raw=true">
</details>
<details>
2022-11-23 16:56:16 +00:00
<summary>Post interaction (GIF)</summary>
2022-11-23 16:50:08 +00:00
<img src="https://github.com/lartsch/FediFollow-Chrome/blob/main/img/post-interaction.gif?raw=true">
</details>
2022-11-23 16:55:38 +00:00
<details>
<summary>FediFollow installed in Kiwi browser (Android/Chromium)</summary>
<img width=300 src="https://github.com/lartsch/FediFollow-Chrome/blob/main/img/fedifollow-android-chrome-kiwi-browser.jpg?raw=true">
</details>
<details>
<summary>FediFollow installed in Firefox Nightly (Android)</summary>
<img width=300 src="https://github.com/lartsch/FediFollow-Chrome/blob/main/img/fedifollow-android-firefox.jpg?raw=true">
</details>
2022-11-17 14:19:54 +00:00
2022-11-23 13:29:17 +00:00
## Manual installation
1. Download the [latest Github release](https://github.com/Lartsch/FediFollow-Chrome/releases/latest) for your browser (chrome or firefox)
### Chrome
2. Unzip the downloaded file somewhere
3. Go to your Chrome extension page (URL: chrome://extensions) and enable developer mode
4. Click the "Load unpacked" button and then select the unzipped folder (should be "fedifollow-X.X.X-chrome")
### Firefox
2. Open the debugging page (URL: about:debugging)
3. Select "This Firefox"
4. Click the "Load Temporary Add-on" button and then select the downloaded Firefox ZIP file
2022-11-25 09:51:57 +00:00
### Install in Firefox for Android
2022-11-23 16:05:50 +00:00
Since a while, Firefox on Android only allows a [curated list](https://addons.mozilla.org/en-US/android/search/?promoted=recommended&sort=random&type=extension) of addons to install, preventing installation of anything else. The following explanation will guide you how to install it from the webstore anyways.
2022-11-23 16:04:19 +00:00
**Requirements:**
- Firefox **Nightly** for Android
**Steps:**
1. In Firefox, go to Settings > About Firefox Nightly
2. Click the Firefox logo 5 times to enable developer options
3. Go back to Settings > Custom Add-on Collection
4. Enter the following data:
- ID: 17665294
- Name: FediFollow
2022-11-23 16:05:50 +00:00
5. Click OK, Firefox will close - reopen it
2022-11-23 16:04:19 +00:00
6. FediFollow will now be available in the Add-ons menu of Firefox Nightly
2022-11-23 16:26:45 +00:00
I included all of the default add-ons in the custom collection, so you will not miss out on any of those. Of course, you can create [your own collection](https://support.mozilla.org/en-US/kb/how-use-collections-addonsmozillaorg) as well.
2022-11-23 16:04:19 +00:00
2022-11-23 13:30:11 +00:00
## Additional notes
1. Currently supports external Mastodon instances v3 + v4
- I have not tested if Mastodon v3 works as home instance! In general, Mastodon v4 support is the main objective.
2022-11-26 03:54:05 +00:00
- Support for other Fedi software is still planned
2022-11-23 13:30:11 +00:00
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 (can't fix, log in)
- 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)
- Your home instance is blocked by the external instance (can't fix, obviously)
2022-11-23 16:33:31 +00:00
4. There is a known bug that sometimes, when following a user and having auto-action enabled, the follow results in a follow request even though the account is unlocked (so it should instantly accept). I suppose this is a bug with Mastodon / network issue. The followed user will in fact receive the request. If you notice it, you can unfollow and follow again, this will work as usual.
2022-11-25 09:49:50 +00:00
5. There can be a short delay before you are redirected since an API call to the respective external instance must be made. In general, performance of this addon depends on the performance of the external instance and your home instance.
2022-11-26 03:54:05 +00:00
6. The redirect enable/disable option is not really meant to be turned off atm. But soon:
- Toot actions (boost, fav) will be fully integrated (main toot will be synced on page load, all others as soon as they are fully in the viewport)
- Single clicks (boost, fav, un/follow) will only perform action, double click will perform action + redirect
2022-11-23 13:30:11 +00:00
So please be aware, that this extension can fail in some cases. Feel free to submit pull requests / issues.
2022-11-18 00:35:27 +00:00
## Todos / Planned features
2022-11-21 22:53:55 +00:00
- Add support for post interactions (DONE)
2022-11-22 21:49:54 +00:00
- Support executing the intended action after redirect (DONE)
- Add support for other implementations (Plemora, GNU Social, ...)
2022-11-25 09:54:50 +00:00
- Publish to Chrome Webstore (DONE)
- Publish to Firefox addon store (DONE)
2022-11-17 16:48:14 +00:00
- Find additional layouts/flavours to add identifiers for
- Support for profiles views with follow button disabled
- Add support for Firefox (DONE)
2022-11-25 09:54:50 +00:00
- Add support for Firefox on Android (DONE)
2022-11-18 15:50:13 +00:00
- 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)
2022-11-26 01:54:19 +00:00
- 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) (DONE)
- Indicate if post is already fav'ed / boosted
2022-11-18 14:24:55 +00:00
- Review if permissions in current manifest are actually needed like that (DONE)
2022-11-16 14:47:30 +00:00
- If I find myself to be bored, probably more
2022-11-18 14:36:35 +00:00
## Thanks to...
@raikasdev because I stole his fix for cross-browser storage API support