mail based rss feed aggregator
Gleam 98.0%
Nix 1.1%
Just 0.9%
42 1 0

Clone this repository

https://tangled.org/nuv.sh/eater https://tangled.org/did:plc:cezmtk5bb4zipkps3abnjjl6/eater
git@knot.nuv.sh:nuv.sh/eater git@knot.nuv.sh:did:plc:cezmtk5bb4zipkps3abnjjl6/eater

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

eater#

RSS Feed mail aggregator


TODO (step 1)#

  • parse rss feeds
  • email sending
  • fetcher_factory_supervisor
  • feed fetcher actor per feed
    • fetch feed using database records
    • fetch all feeds periodically
      • persist time-to-check to database so the actor restarting doesnt preemptively fetch the feed again
    • (pub-sub) send feeds to user actors
    • incremental timeouts on failure
      • test that
  • sender_factory_supervisor
  • sender actor per user
    • spawn on startup
    • (pub-sub) receive new items from fetcher
    • check feed against sent items in database
    • send new items to user
      • success: persist success to db
      • failure: inremental timeout
        • test that
  • custom logging.configure to log info about supervision status n such

TODO (step 2)#

  • lustre ui (maybe) server component
    • login
      • email one time password
      • (maybe) password
    • sessions
    • configure rss feeds to track per user
    • update feed subscriptions in database
    • admin panel?
      • adding new users

Structure#

needs updated; theres a fetcher factory and one fetcher per feed now


Environment variables#

Required#

  • SMTP_HOST the sqtp server hostname ex: smtp.protonmail.ch
  • SMTP_PORT the sqtp server port ex: 587
  • SMTP_USERNAME the username to authenticate with the smtp server ex: rss@nuv.direct
  • SMTP_PASSWORD the password to use when authenticating with the smtp server

Optional#

  • SMTP_SENDER_EMAIL defaults to SMTP_USERNAME when unset
  • SMTP_SENDER_NAME the 'name' of the sender to use