diff --git a/src/utilities.rs b/src/utilities.rs index 4582de3..d532041 100644 --- a/src/utilities.rs +++ b/src/utilities.rs @@ -111,21 +111,20 @@ pub fn read_feed(path: &str) -> Vec { let feed_urls: Vec<&str> = binding.lines().collect(); log::trace!("Fetching feeds:"); - let raw_entries: Vec, String>> = feed_urls - .into_par_iter() - .map(|url| { - web_fetchers::fetch_feed(url) - .map_err(|e| format!("Failed to fetch or parse feed {}: {}", url, e)) - }) - .collect(); - let mut entries: Vec = Vec::new(); - for entry in raw_entries { - match entry { - Ok(mut feed_entries) => entries.append(&mut feed_entries), - Err(e) => log::warn!("{}", e), - } - } + let mut entries: Vec = feed_urls + .into_par_iter() + .filter_map(|url| match web_fetchers::fetch_feed(url) { + Ok(entries) => Some(entries), + Err(e) => { + println!("Failed to fetch or parse feed {}: {}", url, e); + None + } + }) + .collect::>>() + .into_iter() + .flatten() + .collect(); entries.retain(validate_entry_date);