diff --git a/hammond-data/src/models/queryables.rs b/hammond-data/src/models/queryables.rs index 90124e7..56b3b29 100644 --- a/hammond-data/src/models/queryables.rs +++ b/hammond-data/src/models/queryables.rs @@ -1,3 +1,5 @@ +use chrono::prelude::*; + use reqwest; use diesel::SaveChangesDsl; use diesel::result::QueryResult; @@ -131,6 +133,13 @@ impl Episode { self.podcast_id } + pub fn set_played_now(&mut self) -> QueryResult<()> { + let epoch = Utc::now().timestamp() as i32; + self.set_played(Some(epoch)); + self.save()?; + Ok(()) + } + pub fn save(&self) -> QueryResult { let db = connection(); let tempdb = db.get().unwrap(); diff --git a/hammond-data/src/utils.rs b/hammond-data/src/utils.rs index 46493bd..873bb68 100644 --- a/hammond-data/src/utils.rs +++ b/hammond-data/src/utils.rs @@ -75,13 +75,6 @@ pub fn delete_local_content(ep: &mut Episode) -> Result<()> { Ok(()) } -pub fn set_played_now(ep: &mut Episode) -> Result<()> { - let epoch = Utc::now().timestamp() as i32; - ep.set_played(Some(epoch)); - ep.save()?; - Ok(()) -} - pub fn checkup() -> Result<()> { download_checker()?; played_cleaner()?; diff --git a/hammond-gtk/src/widgets/episode.rs b/hammond-gtk/src/widgets/episode.rs index e8b349d..4851a03 100644 --- a/hammond-gtk/src/widgets/episode.rs +++ b/hammond-gtk/src/widgets/episode.rs @@ -69,8 +69,9 @@ fn epidose_widget(episode: &mut Episode, pd_title: &str) -> gtk::Box { } play_button.connect_clicked(clone!(episode, played_button, unplayed_button => move |_| { + let mut episode = episode.clone(); on_play_bttn_clicked(*episode.id()); - let _ = set_played_now(&mut episode.clone()); + let _ = episode.set_played_now(); played_button.hide(); unplayed_button.show(); })); @@ -83,7 +84,8 @@ fn epidose_widget(episode: &mut Episode, pd_title: &str) -> gtk::Box { })); played_button.connect_clicked(clone!(episode, unplayed_button => move |played| { - let _ = set_played_now(&mut episode.clone()); + let mut episode = episode.clone(); + let _ = episode.set_played_now(); played.hide(); unplayed_button.show(); }));