diff --git a/src/main.rs b/src/main.rs index 9fe5ce0..bc14693 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use anyhow::{ + bail, Context, Result, }; @@ -15,6 +16,7 @@ use feed_rs::{ use reqwest::{ IntoUrl, + StatusCode, Url, }; @@ -39,6 +41,10 @@ fn fetch_feed(url: impl IntoUrl) -> Result { let r = reqwest::blocking::get(url) .context("Failed to fetch feed")?; + if r.status() != StatusCode::OK { + bail!("Fetched feed returned unuseable status code {}", r.status()); + } + let content = r.bytes() .context("Failed to read feed contents")?; @@ -108,7 +114,13 @@ fn main() -> Result<()> { for feed_url in feed_file.urls { println!("Loading feed {}", feed_url); - let feed_entries = fetch_feed(feed_url)?.entries; + let feed_entries = match fetch_feed(feed_url) { + Ok(feed) => feed.entries, + Err(e) => { + println!("\t{}, skipping", e); + continue; + }, + }; for entry in feed_entries { match make_feed_item(entry) {