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") %>
+