Rename record.release to record.release_date
Includes changes to dependent tables (i.e. the record search index) and related functions.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
defmodule MusicBrainz.ReleaseGroupSearchResult do
|
||||
@enforce_keys [:id, :type, :title, :artists, :release]
|
||||
defstruct [:id, :type, :title, :artists, :release]
|
||||
@enforce_keys [:id, :type, :title, :artists, :release_date]
|
||||
defstruct [:id, :type, :title, :artists, :release_date]
|
||||
|
||||
alias MusicBrainz.ReleaseGroup
|
||||
|
||||
@@ -10,7 +10,7 @@ defmodule MusicBrainz.ReleaseGroupSearchResult do
|
||||
type: ReleaseGroup.parse_type(rg["primary-type"]),
|
||||
title: rg["title"],
|
||||
artists: Enum.map_join(rg["artist-credit"], ", ", fn ac -> ac["artist"]["name"] end),
|
||||
release: rg["first-release-date"]
|
||||
release_date: rg["first-release-date"]
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ defmodule MusicLibrary.Records do
|
||||
:release_ids,
|
||||
:included_release_group_ids,
|
||||
:cover_hash,
|
||||
:release
|
||||
:release_date
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ defmodule MusicLibrary.Records.Record do
|
||||
field :musicbrainz_id, Ecto.UUID
|
||||
field :musicbrainz_data, :map, default: %{}
|
||||
field :genres, {:array, :string}
|
||||
field :release, :string
|
||||
field :release_date, :string
|
||||
field :purchased_at, :utc_datetime
|
||||
field :release_ids, {:array, :string}, default: []
|
||||
field :included_release_group_ids, {:array, :string}, default: []
|
||||
@@ -55,10 +55,10 @@ defmodule MusicLibrary.Records.Record do
|
||||
Enum.count(record.release_ids)
|
||||
end
|
||||
|
||||
def released?(%{release: nil}, _current_day), do: true
|
||||
def released?(%{release_date: nil}, _current_day), do: true
|
||||
|
||||
def released?(record, current_day) do
|
||||
case Date.from_iso8601(record.release) do
|
||||
case Date.from_iso8601(record.release_date) do
|
||||
{:ok, release_date} ->
|
||||
Date.compare(current_day, release_date) != :lt
|
||||
|
||||
@@ -78,7 +78,7 @@ defmodule MusicLibrary.Records.Record do
|
||||
:title,
|
||||
:musicbrainz_id,
|
||||
:musicbrainz_data,
|
||||
:release,
|
||||
:release_date,
|
||||
:genres,
|
||||
:release_ids,
|
||||
:included_release_group_ids,
|
||||
@@ -169,7 +169,7 @@ defmodule MusicLibrary.Records.Record do
|
||||
"musicbrainz_data" => release_group,
|
||||
"title" => release_group["title"],
|
||||
"artists" => artists_attrs,
|
||||
"release" => release_group["first-release-date"],
|
||||
"release_date" => release_group["first-release-date"],
|
||||
"type" => parse_subtype(release_group["primary-type"]),
|
||||
"genres" => Enum.map(release_group["genres"], fn g -> g["name"] end),
|
||||
"release_ids" => Enum.map(release_group["releases"], fn r -> r["id"] end),
|
||||
@@ -191,22 +191,22 @@ defmodule MusicLibrary.Records.Record do
|
||||
and can be nil or empty string.
|
||||
|
||||
iex> alias MusicLibrary.Records.Record
|
||||
iex> Record.format_release(nil)
|
||||
iex> Record.format_release_date(nil)
|
||||
"N/A"
|
||||
iex> Record.format_release("")
|
||||
iex> Record.format_release_date("")
|
||||
"N/A"
|
||||
iex> Record.format_release("2021")
|
||||
iex> Record.format_release_date("2021")
|
||||
"2021"
|
||||
iex> Record.format_release("2021-12")
|
||||
iex> Record.format_release_date("2021-12")
|
||||
"12/2021"
|
||||
iex> Record.format_release("2021-12-23")
|
||||
iex> Record.format_release_date("2021-12-23")
|
||||
"23/12/2021"
|
||||
"""
|
||||
@spec format_release(String.t() | nil) :: String.t()
|
||||
def format_release(nil), do: "N/A"
|
||||
@spec format_release_date(String.t() | nil) :: String.t()
|
||||
def format_release_date(nil), do: "N/A"
|
||||
|
||||
def format_release(release) do
|
||||
case String.split(release, "-", trim: true) do
|
||||
def format_release_date(release_date) do
|
||||
case String.split(release_date, "-", trim: true) do
|
||||
[] -> "N/A"
|
||||
[year] -> year
|
||||
[year, month] -> "#{month}/#{year}"
|
||||
|
||||
@@ -20,7 +20,7 @@ defmodule MusicLibrary.Records.SearchIndex do
|
||||
field :title, :string
|
||||
field :musicbrainz_id, Ecto.UUID
|
||||
field :genres, {:array, :string}
|
||||
field :release, :string
|
||||
field :release_date, :string
|
||||
field :purchased_at, :utc_datetime
|
||||
field :cover_hash, :string
|
||||
field :release_ids, {:array, :string}, default: []
|
||||
|
||||
@@ -81,7 +81,9 @@ defmodule MusicLibraryWeb.AddRecordComponent do
|
||||
{@release_group.title}
|
||||
</h2>
|
||||
<p class="mt-1 text-xs leading-5 text-zinc-500 dark:text-zinc-400">
|
||||
{Records.Record.format_release(@release_group.release)} · {type_label(@release_group.type)}
|
||||
{Records.Record.format_release_date(@release_group.release_date)} · {type_label(
|
||||
@release_group.type
|
||||
)}
|
||||
</p>
|
||||
</div>
|
||||
<div class="relative flex-none">
|
||||
|
||||
@@ -280,7 +280,7 @@ defmodule MusicLibraryWeb.BarcodeScannerComponent do
|
||||
{@release.title}
|
||||
</h2>
|
||||
<p class="mt-1 text-xs leading-5 text-zinc-500 dark:text-zinc-400">
|
||||
{release_format_label(@release)} · {Records.Record.format_release(@release.date)} · {RecordComponents.type_label(
|
||||
{release_format_label(@release)} · {Records.Record.format_release_date(@release.date)} · {RecordComponents.type_label(
|
||||
@release.release_group.type
|
||||
)}
|
||||
</p>
|
||||
|
||||
@@ -56,7 +56,7 @@ defmodule MusicLibraryWeb.FormComponent do
|
||||
label={gettext("MusicBrainz ID")}
|
||||
/>
|
||||
<div class="sm:columns-2">
|
||||
<.input field={@form[:release]} type="text" label={gettext("Release")} />
|
||||
<.input field={@form[:release_date]} type="text" label={gettext("Release Date")} />
|
||||
<.input
|
||||
:if={@show_purchased_at}
|
||||
field={@form[:purchased_at]}
|
||||
|
||||
@@ -57,7 +57,7 @@ defmodule MusicLibraryWeb.RecordComponents do
|
||||
{record.title}
|
||||
</h2>
|
||||
<p class="mt-1 text-xs leading-5 text-zinc-500 dark:text-zinc-400">
|
||||
{Records.Record.format_release(record.release)}
|
||||
{Records.Record.format_release_date(record.release_date)}
|
||||
<span :if={@current_date && !Records.Record.released?(record, @current_date)}>
|
||||
({gettext("Unreleased")})
|
||||
</span>
|
||||
@@ -271,7 +271,7 @@ defmodule MusicLibraryWeb.RecordComponents do
|
||||
{format_label(record.format)} · {type_label(record.type)}
|
||||
</p>
|
||||
<p class="pointer-events-none block text-sm font-medium text-zinc-500">
|
||||
{Records.Record.format_release(record.release)}
|
||||
{Records.Record.format_release_date(record.release_date)}
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -125,8 +125,8 @@ defmodule MusicLibraryWeb.ArtistLive.Show do
|
||||
{collection, wishlist} = Enum.split_with(records, fn r -> r.purchased_at end)
|
||||
|
||||
%{
|
||||
collection: Enum.sort_by(collection, fn r -> r.release end, :desc),
|
||||
wishlist: Enum.sort_by(wishlist, fn r -> r.release end, :desc)
|
||||
collection: Enum.sort_by(collection, fn r -> r.release_date end, :desc),
|
||||
wishlist: Enum.sort_by(wishlist, fn r -> r.release_date end, :desc)
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
{@record.title}
|
||||
</h2>
|
||||
<p class="mt-2 text-sm leading-5 text-zinc-500 dark:text-zinc-400">
|
||||
{Records.Record.format_release(@record.release)} · {format_label(@record.format)} · {type_label(
|
||||
{Records.Record.format_release_date(@record.release_date)} · {format_label(@record.format)} · {type_label(
|
||||
@record.type
|
||||
)}
|
||||
</p>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
{@record.title}
|
||||
</h2>
|
||||
<p class="mt-2 text-sm leading-5 text-zinc-500 dark:text-zinc-400">
|
||||
{Records.Record.format_release(@record.release)}
|
||||
{Records.Record.format_release_date(@record.release_date)}
|
||||
<span :if={@current_date && !Records.Record.released?(@record, @current_date)}>
|
||||
({gettext("Unreleased")})
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user