Show country flag for artist

This commit is contained in:
Claudio Ortolina
2025-04-29 09:58:06 +01:00
parent 91a00fab94
commit f1dd45e438
10 changed files with 79 additions and 7 deletions
+8 -6
View File
@@ -51,24 +51,20 @@ defmodule MusicLibrary.Artists do
if discogs_id = MusicBrainz.Artist.get_discogs_id(musicbrainz_artist) do
case Discogs.get_artist(discogs_id) do
{:ok, discogs_artist} ->
%ArtistInfo{}
|> ArtistInfo.changeset(%{
create_artist_info(%{
id: musicbrainz_artist.id,
musicbrainz_data: musicbrainz_artist.musicbrainz_data,
discogs_data: discogs_artist
})
|> Repo.insert(on_conflict: {:replace, [:musicbrainz_data, :discogs_data]})
error ->
error
end
else
%ArtistInfo{}
|> ArtistInfo.changeset(%{
create_artist_info(%{
id: musicbrainz_artist.id,
musicbrainz_data: musicbrainz_artist.musicbrainz_data
})
|> Repo.insert(on_conflict: {:replace, [:musicbrainz_data, :discogs_data]})
end
error ->
@@ -76,6 +72,12 @@ defmodule MusicLibrary.Artists do
end
end
def create_artist_info(attrs) do
%ArtistInfo{}
|> ArtistInfo.changeset(attrs)
|> Repo.insert(on_conflict: {:replace, [:musicbrainz_data, :discogs_data]})
end
def get_artist_info!(artist_id) do
Repo.get!(ArtistInfo, artist_id)
end
+6
View File
@@ -28,6 +28,12 @@ defmodule MusicLibrary.Records.ArtistInfo do
|> generate_image_hash()
end
def country(artist_info) do
%{"area" => area} = artist_info.musicbrainz_data
[country_code | _rest] = area["iso-3166-1-codes"]
%{name: area["name"], code: country_code}
end
def generate_image_hash(%__MODULE__{image_data: image_data} = artist_info) do
change(artist_info, image_data_hash: Cover.hash(image_data))
end