Skip feed that can't get fetched
This commit is contained in:
14
src/main.rs
14
src/main.rs
@@ -1,4 +1,5 @@
|
|||||||
use anyhow::{
|
use anyhow::{
|
||||||
|
bail,
|
||||||
Context,
|
Context,
|
||||||
Result,
|
Result,
|
||||||
};
|
};
|
||||||
@@ -15,6 +16,7 @@ use feed_rs::{
|
|||||||
|
|
||||||
use reqwest::{
|
use reqwest::{
|
||||||
IntoUrl,
|
IntoUrl,
|
||||||
|
StatusCode,
|
||||||
Url,
|
Url,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -39,6 +41,10 @@ fn fetch_feed(url: impl IntoUrl) -> Result<Feed> {
|
|||||||
let r = reqwest::blocking::get(url)
|
let r = reqwest::blocking::get(url)
|
||||||
.context("Failed to fetch feed")?;
|
.context("Failed to fetch feed")?;
|
||||||
|
|
||||||
|
if r.status() != StatusCode::OK {
|
||||||
|
bail!("Fetched feed returned unuseable status code {}", r.status());
|
||||||
|
}
|
||||||
|
|
||||||
let content = r.bytes()
|
let content = r.bytes()
|
||||||
.context("Failed to read feed contents")?;
|
.context("Failed to read feed contents")?;
|
||||||
|
|
||||||
@@ -108,7 +114,13 @@ fn main() -> Result<()> {
|
|||||||
for feed_url in feed_file.urls {
|
for feed_url in feed_file.urls {
|
||||||
println!("Loading feed {}", feed_url);
|
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 {
|
for entry in feed_entries {
|
||||||
match make_feed_item(entry) {
|
match make_feed_item(entry) {
|
||||||
|
Reference in New Issue
Block a user