From 98239fd8f7980278a9ad243f58fd17603112483f Mon Sep 17 00:00:00 2001 From: Joe Date: Tue, 23 Dec 2025 22:18:47 -0800 Subject: [PATCH] get posted date via trait method --- src/lib.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index b463bf0..dc22b18 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -251,6 +251,16 @@ impl BlogdorTheAggregator { } } +trait Posted { + fn posted(&self) -> DateTime; +} + +impl Posted for feed_rs::model::Entry { + fn posted(&self) -> DateTime { + self.published.or(self.updated).unwrap_or(LAST_FETCHED) + } +} + // takes args by value because it's meant to be called from inside a spawned // tokio task scope async fn check_feed( @@ -281,11 +291,9 @@ async fn check_feed( .map_err(|e| format!("could not get bytes from response from {url}, got {e}"))?; let mut feed = parse(feed.reader()).map_err(|e| format!("could not parse feed from {url}, got {e}"))?; - feed.entries - .sort_by_key(|e| e.published.or(e.updated).unwrap_or(last_fetched)); + feed.entries.sort_by_key(|e| e.posted()); for post in feed.entries.into_iter().rev().take(5) { - let last_year = now - ONE_YEAR; - if post.published.unwrap_or(last_year) > last_fetched { + if post.posted() > last_fetched { let entry = FeedEntry { post_url: post .links