/feedodon

Bridge from Freefeed API to Mastodon client API

Primary LanguagePython

Feedodon is a bridge to view Freefeed posts from your <SARCASM>favourite Mastodon</SARCASM> client.

If you just want to use it, enter feedodon.rkd.pw as Mastodon instance in your client and paste your Freefeed app token into the authorization form.

Run

If you don't trust my server you can host this bridge yourself, easiest way is Docker of course.

docker build -t feedodon .
docker run -p 8000:8000 feedodon

You'll need to run it behind a reverse proxy with SSL because that's what almost all Mastodon clients expect.

I'm running it on Dokku with very little effort (just created an app, applied letsencrypt, pushed and voila).

Develop

You need pipenv to set up the project, then

pipenv run python manage.py runserver

Again, most Mastodon clients won't work on non-standard ports and without SSL butt you can make requests manually with curl:

curl -H 'Authorization: Bearer MY_APP_TOKEN' 'http://127.0.0.1:8000/api/v1/statuses/28'

You don't have to go through OAuth to use the API.

Features

  • Home feed
  • Comments
  • Posting
  • Commenting
  • Likes/unlikes
  • uploads

Tested with:

  • Twidere supports both Twitter and Mastodon, it's even merging feeds together!
  • Musky (all other Tusky forks should work as well)

Reports for iOS, desktop, etc clients welcome!

Known issues

  • Home feed is only sorted by createdAt because Mastodon clients cache feed heavily and rely on status ordering for pagination
  • "Reblog" doesn't map onto Freefeed API so it will always fail
  • Public timeline doesn't map onto Freefeed API so it will always fail

TODO

  • notifications
  • Not Found: /api/direct_messages/sent.json
  • Not Found: /api/saved_searches/list.json
  • Not Found: /api/v1/custom_emojis
  • Index page (redirect to github?)
  • proper DB
  • docker-compose
    • traefik
    • ssl
    • db
  • smaller docker image
  • tests