eater#
Email based RSS feed aggregator
Notice: This project lives on Tangled and the main development happens on Tangled. Please report issues and contribute on Tangled.
TODO#
- License attribution
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
- login flow email -> password -> login
- (maybe) password
- sessions
- configure rss feeds to track per user
- create / delete fetchers and sender accordingly
- update feed subscriptions in database
- admin panel?
- adding new users
- login
- proper CSRF protection
TODO (step 3)#
- package using docker
- automatic builds with woodpecker
- example compose file
- Public instance?
IDEAS#
- subscription management via email
Structure#
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@ollie.earthSMTP_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