/icymi_glam

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

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Based on Mau Foronda's fork of Matt Hodges' mastodon_digest.

Rather than rendering a digest page, this powers a bot based on @icymi_law, but for the GLAM community. The bot lives at @icymi_glam@glammr.us.


Development

Prerequisites:

  • set up a mastodon bot
  • create a mastodon token which can read and write your timeline
  • copy .env.example to .env and fill in the credentials with your own

Install dependencies: poetry install

Run tests: poetry run python -m unittest tests

Run the bot from CLI: poetry run python run.py -n 12 -s SimpleWeighted -t lax

To run your own

  1. Fork this repository
  2. Create repository secrets (SettingsSecrets/ActionsNew repository secrets) for:
  • MASTODON_BASE_URL: the url of your instance, like https://mastodon.social
  • MASTODON_USERNAME: your user name, like Gargron
  • MASTODON_TOKEN: a 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 SettingsActions/General, 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.