Refactor Records.Cover to Assets.Image
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
defmodule MusicLibrary.Records.Cover do
|
||||
defmodule MusicLibrary.Assets.Image do
|
||||
alias Vix.Vips.{Image, Operation}
|
||||
|
||||
fallback_path = Application.app_dir(:music_library, ["priv", "cover-not-found.jpg"])
|
||||
fallback_path = Application.app_dir(:music_library, ["priv", "image-not-found.jpg"])
|
||||
fallback_data = File.read!(fallback_path)
|
||||
|
||||
@external_resource fallback_path
|
||||
@@ -7,7 +7,7 @@ defmodule MusicLibrary.Records do
|
||||
|
||||
alias MusicLibrary.Artists
|
||||
alias MusicLibrary.Assets
|
||||
alias MusicLibrary.Records.{ArtistRecord, Cover, Record, SearchParser}
|
||||
alias MusicLibrary.Records.{ArtistRecord, Record, SearchParser}
|
||||
alias MusicLibrary.{BackgroundRepo, Repo, Worker}
|
||||
|
||||
def essential_fields do
|
||||
@@ -228,8 +228,8 @@ defmodule MusicLibrary.Records do
|
||||
|
||||
defp get_cover_art_or_default(musicbrainz_id) do
|
||||
case MusicBrainz.get_cover_art({:musicbrainz_id, musicbrainz_id}) do
|
||||
{:error, :cover_not_available} -> {:ok, Cover.fallback_data()}
|
||||
{:ok, cover_data} -> Cover.resize(cover_data)
|
||||
{:error, :cover_not_available} -> {:ok, Assets.Image.fallback_data()}
|
||||
{:ok, cover_data} -> Assets.Image.resize(cover_data)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -259,7 +259,7 @@ defmodule MusicLibrary.Records do
|
||||
|
||||
def refresh_cover(record) do
|
||||
with {:ok, cover_data} <- MusicBrainz.get_cover_art({:url, record.cover_url}),
|
||||
{:ok, thumb_data} <- Cover.resize(cover_data),
|
||||
{:ok, thumb_data} <- Assets.Image.resize(cover_data),
|
||||
{:ok, asset} <- Assets.store_image(%{content: thumb_data, format: "image/jpeg"}) do
|
||||
record
|
||||
|> Record.set_cover_hash(asset.hash)
|
||||
@@ -286,7 +286,7 @@ defmodule MusicLibrary.Records do
|
||||
end
|
||||
|
||||
def resize_cover(record) do
|
||||
with {:ok, thumb_data} <- Cover.resize(record.cover_data),
|
||||
with {:ok, thumb_data} <- Assets.Image.resize(record.cover_data),
|
||||
{:ok, asset} <- Assets.store_image(%{content: thumb_data, format: "image/jpeg"}) do
|
||||
record
|
||||
|> Record.set_cover_hash(asset.hash)
|
||||
|
||||
@@ -2,8 +2,7 @@ defmodule MusicLibraryWeb.AssetController do
|
||||
use MusicLibraryWeb, :controller
|
||||
|
||||
alias MusicLibrary.Assets
|
||||
alias MusicLibrary.Assets.{Cache, Transform}
|
||||
alias MusicLibrary.Records.Cover
|
||||
alias MusicLibrary.Assets.{Cache, Image, Transform}
|
||||
|
||||
# 1 year in seconds
|
||||
@cache_duration 60 * 60 * 24 * 365
|
||||
@@ -31,10 +30,10 @@ defmodule MusicLibraryWeb.AssetController do
|
||||
image_data =
|
||||
if transform.width do
|
||||
# TODO: find a way to cache computation, or pre-compute thumb and store it
|
||||
{:ok, data} = Cover.resize(asset.content, transform.width, format)
|
||||
{:ok, data} = Image.resize(asset.content, transform.width, format)
|
||||
data
|
||||
else
|
||||
{:ok, data} = Cover.convert(asset.content, asset.format, format)
|
||||
{:ok, data} = Image.convert(asset.content, asset.format, format)
|
||||
data
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user