Add batch task to update release IDs

This commit is contained in:
Claudio Ortolina
2024-11-12 10:21:54 +00:00
parent 97c7be7b0c
commit a0947b07f3
2 changed files with 19 additions and 0 deletions
+12
View File
@@ -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
+7
View File
@@ -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()