multi-channel news delivery system
Go to file
Hugo Peixoto e389c01029 Add readme 2022-01-13 17:45:09 +00:00
migrations First commit 2022-01-13 16:57:52 +00:00
src First commit 2022-01-13 16:57:52 +00:00
.gitignore Ignore test database 2022-01-13 16:59:27 +00:00
Cargo.lock First commit 2022-01-13 16:57:52 +00:00
Cargo.toml Add license to cargo.toml 2022-01-13 17:01:22 +00:00
LICENSE Create LICENSE 2022-01-13 17:00:27 +00:00
README.md Add readme 2022-01-13 17:45:09 +00:00
diesel.toml First commit 2022-01-13 16:57:52 +00:00

README.md

ardina: multi-channel news delivery system

Ardina takes your RSS feed and delivers them to subscribers via email (and maybe twitter one day).

Running ardina

Ardina fetches the feed, checks for new items (storing the GUID of seen items in the database), and emails any unseen items via email to the subscriber list.

If it fails sending

It fetches the feed only once, so you'll want to set it up in a cron job or something depending on the feed update frequency.

Configuration

Ardina assumes the existence of a ardina.toml configuration file located in the current working directory. Here's a complete example of a configuration file, where all values are required:

[feed]
url = "https://example.org/index.xml"

[database]
url = "production.sqlite3"

[email]
relay = "mx.example.org"
username = "newsletter@example.org"
password = "mypassword"
from = "Example Newsletter <newsletter@example.org>"
subject_prefix = "[Example Newsletter]"
subscribers = [
  "Hugo Peixoto <wiki@example.org>",
]

Missing features

  • error handling: unwraps everywhere;
  • retries: if delivering an item to a subscriber fails, it won't send it to the following subscribers, and it will mark the item as seen;
  • optional email.reply_to setting
  • maybe track bounces / delivery failures?
  • text multipart instead of only sending html
  • header / footer information with unsubscribe links and all of that
  • twitter integration