A futures-based RSS-reading library for rust.
To fetch a feed
extern crate hermod;
use hermod::models::Feed;
use hermod::futures::fetch_feed;
fn get_a_feed(url: &str) {
fetch_feed(url)
.and_then(|feed| {
let channel = feed.channel;
let title = channel.title;
});
}
To start a loop that will fetch several feeds, and run a custom func for each feed with the resulting Feed
extern crate hermod;
use std::sync::{Arc, Mutex};
use hermod::models::Feed;
use hermod::futures::start_fetch_loop;
fn automatically_fetch_feeds() {
let interval = 300; // seconds
let feeds = vec![
"https://lorem-rss.herokuapp.com/feed".to_owned(),
"https://feeds.feedburner.com/cyclingtipsblog/TJog".to_owned(),
];
let feed_state = Arc::new(Mutex::new(feeds)); // thread-safe Vec of strings
let func = |feed: Feed| println!("updated feed: {}", feed.channel.title); // func to run for each updated feed
let work = start_fetch_loop(feed_state, interval, func);
tokio::run(work);
}