Where possible, link scrobbled artists to artist page
This commit is contained in:
@@ -100,6 +100,12 @@ defmodule MusicLibrary.Records do
|
||||
Repo.one!(q)
|
||||
end
|
||||
|
||||
def get_all_artist_ids do
|
||||
q = from ar in ArtistRecord, distinct: true, select: ar.musicbrainz_id
|
||||
|
||||
Repo.all(q)
|
||||
end
|
||||
|
||||
def get_artist_records(musicbrainz_id) do
|
||||
q =
|
||||
from r in Record,
|
||||
|
||||
@@ -25,6 +25,8 @@ defmodule MusicLibraryWeb.StatsLive.Index do
|
||||
collected_release_ids = Collection.collected_release_ids(release_ids)
|
||||
wishlisted_release_ids = Wishlist.wishlisted_release_ids(release_ids)
|
||||
|
||||
artist_ids = Records.get_all_artist_ids()
|
||||
|
||||
if connected?(socket) do
|
||||
LastFm.Feed.subscribe()
|
||||
end
|
||||
@@ -44,6 +46,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do
|
||||
latest_record: latest_record,
|
||||
collected_release_ids: collected_release_ids,
|
||||
wishlisted_release_ids: wishlisted_release_ids,
|
||||
artist_ids: artist_ids,
|
||||
nav_section: :stats
|
||||
)}
|
||||
end
|
||||
@@ -59,11 +62,14 @@ defmodule MusicLibraryWeb.StatsLive.Index do
|
||||
collected_release_ids = Collection.collected_release_ids(release_ids)
|
||||
wishlisted_release_ids = Wishlist.wishlisted_release_ids(release_ids)
|
||||
|
||||
artist_ids = Records.get_all_artist_ids()
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> assign(
|
||||
collected_release_ids: collected_release_ids,
|
||||
wishlisted_release_ids: wishlisted_release_ids
|
||||
wishlisted_release_ids: wishlisted_release_ids,
|
||||
artist_ids: artist_ids
|
||||
)
|
||||
|> stream(:recent_tracks, recent_tracks, reset: true)}
|
||||
end
|
||||
|
||||
@@ -100,9 +100,19 @@
|
||||
<div class="flex min-w-0 justify-between space-x-4 items-center">
|
||||
<img class="h-12 w-12 rounded-md shadow" src={track.cover_url} alt={track.title} />
|
||||
<div>
|
||||
<p class="font-semibold text-sm block text-zinc-500 dark:text-zinc-400">
|
||||
<p
|
||||
:if={track.artist.musicbrainz_id not in @artist_ids}
|
||||
class="font-semibold text-sm block text-zinc-500 dark:text-zinc-400"
|
||||
>
|
||||
{track.artist.name}
|
||||
</p>
|
||||
<.link
|
||||
:if={track.artist.musicbrainz_id in @artist_ids}
|
||||
class="font-semibold text-sm block text-zinc-700 hover:text-zinc-500 dark:text-zinc-400 dark:hover:text-zinc-300"
|
||||
navigate={~p"/artists/#{track.artist.musicbrainz_id}"}
|
||||
>
|
||||
{track.artist.name}
|
||||
</.link>
|
||||
<p class="font-semibold text-sm md:text-base text-zinc-700 dark:text-zinc-300">
|
||||
{track.title}
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user