From b6f47fd986317f43351a7c53324544aab1ca4df0 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Thu, 2 Oct 2025 09:02:13 +0300 Subject: [PATCH] Move external links definition to context --- lib/music_library/artists.ex | 16 ++++++++++++++++ lib/music_library_web/live/artist_live/show.ex | 18 +----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/music_library/artists.ex b/lib/music_library/artists.ex index ffe7dc2b..4f1da4c9 100644 --- a/lib/music_library/artists.ex +++ b/lib/music_library/artists.ex @@ -163,6 +163,22 @@ defmodule MusicLibrary.Artists do |> Repo.update() end + @external_link_patterns %{ + "ProgArchives" => "progarchives.com" + } + + def external_links(artist_info) do + Enum.reduce(@external_link_patterns, [], fn {name, pattern}, acc -> + case ArtistInfo.relation_urls(artist_info, pattern) do + [] -> + acc + + [url | _rest] -> + [%{name: name, url: url} | acc] + end + end) + end + def favicon_url(external_link), do: Favicon.favicon_url(external_link.url) defp get_collected_artist_ids do diff --git a/lib/music_library_web/live/artist_live/show.ex b/lib/music_library_web/live/artist_live/show.ex index 9ee8a3e0..36bde294 100644 --- a/lib/music_library_web/live/artist_live/show.ex +++ b/lib/music_library_web/live/artist_live/show.ex @@ -205,7 +205,7 @@ defmodule MusicLibraryWeb.ArtistLive.Show do |> assign(:current_section, :artists) |> assign(:artist, artist) |> assign(:artist_info, artist_info) - |> assign(:external_links, external_links(artist_info)) + |> assign(:external_links, Artists.external_links(artist_info)) |> assign(:country, ArtistInfo.country(artist_info)) |> assign_async(:lastfm_artist_info, fn -> with {:ok, lastfm_artist_info} <- LastFm.get_artist_info(artist.musicbrainz_id, artist.name) do @@ -363,20 +363,4 @@ defmodule MusicLibraryWeb.ArtistLive.Show do attributes: [class: "mt-2 text-sm/7"] ) end - - @external_link_patterns %{ - "ProgArchives" => "progarchives.com" - } - - defp external_links(artist_info) do - Enum.reduce(@external_link_patterns, [], fn {name, pattern}, acc -> - case ArtistInfo.relation_urls(artist_info, pattern) do - [] -> - acc - - [url | _rest] -> - [%{name: name, url: url} | acc] - end - end) - end end