ML-10: break compile cycle via Artists → Collection edge

This commit is contained in:
Claudio Ortolina
2026-04-24 10:49:47 +01:00
parent 252caf31ce
commit 2e38412a84
3 changed files with 35 additions and 18 deletions
+2 -5
View File
@@ -7,7 +7,6 @@ defmodule MusicLibrary.Artists do
alias MusicLibrary.Artists.ArtistInfo
alias MusicLibrary.Assets
alias MusicLibrary.Collection
alias MusicLibrary.Records.ArtistRecord
alias MusicLibrary.{Repo, Worker}
@@ -22,12 +21,10 @@ defmodule MusicLibrary.Artists do
Repo.one!(q)
end
@spec get_similar_artists(map()) :: {:ok, [map()]} | {:error, term()}
def get_similar_artists(artist) do
@spec get_similar_artists(map(), MapSet.t(String.t())) :: {:ok, [map()]} | {:error, term()}
def get_similar_artists(artist, collected_artist_ids) do
case LastFm.get_similar_artists(artist.musicbrainz_id, artist.name) do
{:ok, artists} ->
collected_artist_ids = Collection.collected_artist_ids()
{:ok,
Enum.filter(artists, fn a ->
MapSet.member?(collected_artist_ids, a.musicbrainz_id)
@@ -4,7 +4,7 @@ defmodule MusicLibraryWeb.ArtistLive.Show do
import MusicLibraryWeb.RecordComponents,
only: [record_grid: 1, country_label: 1, artist_image: 1]
alias MusicLibrary.{Artists, Chats, ListeningStats, Records}
alias MusicLibrary.{Artists, Chats, Collection, ListeningStats, Records}
alias MusicLibrary.Artists.ArtistInfo
alias MusicLibraryWeb.ArtistLive.Biography
alias MusicLibraryWeb.ErrorMessages
@@ -659,7 +659,9 @@ defmodule MusicLibraryWeb.ArtistLive.Show do
|> assign(:country, ArtistInfo.country(artist_info))
|> maybe_assign_lastfm_artist_info(artist)
|> assign_async(:similar_artists, fn ->
with {:ok, similar_artists} <- Artists.get_similar_artists(artist) do
collected_artist_ids = Collection.collected_artist_ids()
with {:ok, similar_artists} <- Artists.get_similar_artists(artist, collected_artist_ids) do
artist_image_hashes = Artists.get_image_hashes(similar_artists)
similar_artists =