Include catalog number in selected release label

This commit is contained in:
Claudio Ortolina
2025-05-24 19:01:43 +01:00
parent 7172551552
commit d666765d18
2 changed files with 30 additions and 2 deletions
+29 -2
View File
@@ -1,6 +1,26 @@
defmodule MusicBrainz.Release do defmodule MusicBrainz.Release do
@enforce_keys [:id, :title, :disambiguation, :artists, :date, :barcode, :country, :media] @enforce_keys [
defstruct [:id, :title, :disambiguation, :artists, :date, :barcode, :country, :media] :id,
:title,
:disambiguation,
:artists,
:date,
:barcode,
:catalog_number,
:country,
:media
]
defstruct [
:id,
:title,
:disambiguation,
:artists,
:date,
:barcode,
:catalog_number,
:country,
:media
]
defmodule Artist do defmodule Artist do
@enforce_keys [:id, :name, :sort_name] @enforce_keys [:id, :name, :sort_name]
@@ -41,6 +61,7 @@ defmodule MusicBrainz.Release do
artists: parse_artists(r["artist-credit"] || []), artists: parse_artists(r["artist-credit"] || []),
date: r["date"], date: r["date"],
barcode: r["barcode"], barcode: r["barcode"],
catalog_number: parse_catalog_number(r["label-info"] || []),
country: r["country"], country: r["country"],
media: parse_media(r["media"] || []) media: parse_media(r["media"] || [])
} }
@@ -80,4 +101,10 @@ defmodule MusicBrainz.Release do
} }
end) end)
end end
defp parse_catalog_number(label_infos) do
Enum.find_value(label_infos, fn li ->
li["catalog-number"]
end)
end
end end
@@ -307,6 +307,7 @@ defmodule MusicLibraryWeb.RecordComponents do
release.date, release.date,
release.country |> country_label(), release.country |> country_label(),
ReleaseSearchResult.format(release), ReleaseSearchResult.format(release),
release.catalog_number,
release.disambiguation release.disambiguation
] ]
|> Enum.reject(fn fragment -> fragment in [nil, ""] end) |> Enum.reject(fn fragment -> fragment in [nil, ""] end)