rss2email

Convert RSS feeds to emails

GPL-2.0 License

Stars
112

Bot releases are hidden (Show)

rss2email - release-3.3.1 Latest Release

Published by skx 4 months ago

This release primarily focuses upon being a better network client:

  • We avoid fetching the full-contents of every feed when we're executing.
    • Instead we only fetch a feed once at startup.
    • Subsequent fetches will add If-Modified-Since, or Etag headers in our outgoing requests.
    • This should mean that we don't fetch the full contents of feeds that haven't changed unnecessarily.
  • Related to this our frequency handling has changed.
    • In the past we used to wake up, between sleeps, every fifteen minutes to process feeds.
    • Now we wake up more often, but we still check feeds at 15minute intervals by default.
    • The new, per-feed, frequency argument will be used to specify the minimum poll-frequency - this can drop to 5 minutes now, but will default to 15 minutes to match past behaviour.
    • It is preferred that feeds which don't change too often will have suitable values configured.
  • TLS / SSL failures can be ignored by default
    • Add the new insecure: true setting as a per-feed option to disable certificate checks.
  • Feeds with duplicated links will be better handled.
    • We'll attempt to uniquely identify feeds with identical items, via the addition of a # value.
  • Finally our logging has been overhauled a little
    • The old LOG_ALL environmental variable has been replaced by a new LOG_LEVEL setting. This allows a finer-grained control of logging output.
    • Also we support a log-file now, by default.

What's Changed

Here's a list of automatically generated notes on merged pull-requests:

New Contributors

Full Changelog: https://github.com/skx/rss2email/compare/release-3.2...release-3.3

rss2email - release-3.2

Published by skx over 1 year ago

This release corrects a minor issue with Subject: line/header encoding, which should prevent ugly and malformed text being shown.

rss2email - release-3.1

Published by skx over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/skx/rss2email/compare/release-3.0...release-3.1

rss2email - release-3.0

Published by skx over 2 years ago

This release removes a lot of the backwards compatibility we've had in place, added as we slowly changed various internals.

To ease maintenance, avoid confusion, and to keep things simple we've now made a clean break with the past:

  • The only configuration file processed is that documented in rss2email help config.
    • This is almost certainly ~/.rss2email/feeds.txt, unless you're running upon a Microsoft Windows platform.
  • The only location used to record this history of feed-items which have been seen is ~/.rss2email/state.db
    • The directory ~/.rss2email/seen can be removed if it is still present.
rss2email - release-2.7

Published by skx over 2 years ago

This release features a few small additions and tweaks to our behaviour:

  • Show the time when sleeping is beginning
    • Implemented by @clh021 in #93.
  • Added the Content-Base header to generated eamils
    • Implemented by @StayPirate in #96.
  • Minor fixes to internal documentation and CI-system
    • Largely implemented in #87.
  • Added the unsee sub-command.
    • This removes a single entry from our history, and was implemented in #88.
    • Later this was updated to allow a regular expression to be specified instead of a literal match.
  • Added the env and split functions to the template environment.
    • Reported in #97, implemented in #98.
  • Allow a "tag" item to be set for each source-feed, and used in the email template.
    • Reported in #94, implemented in #99.
rss2email - release-2.6

Published by skx over 2 years ago

Changes to State

This release changes the way that we record the feed-items which we've previously seen. In previous releases we maintained a bunch of files beneath ~/.rss2email/seen/, one file for each feed-item we'd processed. As of this release we now use an embedded key/value store, boltdb for that purpose.

When this release is installed for the first time your existing feed-state will be silently and automatically migrated to the new database, which is stored in ~/.rss2email/state.db. This migration will continue up until release-3.0:

This change was implemented in #85, as a result of #82.

In addition to this change we now publish binaries for more platforms upon our release page:

Changes for rss2email 3.x

When rss2email 3.0 is released the automatic migration will go away, as will the automatic update of the feed configuration file. If you install this release, or any future release prior to that then all will be well.

The only users who will be surprised will be those who migration from rss2email v2.5, or lower, to release 3.0 or higher. In that case the state files will not be migrated automatically, and all feed items will be regarded as new/unseen for the first run.

This migration path is documented, and open for discussion, in #86.

rss2email - release-2.5

Published by skx over 2 years ago

This release tries to add some naive rate-limiting:

  • If we're fetching a feed from the same hostname as the previous feed-fetch.
    • Then sleep 5 seconds before making the request.

These changes were inspired by #83, and are designed to overcome any simple rate-limiting the remote host might apply to incoming requests.

If you need more than that you may add the per-feed sleep: N option to your feed, which will allow you to specific a different number of seconds to sleep before making the request.

rss2email - release-2.4

Published by skx over 2 years ago

This release updates the handling of the "state" files, which keep track of which remote items have already been seen from within each feed.

In the past we automatically expired older entries from the local state-directory - even if any errors had been encountered in polling the configured feed list.

In this release we avoid pruning the local state files if any errors are observed while fetching the list of feeds that have been configured:

  • In the case of no errors, and all feeds being available, nothing will change.
  • In the case of transient failures the state files will be pruned upon those runs which don't see errors.
  • If you have a feed configured which is 100% broken, and unavailable, then the state-files will continue to exist and consume more space over time.

This was reported in #80, and implemented in #81. In the future release we'll move towards prefixing each state-file with the feed from which it came - which will allow us to expire things accurately, regardless of errors seen or not seen.

