Mastoscore Logo

Current Version: 2.0.1

This is a tool that will fetch all the recent toots on a specific hashtag and do a bunch of analysis on those toots. After fetching them all to a bunch of JSON files. Then it analyse those posts, and create a few graphs. It can post a series of toots that describe what we found, and generate a hugo-compatible blog post that records the analysis as an HTML file.

I created it because I love to participate in #monsterdon, which routinely has hundreds of people posting thousands of toots. I was wondering who tooted the most and which were the most popular toots and so on. If you hang around the fediverse much, you'll see that there are lots of watch parties! That's what inspired this tool, but you could use it for other things.

Usage Options

Mastoscore can be used in two ways:

  1. Web-based backstage: A browser-based UI for managing configurations and running analyses interactively. Now that I have built this, it's the primary way I use it.
  2. Command-line Interface: A CLI for scripting and automation. It is meant to output absolutely nothing unless there is an error or you ask for debugging messages. I have never been able to run it without tinkering between steps. So I ended up creating the interactive backstage.

Backstage Web Interface

The easiest way to use Mastoscore is through the web interface: thumbnail

Run it by running.

./scripts/backstage.sh

This launches both the Flask API backend and React frontend in a tmux session. See Backstage documentation for details.

Command Line Interface

The work is divided into 5 phases that I typically run in this order:

  1. fetch: Spend ages contacting servers and fetching posts.
  2. analyse: Analyse what was downloaded.
  3. graphs: Generate the histogram and the wordcloud.
  4. blog: Generate a hugo-compatible blog post.
  5. post: Post everything.

Not mentioned is a step between 4 and 5 where, in a totally different workflow, I update my blog site.

Example series of toots:

Example Monsterdon Example Monsterdon

More Documentation

References

Contact