From 35b5b8956f0bdf81da25380de7d3a6f243e6d1c0 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 7 Nov 2018 20:53:59 -0500 Subject: combine exporter and cmd/sync --- src/cmd/sync.rs | 7 +++---- src/db.rs | 4 +--- src/exporter.rs | 37 ------------------------------------- src/main.rs | 1 - 4 files changed, 4 insertions(+), 45 deletions(-) delete mode 100644 src/exporter.rs diff --git a/src/cmd/sync.rs b/src/cmd/sync.rs index f8ca2b6..3331db1 100644 --- a/src/cmd/sync.rs +++ b/src/cmd/sync.rs @@ -1,6 +1,5 @@ use cli; use db; -use exporter; use lastfm; use paths; @@ -13,9 +12,9 @@ pub fn run(opts: &cli::Options) -> failure::Fallible<()> { opts.username.as_ref().unwrap() ); - let exporter = exporter::Exporter::new(&db, &lastfm); + let ts = db.most_recent_timestamp()?; + let to_fetch = lastfm.track_count(ts.map(|x| x + 1))?; - let to_fetch = exporter.tracks_to_sync()?; let bar = indicatif::ProgressBar::new(to_fetch); bar.set_style( indicatif::ProgressStyle::default_bar() @@ -23,7 +22,7 @@ pub fn run(opts: &cli::Options) -> failure::Fallible<()> { .template("Downloading {pos}/{len} tracks...\n{percent:>3}% [{wide_bar}] {eta:5}") ); - exporter.sync(|_| { bar.inc(1); })?; + db.insert_tracks(bar.wrap_iter(lastfm.tracks(ts.map(|x| x + 1))))?; bar.finish_with_message("done"); diff --git a/src/db.rs b/src/db.rs index 7289810..056886e 100644 --- a/src/db.rs +++ b/src/db.rs @@ -74,10 +74,9 @@ impl DB { })?) } - pub fn insert_tracks( + pub fn insert_tracks( &self, tracks: impl Iterator, - mut f: F ) -> failure::Fallible<()> { let mut sth = self.conn.prepare("INSERT INTO tracks VALUES (?, ?, ?, ?)")?; for track in tracks { @@ -88,7 +87,6 @@ impl DB { &track.name, &track.timestamp, ]).map(|_| ())?; - f(track); } Ok(()) } diff --git a/src/exporter.rs b/src/exporter.rs deleted file mode 100644 index 29347f9..0000000 --- a/src/exporter.rs +++ /dev/null @@ -1,37 +0,0 @@ -use db; -use lastfm; - -pub struct Exporter<'d, 'l> { - db: &'d db::DB, - lastfm: &'l lastfm::LastFMClient, -} - -impl<'d, 'l> Exporter<'d, 'l> { - pub fn new( - db: &'d db::DB, - lastfm: &'l lastfm::LastFMClient - ) -> Exporter<'d, 'l> { - Exporter { - db, - lastfm, - } - } - - pub fn tracks_to_sync(&self) -> failure::Fallible { - let ts = self.db.most_recent_timestamp()?; - Ok(self.lastfm.track_count(ts.map(|x| x + 1))?) - } - - pub fn sync( - &self, - track_cb: F, - ) -> failure::Fallible<()> { - let ts = self.db.most_recent_timestamp()?; - self.db.insert_tracks( - self.lastfm.tracks(ts.map(|x| x + 1)), - track_cb - )?; - - Ok(()) - } -} diff --git a/src/main.rs b/src/main.rs index dc307f6..2518e55 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,6 @@ extern crate serde_derive; mod cli; mod cmd; -mod exporter; mod lastfm; mod paths; mod db; -- cgit v1.2.3