diff --git a/lib/last_fm/artist.ex b/lib/last_fm/artist.ex index 7edd2a63..2f815209 100644 --- a/lib/last_fm/artist.ex +++ b/lib/last_fm/artist.ex @@ -13,7 +13,7 @@ defmodule LastFm.Artist do %__MODULE__{ musicbrainz_id: api_response["mbid"], name: api_response["name"], - bio: api_response["bio"]["content"], + bio: api_response["bio"]["content"] || "", image: get_image(api_response), play_count: get_play_count(api_response) } diff --git a/lib/music_library_web/live/artist_live/show.ex b/lib/music_library_web/live/artist_live/show.ex index 62390f97..8977c249 100644 --- a/lib/music_library_web/live/artist_live/show.ex +++ b/lib/music_library_web/live/artist_live/show.ex @@ -50,7 +50,14 @@ defmodule MusicLibraryWeb.ArtistLive.Show do } end - defp render_bio(nil), do: gettext("Biography not available") + defp bio_available?(artist_info_result) do + artist_info_result.ok? && artist_info_result.result && artist_info_result.result.bio !== "" + end + + defp played?(artist_info_result) do + artist_info_result.ok? && artist_info_result.result && + artist_info_result.result.play_count > 0 + end # Bios start with text, then a link to read more on Last.fm, followed by a license text. # We split the bio at the read more link in order to render the license separately. diff --git a/lib/music_library_web/live/artist_live/show.html.heex b/lib/music_library_web/live/artist_live/show.html.heex index a2029dc7..1d8d68ed 100644 --- a/lib/music_library_web/live/artist_live/show.html.heex +++ b/lib/music_library_web/live/artist_live/show.html.heex @@ -1,7 +1,7 @@

{@artist.name} - 0}> + {gettext("Number of scrobbles")} @@ -18,13 +18,16 @@

{gettext("Biography")} - {render_bio(artist_info.bio)} + {render_bio(@artist_info.result.bio)}
-
+
{gettext("Biography not available")}
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index d0312729..f7ce2ae4 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -51,7 +51,7 @@ msgid "Choose a value" msgstr "" #: lib/music_library_web/components/layouts/app.html.heex:13 -#: lib/music_library_web/live/artist_live/show.html.heex:33 +#: lib/music_library_web/live/artist_live/show.html.heex:36 #: lib/music_library_web/live/collection_live/index.ex:77 #: lib/music_library_web/live/collection_live/show.ex:102 #: lib/music_library_web/live/collection_live/show.ex:119 @@ -328,7 +328,7 @@ msgid "Welcome to your Music Library" msgstr "" #: lib/music_library_web/components/layouts/app.html.heex:19 -#: lib/music_library_web/live/artist_live/show.html.heex:71 +#: lib/music_library_web/live/artist_live/show.html.heex:74 #: lib/music_library_web/live/wishlist_live/index.ex:75 #: lib/music_library_web/live/wishlist_live/show.ex:102 #, elixir-autogen, elixir-format @@ -477,14 +477,13 @@ msgstr "" msgid "Dev dashboard" msgstr "" -#: lib/music_library_web/live/artist_live/show.ex:53 -#: lib/music_library_web/live/artist_live/show.html.heex:28 +#: lib/music_library_web/live/artist_live/show.html.heex:31 #, elixir-autogen, elixir-format msgid "Biography not available" msgstr "" -#: lib/music_library_web/live/artist_live/show.html.heex:51 -#: lib/music_library_web/live/artist_live/show.html.heex:89 +#: lib/music_library_web/live/artist_live/show.html.heex:54 +#: lib/music_library_web/live/artist_live/show.html.heex:92 #, elixir-autogen, elixir-format msgid "View details" msgstr ""