hermod

Crates.iohermod
lib.rshermod
version0.1.3
sourcesrc
created_at2018-10-27 17:49:53.692641
updated_at2019-01-02 18:14:48.958595
descriptionA rust futures-based RSS/Atom library
homepage
repositoryhttps://github.com/richardbrodie/hermod
max_upload_size
id92960
size12,521
Richard Brodie (richardbrodie)

documentation

https://docs.rs/hermod

README

Hermod

A futures-based RSS-reading library for rust.

To use

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);
}
Commit count: 13

cargo fmt