From 6a51251d5578e59a590953b952062dcb323901a5 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Tue, 31 Dec 2024 11:56:47 +0000 Subject: [PATCH] Consolidate hashing into Cover module --- lib/music_library/records/cover.ex | 4 ++++ lib/music_library/records/record.ex | 9 +++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/music_library/records/cover.ex b/lib/music_library/records/cover.ex index c8ecb273..b79e4d38 100644 --- a/lib/music_library/records/cover.ex +++ b/lib/music_library/records/cover.ex @@ -6,6 +6,10 @@ defmodule MusicLibrary.Records.Cover do Vix.Vips.Image.write_to_buffer(thumb, ".jpg") end + def hash(cover_data) do + :crypto.hash(:sha256, cover_data) |> Base.encode16() + end + def correct_size?(cover_data) do {:ok, image} = Vix.Vips.Image.new_from_buffer(cover_data) diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index d367554e..4dfa4fc0 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -2,7 +2,7 @@ defmodule MusicLibrary.Records.Record do use Ecto.Schema import Ecto.Changeset - alias MusicLibrary.Records.Artist + alias MusicLibrary.Records.{Artist, Cover} @formats [:cd, :vinyl, :blu_ray, :dvd, :multi] @types [:album, :ep, :live, :compilation, :single, :other] @@ -159,11 +159,9 @@ defmodule MusicLibrary.Records.Record do end def generate_cover_hash(record = %__MODULE__{cover_data: cover_data}) do - hash = :crypto.hash(:sha256, cover_data) |> Base.encode16() - record |> change() - |> put_change(:cover_hash, hash) + |> put_change(:cover_hash, Cover.hash(cover_data)) end def generate_cover_hash(changeset) do @@ -172,8 +170,7 @@ defmodule MusicLibrary.Records.Record do changeset cover_data -> - hash = :crypto.hash(:sha256, cover_data) |> Base.encode16() - put_change(changeset, :cover_hash, hash) + put_change(changeset, :cover_hash, Cover.hash(cover_data)) end end