Don't apply fallback cover when refreshing it

So that we don't accidentally override a user-uploaded cover with the
fallback one.
This commit is contained in:
Claudio Ortolina
2024-11-21 17:57:49 +00:00
parent d09212dabb
commit 4581666282
6 changed files with 27 additions and 10 deletions
+1 -5
View File
@@ -405,10 +405,6 @@ defmodule MusicBrainz.APIImpl do
end
end
@fallback_cover File.read!(
(:code.priv_dir(:music_library) |> to_string()) <> "/cover-not-found.jpg"
)
@doc """
Uses the [cover art](https://musicbrainz.org/doc/Cover_Art_Archive/API) endpoint with the release group id to get the cover image.
"""
@@ -427,7 +423,7 @@ defmodule MusicBrainz.APIImpl do
{:error, reason} ->
Logger.error("Failed to fetch cover art for #{url}, reason: #{inspect(reason)}")
{:ok, @fallback_cover}
{:error, :cover_not_available}
end
end
+8 -1
View File
@@ -111,7 +111,7 @@ defmodule MusicLibrary.Records do
with format = Keyword.get(opts, :format, "cd"),
purchased_at = Keyword.get(opts, :purchased_at),
{:ok, release_group} <- musicbrainz().get_release_group(musicbrainz_id),
{:ok, cover_data} <- musicbrainz().get_cover_art({:musicbrainz_id, musicbrainz_id}),
{:ok, cover_data} <- get_cover_art_or_default(musicbrainz_id),
record_attrs =
build_record_attrs(release_group, %{
"cover_data" => cover_data,
@@ -124,6 +124,13 @@ defmodule MusicLibrary.Records do
end
end
defp get_cover_art_or_default(musicbrainz_id) do
case musicbrainz().get_cover_art({:musicbrainz_id, musicbrainz_id}) do
{:error, :cover_not_available} -> {:ok, Record.fallback_cover_data()}
success -> success
end
end
def refresh_cover(record) do
with {:ok, cover_data} <- musicbrainz().get_cover_art({:url, record.cover_url}) do
{:ok, thumb} = Vix.Vips.Operation.thumbnail_buffer(cover_data, 600)
+6
View File
@@ -137,6 +137,12 @@ defmodule MusicLibrary.Records.Record do
end
end
@fallback_cover_data :code.priv_dir(:music_library)
|> Path.join("/cover-not-found.jpg")
|> File.read!()
def fallback_cover_data, do: @fallback_cover_data
defp extract_included_release_group_ids(musicbrainz_data) do
musicbrainz_data
|> Map.get("relations", [])
@@ -78,7 +78,7 @@ defmodule MusicLibraryWeb.CollectionLive.Show do
socket
|> put_flash(
:error,
gettext("Error refreshing MusicBrainz data") <> "," <> inspect(reason)
gettext("Error refreshing cover") <> "," <> inspect(reason)
)}
end
end
@@ -76,7 +76,7 @@ defmodule MusicLibraryWeb.WishlistLive.Show do
socket
|> put_flash(
:error,
gettext("Error refreshing MusicBrainz data") <> "," <> inspect(reason)
gettext("Error refreshing Cover") <> "," <> inspect(reason)
)}
end
end
+10 -2
View File
@@ -398,9 +398,7 @@ msgid "Includes"
msgstr ""
#: lib/music_library_web/live/collection_live/show.ex:61
#: lib/music_library_web/live/collection_live/show.ex:81
#: lib/music_library_web/live/wishlist_live/show.ex:59
#: lib/music_library_web/live/wishlist_live/show.ex:79
#, elixir-autogen, elixir-format
msgid "Error refreshing MusicBrainz data"
msgstr ""
@@ -441,3 +439,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Refresh"
msgstr ""
#: lib/music_library_web/live/wishlist_live/show.ex:79
#, elixir-autogen, elixir-format
msgid "Error refreshing Cover"
msgstr ""
#: lib/music_library_web/live/collection_live/show.ex:81
#, elixir-autogen, elixir-format
msgid "Error refreshing cover"
msgstr ""