Where possible, link scrobbled artists to artist page

This commit is contained in:
Claudio Ortolina
2024-12-10 14:13:50 +03:00
parent 5c30a052fa
commit 9e57103842
4 changed files with 29 additions and 7 deletions
+6
View File
@@ -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>
+5 -5
View File
@@ -267,7 +267,7 @@ msgid "Something went wrong!"
msgstr ""
#: lib/music_library_web/components/layouts/app.html.heex:8
#: lib/music_library_web/live/stats_live/index.ex:39
#: lib/music_library_web/live/stats_live/index.ex:41
#, elixir-autogen, elixir-format
msgid "Stats"
msgstr ""
@@ -364,17 +364,17 @@ msgid "Scrobble activity"
msgstr ""
#: lib/music_library_web/live/record_live/import_component.ex:80
#: lib/music_library_web/live/stats_live/index.html.heex:177
#: lib/music_library_web/live/stats_live/index.html.heex:187
#, elixir-autogen, elixir-format
msgid "Choose which format to import"
msgstr ""
#: lib/music_library_web/live/stats_live/index.html.heex:145
#: lib/music_library_web/live/stats_live/index.html.heex:155
#, elixir-autogen, elixir-format
msgid "Collected"
msgstr ""
#: lib/music_library_web/live/stats_live/index.html.heex:158
#: lib/music_library_web/live/stats_live/index.html.heex:168
#, elixir-autogen, elixir-format
msgid "Wishlisted"
msgstr ""
@@ -446,7 +446,7 @@ msgstr ""
msgid "Error refreshing cover"
msgstr ""
#: lib/music_library_web/live/stats_live/index.html.heex:132
#: lib/music_library_web/live/stats_live/index.html.heex:142
#, elixir-autogen, elixir-format
msgid "No MB ID"
msgstr ""