diff --git a/lib/music_brainz/release.ex b/lib/music_brainz/release.ex index 81237db5..d11da676 100644 --- a/lib/music_brainz/release.ex +++ b/lib/music_brainz/release.ex @@ -21,6 +21,10 @@ defmodule MusicBrainz.Release do Enum.count(release.media) end + def medium_duration(medium) do + Enum.sum_by(medium.tracks, fn track -> track.length end) + end + def from_api_response(r) do %__MODULE__{ id: r["id"], diff --git a/lib/music_library_web/live/collection_live/show.ex b/lib/music_library_web/live/collection_live/show.ex index f5695ee9..9db9288d 100644 --- a/lib/music_library_web/live/collection_live/show.ex +++ b/lib/music_library_web/live/collection_live/show.ex @@ -173,4 +173,10 @@ defmodule MusicLibraryWeb.CollectionLive.Show do defp title_segment(:show), do: gettext("Show") defp title_segment(:edit), do: gettext("Edit") + + defp medium_duration(medium) do + medium + |> MusicBrainz.Release.medium_duration() + |> format_duration() + end end diff --git a/lib/music_library_web/live/collection_live/show.html.heex b/lib/music_library_web/live/collection_live/show.html.heex index ab83d2b0..88a62548 100644 --- a/lib/music_library_web/live/collection_live/show.html.heex +++ b/lib/music_library_web/live/collection_live/show.html.heex @@ -279,6 +279,7 @@ id="tracks-sheet" placement="right" on_open={JS.push("load_release_with_tracks")} + open >
+ {medium_duration(medium)} +