Consolidate hashing into Cover module
This commit is contained in:
@@ -6,6 +6,10 @@ defmodule MusicLibrary.Records.Cover do
|
|||||||
Vix.Vips.Image.write_to_buffer(thumb, ".jpg")
|
Vix.Vips.Image.write_to_buffer(thumb, ".jpg")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def hash(cover_data) do
|
||||||
|
:crypto.hash(:sha256, cover_data) |> Base.encode16()
|
||||||
|
end
|
||||||
|
|
||||||
def correct_size?(cover_data) do
|
def correct_size?(cover_data) do
|
||||||
{:ok, image} = Vix.Vips.Image.new_from_buffer(cover_data)
|
{:ok, image} = Vix.Vips.Image.new_from_buffer(cover_data)
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ defmodule MusicLibrary.Records.Record do
|
|||||||
use Ecto.Schema
|
use Ecto.Schema
|
||||||
import Ecto.Changeset
|
import Ecto.Changeset
|
||||||
|
|
||||||
alias MusicLibrary.Records.Artist
|
alias MusicLibrary.Records.{Artist, Cover}
|
||||||
|
|
||||||
@formats [:cd, :vinyl, :blu_ray, :dvd, :multi]
|
@formats [:cd, :vinyl, :blu_ray, :dvd, :multi]
|
||||||
@types [:album, :ep, :live, :compilation, :single, :other]
|
@types [:album, :ep, :live, :compilation, :single, :other]
|
||||||
@@ -159,11 +159,9 @@ defmodule MusicLibrary.Records.Record do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def generate_cover_hash(record = %__MODULE__{cover_data: cover_data}) do
|
def generate_cover_hash(record = %__MODULE__{cover_data: cover_data}) do
|
||||||
hash = :crypto.hash(:sha256, cover_data) |> Base.encode16()
|
|
||||||
|
|
||||||
record
|
record
|
||||||
|> change()
|
|> change()
|
||||||
|> put_change(:cover_hash, hash)
|
|> put_change(:cover_hash, Cover.hash(cover_data))
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_cover_hash(changeset) do
|
def generate_cover_hash(changeset) do
|
||||||
@@ -172,8 +170,7 @@ defmodule MusicLibrary.Records.Record do
|
|||||||
changeset
|
changeset
|
||||||
|
|
||||||
cover_data ->
|
cover_data ->
|
||||||
hash = :crypto.hash(:sha256, cover_data) |> Base.encode16()
|
put_change(changeset, :cover_hash, Cover.hash(cover_data))
|
||||||
put_change(changeset, :cover_hash, hash)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user