In scrobble activitiy, prioritize matchin on collected release first

When the collection contains multiple records for the same release
group, we want the scrobble activity to first match against the one that
was actually scrobbled, as opposed to ANY other collected release.
This commit is contained in:
Claudio Ortolina
2025-12-01 09:36:01 +00:00
parent 8363d43ca1
commit 0c7196639f
2 changed files with 5 additions and 2 deletions
+2 -1
View File
@@ -126,7 +126,8 @@ defmodule MusicLibrary.Collection do
select: %{
record_id: fragment("records.id"),
cover_hash: fragment("records.cover_hash"),
release_id: r.value
release_id: r.value,
selected_release_id: fragment("records.selected_release_id")
}
end
+3 -1
View File
@@ -190,7 +190,9 @@ defmodule MusicLibrary.ScrobbleActivity do
tracks_query =
from t in Track,
left_join: cr in subquery(Collection.collected_releases_query()),
on: cr.release_id == fragment("? ->> '$.musicbrainz_id'", t.album),
on:
cr.selected_release_id == fragment("? ->> '$.musicbrainz_id'", t.album) or
cr.release_id == fragment("? ->> '$.musicbrainz_id'", t.album),
left_join: wr in subquery(Wishlist.wishlisted_releases_query()),
on: wr.release_id == fragment("? ->> '$.musicbrainz_id'", t.album),
left_join: ar in subquery(all_artists_query),