diff options
author | Teddy Wing | 2018-04-13 19:08:48 +0200 |
---|---|---|
committer | Teddy Wing | 2018-04-13 19:08:48 +0200 |
commit | 97dba8dedcf3fde65dfa9ae4aa57de0c446a66a1 (patch) | |
tree | 34ee4ad6156f5bd4626e4f747a1f2898a18cecd0 /src | |
parent | 9c52f6e0b4db6ce7c732e33feceb40743611d35c (diff) | |
download | meetup-find-events-rss-97dba8dedcf3fde65dfa9ae4aa57de0c446a66a1.tar.bz2 |
Output a feed to STDOUT when running the executable
* Add a new module that contains a "main" library function that does the
integration for generating the feed and outputting it to STDOUT.
* Call this function from `main()` and have it output a real feed.
Diffstat (limited to 'src')
-rw-r--r-- | src/build_rss.rs | 14 | ||||
-rw-r--r-- | src/lib.rs | 2 | ||||
-rw-r--r-- | src/main.rs | 6 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/build_rss.rs b/src/build_rss.rs new file mode 100644 index 0000000..ab9d06d --- /dev/null +++ b/src/build_rss.rs @@ -0,0 +1,14 @@ +use std::error::Error; + +use meetup::event; +use meetup_rss; + +/// Requests the Meetup API, generates an RSS feed from the resulting events, +/// and writes the XML to standard output. +pub fn write_feed() -> Result<(), Box<Error>> { + let events = event::find_upcoming_events()?; + let channel = meetup_rss::generate(&events)?; + meetup_rss::write(channel); + + Ok(()) +} @@ -2,4 +2,6 @@ extern crate rss; extern crate meetup; +pub mod build_rss; + mod meetup_rss; diff --git a/src/main.rs b/src/main.rs index 5bc3131..81097ae 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,14 @@ extern crate getopts; +extern crate meetup_find_events_rss; + use getopts::Options; use std::env; use std::process::exit; +use meetup_find_events_rss::build_rss; + fn print_usage(opts: Options) { let brief = "usage: meetup-find-events-rss"; print!("{}", opts.usage(&brief)); @@ -37,5 +41,5 @@ fn main() { let meetup_token = opt_matches.opt_str("meetup-api-token").unwrap(); - println!("{}", meetup_token); + build_rss::write_feed().unwrap(); } |