eater#
RSS Feed mail aggregator
TODO (step 1)#
- parse rss feeds
- email sending
-
fetcher_factory_supervisor - feed
fetcheractor 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 -
senderactor 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.configureto 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
- login
Structure#
needs updated; theres a fetcher factory and one fetcher per feed now
Environment variables#
Required#
SMTP_HOSTthe sqtp server hostname ex: smtp.protonmail.chSMTP_PORTthe sqtp server port ex: 587SMTP_USERNAMEthe username to authenticate with the smtp server ex: rss@nuv.directSMTP_PASSWORDthe password to use when authenticating with the smtp server
Optional#
SMTP_SENDER_EMAILdefaults toSMTP_USERNAMEwhen unsetSMTP_SENDER_NAMEthe 'name' of the sender to use