From 93b347ad8daa82bacf958f061e7f2045f4ff712f Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 23 Nov 2024 22:57:25 +0000 Subject: [PATCH] Add badge for tracks whose albums cannot be imported Includes a small optimization that removes "" release IDs from the list of IDs checked against releases in the database. --- .../live/stats_live/index.ex | 17 ++++++------ .../live/stats_live/index.html.heex | 16 +++++++++++- priv/gettext/default.pot | 19 +++++++++----- .../live/stats_live/index_test.exs | 26 ++++++++++++++++++- 4 files changed, 61 insertions(+), 17 deletions(-) diff --git a/lib/music_library_web/live/stats_live/index.ex b/lib/music_library_web/live/stats_live/index.ex index 90a72cb2..d866a9e3 100644 --- a/lib/music_library_web/live/stats_live/index.ex +++ b/lib/music_library_web/live/stats_live/index.ex @@ -20,10 +20,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do recent_tracks = LastFm.Feed.all() - release_ids = - recent_tracks - |> Enum.map(fn t -> t.album.musicbrainz_id end) - |> Enum.uniq() + release_ids = release_ids(recent_tracks) collected_release_ids = Collection.collected_release_ids(release_ids) wishlisted_release_ids = Wishlist.wishlisted_release_ids(release_ids) @@ -83,10 +80,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do end def handle_info(%{tracks: recent_tracks}, socket) do - release_ids = - recent_tracks - |> Enum.map(fn t -> t.album.musicbrainz_id end) - |> Enum.uniq() + release_ids = release_ids(recent_tracks) collected_release_ids = Collection.collected_release_ids(release_ids) wishlisted_release_ids = Wishlist.wishlisted_release_ids(release_ids) @@ -100,6 +94,13 @@ defmodule MusicLibraryWeb.StatsLive.Index do |> stream(:recent_tracks, recent_tracks, reset: true)} end + defp release_ids(recent_tracks) do + recent_tracks + |> Enum.map(fn t -> t.album.musicbrainz_id end) + |> Enum.uniq() + |> Enum.reject(fn musicbrainz_id -> musicbrainz_id == "" end) + end + # The Tailwind build step requires all needed classes to be explicitly referenced # in the source code, and not dynamically generated. This implies that one cannot # (for example) interpolate a number in a class name. diff --git a/lib/music_library_web/live/stats_live/index.html.heex b/lib/music_library_web/live/stats_live/index.html.heex index dbde706e..7444edc8 100644 --- a/lib/music_library_web/live/stats_live/index.html.heex +++ b/lib/music_library_web/live/stats_live/index.html.heex @@ -114,6 +114,19 @@ + + <%= gettext("No MusicBrainz ID") %> +