All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Handles feed parse errors gracefully without
panic
ing.
- Revamped the feed fetching code by using future streams. Saw speedups of around 70% (~7 seconds for 14 feeds to ~2 seconds)! Big thanks to Pat Shaughnessy for his blog post on downloading files in parallel with async Rust!
- The
remove
command: lets you select feeds and remove them. - Loading indicators, courtesy of indicatif.
- Refactored the two main functions! Extracted the logic of processing an individual feed to separate functions.
- Refactored
config_to_rust
utility function so that it handles case where there is no .hemrc. - Switched to using the
<link>
tag instead of the item'sid
for getting the item's URI. Some feeds place an actual GUID in theid
instead of a URI;link
is more consistent.
- The
list
command: list out your saved RSS/Atom feeds top <num_items>
: thetop
command has replaced thetop5
command. You can now pass in however many entries you want to list for each of your feeds. Defaults to 1 per feed.- This changelog!
top5
: thetop5
command has been removed; usetop
instead (seeAdded
).
- Started using a reqwest
Client
instead ofreqwest::get()
- Added handling for feeds that don't have an "updated" field
- Utility functions have been moved into the
lib.rs
file where they belong