Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pkreissel/fedifeed

Display Mastodon Posts in a curated feed with an user-customisable algorithm
https://github.com/pkreissel/fedifeed

Last synced: 7 days ago
JSON representation

Display Mastodon Posts in a curated feed with an user-customisable algorithm

Awesome Lists containing this project

README

        

# Update:
As of May 16th I will archive this Repo to continue development here: https://github.com/pkreissel/foryoufeed
The new project enables me to do everything in react without a backend server. It is hosted here: https://vercel.com/pkreissel/foryoufeed
If you only need the algorithm without all the fuss for your own project you can use this package: https://github.com/pkreissel/fedialgo

# fedifeed
Display Mastodon Posts in a curated feed with an user-customisable algorithm

# Usage
Example is hosted here:
https://fedifeed.herokuapp.com

Be aware this is a very early alpha, so try at your own risk

Steps:
1. Put your Mastodon Instance Url in the field in the format "https://example.social"
2. Login with Mastodon
3. Wait a few seconds for the feed to load (first time takes longer)
4. Change Feed Algorithm and enjoy

# Development
Project is based on Django and React Frameworks. See their docs for further info.
To start the backend server you need

```
pip install -r requirements.txt
```
Then set some env vars:
```
FIELD_ENCRYPTION_KEY= // generate this with python manage.py generate_encryption_key
DATABASE_URL=Postgresql Database URL
SECRET_KEY=Some Secret
HOSTED_URL=http://127.0.0.1:8000/ (for local dev)
DEBUG=True
```
Run the server:
```
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
```
Only the last command is required every time.

To start the frontend dev server:
```
cd frontend
npx webpack --config webpack.config.js --watch
```

# Todos:
- [ ] Improve CI/CD
- [ ] Add Tests
- [ ] Add more Documentation
- [x] Add storage for feed Settings
- [x] Add most liked users to weights
- [ ] Add option to choose which Instances to pull the top posts from
- [ ] More description for weights
- [x] Add Logout Button and invalidate token
- [ ] Better UI, Support for Polls, Videos, Images, etc.
- [ ] Working Links back into the traditional Mastodon Interface
- [x] Retweet, Like etc. Buttons
- [ ] Profile View to delete profile etc.
- [ ] Feed should cache posts and only load new ones
- [ ] Add more features for algorithm, e.g. include posts from suggested users, prioritise recent follows etc.
- [ ] Add local machine learning in the browser to tweak the features automatically