Skip to content
 
 

Repository files navigation

A fork of hodgesmr/mastodon_digest that

  • runs on github actions
  • renders mastodon posts without iframes
  • in a clean and responsive style

Mastodon Digest

see live 🎉


Mastodon Digest scans posts you haven't yet seen in your timeline, finds the most popular ones and shows them to you in a pretty page.

To run your own

  1. Fork this repository
  2. Create repository secrets (SettingsSecrets and variablesActionsNew repository secrets) for:
  • MASTODON_BASE_URL: the url of your instance, like https://mastodon.social
  • MASTODON_USERNAME: your user name, like Gargron
  • MASTODON_TOKEN: the access token you request in your instance settings under PreferencesDevelopment
  1. Adjust the github workflow however you want
  • edit cron to define how often you want the digest to run
  • edit the command python run.py -n 12 -s SimpleWeighted -t lax with your own preferences for:
  -n {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}
                        The number of hours to consider (default: 12)
  -s {ExtendedSimple,ExtendedSimpleWeighted,Simple,SimpleWeighted}
                        Which post scoring criteria to use. Simple scorers take a geometric
                        mean of boosts and favs. Extended scorers include reply counts in
                        the geometric mean. Weighted scorers multiply the score by an
                        inverse sqaure root of the author's followers, to reduce the
                        influence of large accounts. (default: SimpleWeighted)
  -t {lax,normal,strict}
                        Which post threshold criteria to use. lax = 90th percentile, normal
                        = 95th percentile, strict = 98th percentile (default: normal)
  1. Enable github actions under SettingsActionsGeneral
  2. Allow github actions to write to the repo under SettingsActionsGeneral, check Read and write permissions and Save
  3. Create the gh-pages branch
  4. Run the action from the Actions tab and when it succeeds publish your digest by going to SettingsPages and selecting to deploy from the root of the gh-pages branch.

Local usage with uv

This repository now ships dependency metadata in the scripts themselves, so you can run them without manual pip installs by using uv on Python 3.13+:

# Generate a digest (requires env vars as usual)
uv run run.py -n 12 -s SimpleWeighted -t normal

# Render the showcase test data without hitting the API
uv run run.py --demo-data

# Emit machine-readable results while still building HTML (with demo data here)
uv run run.py -n 6 --json - --demo-data

# Experiment with async timeline fetching or alternate timelines
uv run run.py --async-fetch --timeline federated

# Filter by language / content type
uv run run.py --languages en --exclude-polls --require-media

About

A Python script that aggregates recent popular posts from your Mastodon timeline

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages