Use release instead of year

This commit is contained in:
Claudio Ortolina
2024-10-02 14:22:22 +01:00
parent 97b04ba8a2
commit 024d95da7c
13 changed files with 44 additions and 42 deletions
+2 -13
View File
@@ -4,7 +4,7 @@ defmodule MusicLibrary.Records do
alias MusicLibrary.Records.{MusicBrainz, Record}
@fields [:id, :type, :format, :title, :year, :genres, :musicbrainz_id, :image_data_hash]
@fields [:id, :type, :format, :title, :release, :genres, :musicbrainz_id, :image_data_hash]
def list_records(opts \\ []) do
limit = Keyword.get(opts, :limit, 20)
@@ -104,7 +104,7 @@ defmodule MusicLibrary.Records do
"musicbrainz_id" => musicbrainz_id,
"title" => release_group["title"],
"artists" => artists_attrs,
"year" => parse_year(release_group["first-release-date"]),
"release" => release_group["first-release-date"],
"type" => parse_subtype(release_group["primary-type"]),
"format" => format,
"genres" => Enum.map(release_group["genres"], fn g -> g["name"] end),
@@ -113,17 +113,6 @@ defmodule MusicLibrary.Records do
}
end
defp parse_year(iso_date) when is_binary(iso_date) do
case Date.from_iso8601(iso_date) do
{:ok, date} ->
date.year
_error ->
{year, _rest} = Integer.parse(iso_date)
{:ok, year}
end
end
defp parse_subtype("Album"), do: :album
defp parse_subtype("EP"), do: :ep
defp parse_subtype("Live"), do: :live
+1 -10
View File
@@ -173,7 +173,7 @@ defmodule MusicLibrary.Records.MusicBrainz do
rg["artist-credit"]
|> Enum.map(fn ac -> ac["artist"]["name"] end)
|> Enum.join(", "),
year: parse_year(rg["first-release-date"])
release: rg["first-release-date"]
}
end)}
end
@@ -231,15 +231,6 @@ defmodule MusicLibrary.Records.MusicBrainz do
end
end
defp parse_year(nil), do: ""
defp parse_year(iso_date) do
case Date.from_iso8601(iso_date) do
{:ok, date} -> date.year
_error -> nil
end
end
defp parse_subtype("Album"), do: :album
defp parse_subtype("EP"), do: :ep
defp parse_subtype("Live"), do: :live
+3 -2
View File
@@ -16,6 +16,7 @@ defmodule MusicLibrary.Records.Record do
field :year, :integer
field :musicbrainz_id, Ecto.UUID
field :genres, {:array, :string}
field :release, :string
embeds_many :artists, Artist do
field :name, :string
@@ -35,14 +36,14 @@ defmodule MusicLibrary.Records.Record do
:format,
:title,
:musicbrainz_id,
:year,
:release,
:genres,
:image_url,
:image_data
])
|> cast_embed(:artists, with: &artist_changeset/2)
|> generate_image_data_hash()
|> validate_required([:type, :title, :musicbrainz_id, :year, :genres])
|> validate_required([:type, :title, :musicbrainz_id, :release, :genres])
end
@doc false