Crates.io | hermod |
lib.rs | hermod |
version | 0.1.3 |
source | src |
created_at | 2018-10-27 17:49:53.692641 |
updated_at | 2019-01-02 18:14:48.958595 |
description | A rust futures-based RSS/Atom library |
homepage | |
repository | https://github.com/richardbrodie/hermod |
max_upload_size | |
id | 92960 |
size | 12,521 |
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);
}