Refresh top albums when refreshing scrobble activity

This commit is contained in:
Claudio Ortolina
2025-06-14 11:34:13 +03:00
parent a1f5182e90
commit 644a19f2b8
@@ -134,7 +134,6 @@ defmodule MusicLibraryWeb.StatsLive.Index do
recent_tracks = LastFm.get_scrobbled_tracks() recent_tracks = LastFm.get_scrobbled_tracks()
records_by_artists = Collection.count_records_by_artist(limit: 20) records_by_artists = Collection.count_records_by_artist(limit: 20)
records_by_genre = Collection.count_records_by_genre(limit: 20) records_by_genre = Collection.count_records_by_genre(limit: 20)
top_albums = ScrobbleActivity.get_top_albums_by_periods(10)
if connected?(socket) do if connected?(socket) do
LastFm.subscribe_to_feed() LastFm.subscribe_to_feed()
@@ -151,14 +150,14 @@ defmodule MusicLibraryWeb.StatsLive.Index do
) )
|> assign_counts() |> assign_counts()
|> assign_scrobble_activity(recent_tracks) |> assign_scrobble_activity(recent_tracks)
|> assign_top_albums()
|> assign( |> assign(
scrobble_activity_mode: :albums, scrobble_activity_mode: :albums,
latest_record: latest_record, latest_record: latest_record,
page_title: gettext("Stats"), page_title: gettext("Stats"),
current_section: :stats, current_section: :stats,
records_by_artist: records_by_artists, records_by_artist: records_by_artists,
records_by_genre: records_by_genre, records_by_genre: records_by_genre
top_albums: top_albums
)} )}
end end
@@ -212,6 +211,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do
{:noreply, {:noreply,
socket socket
|> assign_top_albums()
|> assign_scrobble_activity(recent_tracks)} |> assign_scrobble_activity(recent_tracks)}
end end
@@ -252,6 +252,12 @@ defmodule MusicLibraryWeb.StatsLive.Index do
) )
end end
defp assign_top_albums(socket) do
top_albums = ScrobbleActivity.get_top_albums_by_periods(10)
assign(socket, top_albums: top_albums)
end
defp tracked_record?(tracked_releases, release_id) do defp tracked_record?(tracked_releases, release_id) do
Enum.find_value(tracked_releases, fn tracked_release -> Enum.find_value(tracked_releases, fn tracked_release ->
if tracked_release.release_id == release_id, do: tracked_release.record_id if tracked_release.release_id == release_id, do: tracked_release.record_id