From b83f16e6f5ebc4407612a59c995c442f4d41ebe8 Mon Sep 17 00:00:00 2001 From: Antoine Gersant Date: Tue, 7 Jan 2020 23:28:26 -0800 Subject: [PATCH] Dont return HTTP errors when LastFM no-ops --- src/api.rs | 8 ++++++-- src/user.rs | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/api.rs b/src/api.rs index 635de60..4e0c56c 100644 --- a/src/api.rs +++ b/src/api.rs @@ -399,13 +399,17 @@ fn delete_playlist(db: State<'_, Arc>, auth: Auth, name: String) -> Result<( #[put("/lastfm/now_playing/")] fn lastfm_now_playing(db: State<'_, Arc>, auth: Auth, path: VFSPathBuf) -> Result<()> { - lastfm::now_playing(db.deref().deref(), &auth.username, &path.into() as &PathBuf)?; + if user::is_lastfm_linked(db.deref().deref(), &auth.username) { + lastfm::now_playing(db.deref().deref(), &auth.username, &path.into() as &PathBuf)?; + } Ok(()) } #[post("/lastfm/scrobble/")] fn lastfm_scrobble(db: State<'_, Arc>, auth: Auth, path: VFSPathBuf) -> Result<()> { - lastfm::scrobble(db.deref().deref(), &auth.username, &path.into() as &PathBuf)?; + if user::is_lastfm_linked(db.deref().deref(), &auth.username) { + lastfm::scrobble(db.deref().deref(), &auth.username, &path.into() as &PathBuf)?; + } Ok(()) } diff --git a/src/user.rs b/src/user.rs index f3b90ed..ad68da4 100644 --- a/src/user.rs +++ b/src/user.rs @@ -112,6 +112,13 @@ where } } +pub fn is_lastfm_linked(db: &T, username: &str) -> bool +where + T: ConnectionSource, +{ + get_lastfm_session_key(db, username).is_ok() +} + pub fn lastfm_unlink(db: &T, username: &str) -> Result<()> where T: ConnectionSource,