Commit Diff


commit - f20e74098824aaf2cdf50e299d96eaa28b52d7da
commit + fcea8dc69f246e04c5304af228295d1be740de3b
blob - 9e2af03f15e99e78f6d321acff448143c9c69437
blob + eea2fd2d572301b178cea81d48b7e930163870a9
--- src/models.rs
+++ src/models.rs
@@ -27,11 +27,14 @@ impl TryFrom<rss::Item> for Post {
                 .timestamp()
         });
 
-        let guid = item
-            .guid()
-            .ok_or_else(|| MissingGUID { item: item.clone() })?
-            .value()
-            .to_string();
+        // take the guid and fall back to the link of the feed. abort if neither exist.
+        let guid = if let Some(g) = &item.guid {
+            g.value().to_string()
+        } else {
+            item.link()
+                .map(String::from)
+                .ok_or_else(|| MissingGUID { item: item.clone() })?
+        };
         let title = item.title().map(String::from);
         let url = item.link().map(String::from);
         let pub_date = time;