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,