From 1419f96a3edd5b59345db8dfe72c82db1b74ca89 Mon Sep 17 00:00:00 2001 From: clerie Date: Sat, 26 Apr 2025 13:23:20 +0200 Subject: [PATCH] Be more strict with publishing dates and skip feed items that don't have any --- src/main.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index bc14693..0493ff4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,7 +34,7 @@ struct Cli { struct FeedItem { link: String, title: String, - time: Option>, + time: chrono::DateTime, } fn fetch_feed(url: impl IntoUrl) -> Result { @@ -98,8 +98,9 @@ fn make_feed_item(entry: Entry) -> Result { .content .clone(), time: match entry.published { - Some(time) => Some(time), - None => entry.updated, + Some(time) => time, + None => entry.updated + .context("Unable to retrieve publishing time from feed entry")?, }, }) } @@ -134,7 +135,7 @@ fn main() -> Result<()> { } } - items.sort_by(|a, b| a.time.unwrap_or(chrono::DateTime::UNIX_EPOCH).cmp(&b.time.unwrap_or(chrono::DateTime::UNIX_EPOCH)).reverse()); + items.sort_by(|a, b| a.time.cmp(&b.time).reverse()); let mut out = String::new(); @@ -149,10 +150,7 @@ fn main() -> Result<()> { out.push_str("
    \n"); for item in items { - out.push_str(&format!("
  • [l] {} {}
  • \n", item.link, item.title, match item.time{ - Some(time) => format!("({})", time), - None => "".to_string(), - })); + out.push_str(&format!("
  • [l] {} {}
  • \n", item.link, item.title, item.time)); } out.push_str("
\n");