From b5d46a93081651b1aed24a1f1b8fe9bbf5b9871f Mon Sep 17 00:00:00 2001 From: Tsiry Sandratraina Date: Sun, 28 Sep 2025 05:23:21 +0300 Subject: [PATCH] fix: add artist mismatch check in scrobble_listenbrainz function --- crates/scrobbler/src/scrobbler.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/scrobbler/src/scrobbler.rs b/crates/scrobbler/src/scrobbler.rs index ab63a17..729586a 100644 --- a/crates/scrobbler/src/scrobbler.rs +++ b/crates/scrobbler/src/scrobbler.rs @@ -610,6 +610,20 @@ pub async fn scrobble_listenbrainz( .await?; if let Some(track) = result.tracks.items.first() { + let artists = track + .artists + .iter() + .map(|a| a.name.clone()) + .collect::>() + .join(", ") + .to_lowercase(); + + // check if artists don't contain the scrobble artist (to avoid wrong matches) + if !artists.contains(&scrobble.artist.to_lowercase()) { + tracing::warn!(artist = %artist, track = %track, "Artist mismatch, skipping"); + return Ok(()); + } + tracing::info!("Spotify (track)"); scrobble.album = Some(track.album.name.clone()); let mut track = track.clone(); -- 2.43.0