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.
This commit is contained in:
Claudio Ortolina
2024-11-23 22:57:25 +00:00
parent f157fbadee
commit 93b347ad8d
4 changed files with 61 additions and 17 deletions
@@ -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.