Aggregates news feed updates and sends them to your email inbox.
- Supports Atom and RSS/RDF feeds.
- Supports subscribing to feed URL directly, or scanning for a
link
tag at a given URL. - Uses Golang html/template to customize the email body.
- Update timestamps persisted to YAML file.
- Optionally resolves relative URLs
- Optionally uses Reddit bearer token to request RSS feeds
- Install via
go install github.com/fgeller/feeder
or download a release. - Create a config file, customizing email settings and file paths.
- Add subscribed feeds either by:
- maintaing the feeds config file manually, or
- using feeder via
feeder -subscribe https://example.com/blog/
- Run via
feeder
manually, or set up recurring execution, e.g. viacrontab -e
feeder -help
output:
Usage of feeder:
-config string
Path to config file (default $XDG_CONFIG_HOME/feeder/config.yml)
-subscribe string
URL to feed to subscribe to
-version
Print version information
By default feeder will try to download the configured feeds and send
the latest entries via email. If the subscribe flag is provided,
instead of downloading feeds, feeder tries to subscribe to the feed
at the given URL and persists the augmented feeds config.
-
feeds-file
is the list of feeds you are subscribed to. -
timestamp-file
is required to persist what updates have been seen. -
email-template-file
is an optional Golang html/template to format the sent email. -
email
contains the configuration for sending emails. Thefrom
address will also be theto
address and thesmtp
object allows for standard smtp host and auth configuration. -
max-entries-per-feed
is the maximum number of entries to send per feed. -
reddit
allows configuringclient-id
andclient-secret
so feeder can request and use a bearer token for Reddit RSS feeds.
feeds-file: '/home/fgeller/.config/feeder/feeds.yml'
timestamp-file: '/home/fgeller/.config/feeder/timestamps.yml'
email-template-file: '/home/fgeller/.config/feeder/email.tmpl'
reddit:
client-secret: some-secret-characters
client-id: some-id-characters
email:
from: example@gmail.com
smtp:
host: smtp.gmail.com
port: 587
user: example@gmail.com
pass: passwort
- name: 'irreal'
url: https://irreal.org/blog/?feed=rss2
- name: The Go Blog
url: https://blog.golang.org/blog/feed.atom