Scobiform / fedi-follow-force-graph

Mastodon analytics tool that generates a force graph to visually represent the relationships between user followers and followings on Mastodon. Users can log in via Mastodon OAuth to view graphs of their social connections. The tool is coded primarily in Python and utilizes JavaScript libraries for graphical representations.
GNU Affero General Public License v3.0
3 stars 0 forks source link
async dotenv force graph mastodon python quart ui web

Fedi follow force graph

CodeQL App Status

fedi follow force graph logo

Mastodon analytics tool that generates a force graph to visually represent the relationships between user followers and followings on Mastodon. Users can log in via Mastodon OAuth to view graphs of their social connections. The tool is coded primarily in Python and utilizes JavaScript libraries for graphical representations.

Table of Contents

Requirements


Python:
    dotenv - BSD-3-Clause License
    Mastodon.py - AGPL-3.0 License
    Quart - MIT License
    Quart-Auth - MIT License

JavaScript:
    force-graph - MIT License
    d3-quadtree - BSD-3-Clause License
    d3-force - BSD-3-Clause License
    element-resize-detector - MIT License

Environment Setup

Create a .env file with the following content to configure the application:


APP_URL=https://yourdomain
REPO_PATH=/path/to/repo

Create virtual environment

Create a virtual environment and install the requirements:


python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Start the application

Run the application with the following command:


python3 start.py

Mastdodon developer settings

You will need a valid callback address that is reachable from the internet. You can use a service like ngrok to create a tunnel to your local machine.

Contributions

Contributions are welcome! Please submit a pull request or open an issue if you would like to contribute to the project.

Screenshots

fedi follow force graph screen

License

AGPL-3.0

Do not use this in production

This is a proof of concept and should not be used in production. The application has not been tested for security vulnerabilities.