From d666765d18cff73e7e28cb0ee64f62ae9e25ee3b Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 24 May 2025 19:01:43 +0100 Subject: [PATCH] Include catalog number in selected release label --- lib/music_brainz/release.ex | 31 +++++++++++++++++-- .../components/record_components.ex | 1 + 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/music_brainz/release.ex b/lib/music_brainz/release.ex index 42b2cc83..6cbc7619 100644 --- a/lib/music_brainz/release.ex +++ b/lib/music_brainz/release.ex @@ -1,6 +1,26 @@ defmodule MusicBrainz.Release do - @enforce_keys [:id, :title, :disambiguation, :artists, :date, :barcode, :country, :media] - defstruct [:id, :title, :disambiguation, :artists, :date, :barcode, :country, :media] + @enforce_keys [ + :id, + :title, + :disambiguation, + :artists, + :date, + :barcode, + :catalog_number, + :country, + :media + ] + defstruct [ + :id, + :title, + :disambiguation, + :artists, + :date, + :barcode, + :catalog_number, + :country, + :media + ] defmodule Artist do @enforce_keys [:id, :name, :sort_name] @@ -41,6 +61,7 @@ defmodule MusicBrainz.Release do artists: parse_artists(r["artist-credit"] || []), date: r["date"], barcode: r["barcode"], + catalog_number: parse_catalog_number(r["label-info"] || []), country: r["country"], media: parse_media(r["media"] || []) } @@ -80,4 +101,10 @@ defmodule MusicBrainz.Release do } end) end + + defp parse_catalog_number(label_infos) do + Enum.find_value(label_infos, fn li -> + li["catalog-number"] + end) + end end diff --git a/lib/music_library_web/components/record_components.ex b/lib/music_library_web/components/record_components.ex index ecd0385c..836b02e7 100644 --- a/lib/music_library_web/components/record_components.ex +++ b/lib/music_library_web/components/record_components.ex @@ -307,6 +307,7 @@ defmodule MusicLibraryWeb.RecordComponents do release.date, release.country |> country_label(), ReleaseSearchResult.format(release), + release.catalog_number, release.disambiguation ] |> Enum.reject(fn fragment -> fragment in [nil, ""] end)