aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build_rss.rs14
-rw-r--r--src/lib.rs2
-rw-r--r--src/main.rs6
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(())
+}
diff --git a/src/lib.rs b/src/lib.rs
index 9f8b791..cc20fe5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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();
}