Fix parsing of record type from MB response

This commit is contained in:
Claudio Ortolina
2026-02-15 11:38:26 +00:00
parent d473e1f8a4
commit 08da5bb272
+13 -7
View File
@@ -229,7 +229,7 @@ defmodule MusicLibrary.Records.Record do
"title" => release_group["title"], "title" => release_group["title"],
"artists" => artists_attrs, "artists" => artists_attrs,
"release_date" => release_group["first-release-date"], "release_date" => release_group["first-release-date"],
"type" => parse_subtype(release_group["primary-type"]), "type" => parse_subtype(release_group["primary-type"], release_group["secondary-types"]),
"genres" => Enum.map(release_group["genres"], fn g -> g["name"] end), "genres" => Enum.map(release_group["genres"], fn g -> g["name"] end),
"release_ids" => Enum.map(release_group["releases"], fn r -> r["id"] end), "release_ids" => Enum.map(release_group["releases"], fn r -> r["id"] end),
"cover_url" => "https://coverartarchive.org/release-group/#{musicbrainz_id}/front" "cover_url" => "https://coverartarchive.org/release-group/#{musicbrainz_id}/front"
@@ -250,12 +250,18 @@ defmodule MusicLibrary.Records.Record do
end) end)
end end
defp parse_subtype("Album"), do: :album defp parse_subtype("Album", secondary_types), do: parse_secondary_types(secondary_types)
defp parse_subtype("EP"), do: :ep defp parse_subtype("EP", _secondary_types), do: :ep
defp parse_subtype("Live"), do: :live defp parse_subtype("Single", _secondary_types), do: :single
defp parse_subtype("Compilation"), do: :compilation defp parse_subtype(_primary_type, _secondary_types), do: :other
defp parse_subtype("Single"), do: :single
defp parse_subtype(_), do: :other defp parse_secondary_types(secondary_types) do
cond do
"Live" in secondary_types -> :live
"Compilation" in secondary_types -> :compilation
true -> :album
end
end
@doc """ @doc """
Format a release date in a conventional format. Format a release date in a conventional format.