A decentralized music tracking and discovery platform built on AT Protocol 🎵 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz

feat: update get_artist_listeners to include album_artist in query and grouping

+9 -3
+9 -3
crates/analytics/src/handlers/artists.rs
··· 402 s.user_id, 403 s.track_id, 404 t.artist, 405 t.title as track_title, 406 t.uri as track_uri, 407 COUNT(*) as play_count 408 FROM scrobbles s 409 JOIN tracks t ON s.track_id = t.id 410 - WHERE t.artist = ? 411 - GROUP BY s.user_id, s.track_id, t.artist, t.title, t.uri 412 ), 413 user_top_tracks AS ( 414 SELECT ··· 468 )?; 469 470 let listeners = stmt.query_map( 471 - [&artist.name, &limit.to_string(), &offset.to_string()], 472 |row| { 473 Ok(ArtistListener { 474 artist: row.get(0)?,
··· 402 s.user_id, 403 s.track_id, 404 t.artist, 405 + t.album_artist, 406 t.title as track_title, 407 t.uri as track_uri, 408 COUNT(*) as play_count 409 FROM scrobbles s 410 JOIN tracks t ON s.track_id = t.id 411 + WHERE t.artist = ? OR t.album_artist = ? 412 + GROUP BY s.user_id, s.track_id, t.artist, t.title, t.uri, t.album_artist 413 ), 414 user_top_tracks AS ( 415 SELECT ··· 469 )?; 470 471 let listeners = stmt.query_map( 472 + [ 473 + &artist.name, 474 + &artist.name, 475 + &limit.to_string(), 476 + &offset.to_string(), 477 + ], 478 |row| { 479 Ok(ArtistListener { 480 artist: row.get(0)?,