From a0947b07f342fef46b0a930dd2a52dc05616b8af Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Tue, 12 Nov 2024 10:21:54 +0000 Subject: [PATCH] Add batch task to update release IDs --- lib/music_library/records/batch.ex | 12 ++++++++++++ lib/music_library/records/record.ex | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/lib/music_library/records/batch.ex b/lib/music_library/records/batch.ex index 3c8ea5b2..bd4a7c32 100644 --- a/lib/music_library/records/batch.ex +++ b/lib/music_library/records/batch.ex @@ -21,6 +21,18 @@ defmodule MusicLibrary.Records.Batch do end end + def update_release_ids do + Record + |> Repo.all() + |> Enum.each(&update_release_ids/1) + end + + def update_release_ids(record) do + record + |> Record.update_release_ids() + |> Repo.update!() + end + defp musicbrainz do Application.get_env(:music_library, :musicbrainz, MusicBrainz.APIImpl) end diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index 4ab53d7c..91c8b3e0 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -77,6 +77,13 @@ defmodule MusicLibrary.Records.Record do |> change(musicbrainz_data: musicbrainz_data) end + def update_release_ids(record) do + release_ids = Enum.map(record.musicbrainz_data["releases"], fn r -> r["id"] end) + + record + |> change(release_ids: release_ids) + end + def generate_cover_hash(record = %__MODULE__{cover_data: cover_data}) do hash = :crypto.hash(:sha256, cover_data) |> Base.encode16()