From 43b866d79879e2bcf790763ac1c8474cebe86074 Mon Sep 17 00:00:00 2001 From: clerie Date: Sat, 26 Apr 2025 12:35:06 +0200 Subject: [PATCH] Skip feed that can't get fetched --- src/main.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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) {