From a31bc9997d24a1d84b6d32a158e35bd7a6a3ecec Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Wed, 13 Nov 2024 20:48:04 +0000 Subject: [PATCH] Compute scrobbled tracks status on automatic feed update --- lib/music_library_web/live/stats_live/index.ex | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/music_library_web/live/stats_live/index.ex b/lib/music_library_web/live/stats_live/index.ex index 065c8326..dc5f3fc8 100644 --- a/lib/music_library_web/live/stats_live/index.ex +++ b/lib/music_library_web/live/stats_live/index.ex @@ -77,8 +77,22 @@ defmodule MusicLibraryWeb.StatsLive.Index do end end - def handle_info(%{tracks: tracks}, socket) do - {:noreply, stream(socket, :recent_tracks, tracks, reset: true)} + def handle_info(%{tracks: recent_tracks}, socket) do + release_ids = + recent_tracks + |> Enum.map(fn t -> t.album.musicbrainz_id end) + |> Enum.uniq() + + collected_release_ids = Collection.collected_release_ids(release_ids) + wishlisted_release_ids = Wishlist.wishlisted_release_ids(release_ids) + + {:noreply, + socket + |> assign( + collected_release_ids: collected_release_ids, + wishlisted_release_ids: wishlisted_release_ids + ) + |> stream(:recent_tracks, recent_tracks, reset: true)} end # The Tailwind build step requires all needed classes to be explicitly referenced