rss2email - release-2.3

Published by skx almost 3 years ago

This release features the ability to change the recipients of the email-notifications, on a per-feed basis. This was implemented by @avm99963, in #76.

The integrated fuzz-testing of the configuration-file parser was updated to work with the upcoming 1.18 release of the golang compiler/toolset, and is testable using the recently-released 1.18beta1 release.

rss2email - release-2.2

Published by skx over 3 years ago

release-2.2

This release allows the user to use a different email-template on a per-feed basis. This change was implemented as a pull-request by @jcvernaleo.

Other than the new configuration-option there have only been a small number of changes compared to the previous release - I fixed some of the internal implementation to resolve 100% of the "complexity" issues reported upon the go report card, allowing the application to receive a perfect score.

rss2email - release-2.1

Published by skx over 3 years ago

release-2.1

This release builds upon the previous one, by allowing more per-feed options to be configured in the config-file:

  • It is now possible to notify only about feed-entries which have titles matching a particular regular expression
    • Requested in #66, resolved in #68
  • It is now possible to specify a custom HTTP User-Agent header, on a per-feed basis.
    • Reported in #69, resolved in #70.

Test-coverage was improved slightly for our HTTP-fetching package, but not significantly.

rss2email - release-2.0

Published by skx over 3 years ago

release-2.0

Release 2.0 is a slightly breaking-release:

  • The configuration-file has changed format and location.
    • However it will be auto-upgraded on first-run.
  • The new configuration format, and location, are described in the output of
    • rss2email help config

The first time you run the application it will report upon the upgrade/migration of the configuration file, which will change from ~/.rss2email/feeds to ~/.rss2email/feeds.txt. Changing the name makes the newer format more explicit, and having a suffix helps users deploying upon Microsoft Windows systems.

The new configuration file allows per-URL options, which means we can now support some things we couldn't in the past - most notably the ability to exclude entries from the remote-feed, either via regular expression match on the entry-titles, or against the body of the feed entry.

Beyond the usual mixture of code-tweaks we've added a lot more test-coverage of the application, and this will continue in the next release(s).

rss2email - release-1.9

Published by skx over 3 years ago

release-1.9

This release contains a couple of minor changes and improvements contributed by @gonejack :

  • The ability to run more easily on Windows, added in #55.
  • The ability to rewrite relative-references within RSS feeds to turn them into absolute things, added in #57

NOTE: The next release will be 2.0, and will replace the configuration file with JSON/YAML, as noted in #59 - this will obviously be a breaking change, but will allow us to add per-feed options and configuration which will be useful for the future (for example the relative URL fixing will definitely become a per-feed configuration flag, and it will be possible to skip entries in feeds base on regular expressions, as suggested in #58.)

rss2email - release-1.8

Published by skx almost 4 years ago

release-1.8

This release features a bunch of small cleanups, and one new feature - the long-running daemon-mode, perfect for running inside a Docker container

rss2email - release-1.7

Published by skx about 4 years ago

release-1.7

This release includes some minor changes to the way that seen-items are stored, to allow future deletion more easily, rather than unbound growth of the state-files (beneath ~/.rss2email/seen).

Feeds are now validated when added, which means the contents of the feed are actually fetched at addition time, this slows down the addition but is safer. In a similar vein feed-fetching is retried on failure, several times to deal with transient failures.

rss2email - release-1.6

Published by skx about 4 years ago

release-1.6

This release updates our main binary to add an import subcommand, which will ingest a series of feeds stored in an OPML list. As part of that the feed-list was updated to ensure that duplicate feed URLs are ignored.

rss2email - release-1.5

Published by skx about 4 years ago

release-1.5

This release contains a number of minor fixes and cleanups to the internal codebase (for example moving some files to their own packages, adding test cases where appropriate etc), as well as some fixes for the help-output output by the various subcommands.

The major new feature in this release is the ability to customize the template which is used to generate the email notifications. If you're happy with the appearance of the default emails then you need to make no changes, we still continue to ship a template embedded within our binary. However if you wish to make changes you now can supply your own template which will be populated with feed-entries and sent.

To save the default template locally please run the following command, and then edit as nececessary:

rss2email list -template > ~/.rss2email/email.tmpl

If it exists ~/.rss2email/email.tmpl will be used in preference to the integrated template.

rss2email - release-1.4

Published by skx about 4 years ago

release-1.4

This release includes two changes contributed by @DaleFarnsworth:

  • A bugfix for handling broken links in the HTML-versions of our email templates.
    • Submitted in #12
  • A minor feature-update, allowing the sender of the emails to be specified.
    • Submitted in #14
rss2email - release-1.3

Published by skx over 4 years ago

release-1.3

This release improves the error-handling when processing our list of feeds. In the past when an error was encountered processing a particular feed processing would terminate immediately.

Now errors are saved, and reported only once all feeds have been processed. This avoids a flaky RSS feed from preventing the processing of any feeds which occur later in the users' list.

  • Reported in #9.
    • Resolved in #10.
rss2email - release-1.2

Published by skx over 4 years ago

release-1.2

This release updates the generated emails to contain a pair of new headers:

  • X-RSS-Feed
    • Has a link to the source feed URL
  • X-RSS-Link
    • Has a link to the specific entry the mail describes.

This was reported in #7 as a feature-request, and implemented in #8.

Package Rankings
Top 8.17% on Proxy.golang.org
Badges
Extracted from project README
Go Report Card license Release