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:
@@ -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.
|
||||
|
||||
@@ -114,6 +114,19 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span
|
||||
:if={track.album.musicbrainz_id == ""}
|
||||
class={[
|
||||
"inline-flex items-center rounded-md",
|
||||
"px-2 py-1 text-xs font-medium",
|
||||
"ring-1 ring-inset",
|
||||
"bg-zinc-50 dark:bg-zinc-500/10",
|
||||
"text-zinc-700 dark:text-zinc-400",
|
||||
"ring-zinc-600/20 dark:ring-zinc-500/20"
|
||||
]}
|
||||
>
|
||||
<%= gettext("No MusicBrainz ID") %>
|
||||
</span>
|
||||
<span
|
||||
:if={track.album.musicbrainz_id in @collected_release_ids}
|
||||
class={[
|
||||
@@ -143,7 +156,8 @@
|
||||
|
||||
<div
|
||||
:if={
|
||||
track.album.musicbrainz_id not in @collected_release_ids and
|
||||
track.album.musicbrainz_id !== "" and
|
||||
track.album.musicbrainz_id not in @collected_release_ids and
|
||||
track.album.musicbrainz_id not in @wishlisted_release_ids
|
||||
}
|
||||
class="relative flex-none"
|
||||
|
||||
Reference in New Issue
Block a user