From e1b73c300f267874779da6565a40a97351f5f848 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 22 Nov 2025 18:22:30 +0000 Subject: [PATCH] Update derived fields when updating musicbrainz data --- lib/music_library/records/record.ex | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index 8a339e19..208589b5 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -152,6 +152,7 @@ defmodule MusicLibrary.Records.Record do |> update_artists() |> update_release_ids() |> update_included_release_group_ids() + |> update_musicbrainz_data_derived_fields() end def rotate_dominant_colors(%__MODULE__{dominant_colors: dominant_colors} = record) do @@ -200,6 +201,22 @@ defmodule MusicLibrary.Records.Record do end end + defp update_musicbrainz_data_derived_fields(changeset) do + case get_change(changeset, :musicbrainz_data) do + nil -> + changeset + + musicbrainz_data -> + changeset + |> put_change(:title, musicbrainz_data["title"]) + |> put_change(:release_date, musicbrainz_data["first-release-date"]) + |> put_change( + :cover_url, + "https://coverartarchive.org/release-group/#{musicbrainz_data["id"]}/front" + ) + end + end + def attrs_from_release_group(release_group) do musicbrainz_id = release_group["id"]