diff --git a/lib/music_library/records.ex b/lib/music_library/records.ex index 65366d9f..7df4cf44 100644 --- a/lib/music_library/records.ex +++ b/lib/music_library/records.ex @@ -330,6 +330,9 @@ defmodule MusicLibrary.Records do enqueue_worker(Worker.RefreshCover, %{"id" => record.id}, record_meta(record)) end + defp maybe_extract_colors(%{dominant_colors: [_ | _]} = record), do: {:ok, record} + defp maybe_extract_colors(record), do: extract_colors(record) + @spec extract_colors(Record.t()) :: {:ok, Record.t()} | {:error, term()} def extract_colors(record) do asset = Assets.get!(record.cover_hash) @@ -409,7 +412,7 @@ defmodule MusicLibrary.Records do @spec create_record(map()) :: {:ok, Record.t()} | {:error, Ecto.Changeset.t()} def create_record(attrs \\ %{}) do with {:ok, record} <- do_create_record(attrs) do - {:ok, record} = extract_colors(record) + {:ok, record} = maybe_extract_colors(record) generate_embedding_async(record) record diff --git a/test/support/fixtures/music_library/records.ex b/test/support/fixtures/music_library/records.ex index fb38ff1f..30ecf7a6 100644 --- a/test/support/fixtures/music_library/records.ex +++ b/test/support/fixtures/music_library/records.ex @@ -95,7 +95,7 @@ defmodule MusicLibrary.Fixtures.Records do release_date: Enum.random(1969..2024) |> Integer.to_string(), purchased_at: current_time, artists: [artist_attrs(artist_name)], - dominant_colors: ["#000000", "#C0C0C0", "#C08080", "#404000", "#804040"] + dominant_colors: ["#000000", "#c0c0c0", "#c08080", "#404000", "#804040"] }) |> MusicLibrary.Records.create_record()