Extract ListeningStats out of ScrobbleActivity

This commit is contained in:
Claudio Ortolina
2026-02-27 12:16:38 +00:00
parent 7728f4be56
commit 871f4b3554
9 changed files with 397 additions and 412 deletions
@@ -1,7 +1,7 @@
defmodule MusicLibraryWeb.CollectionLive.Show do
use MusicLibraryWeb, :live_view
import MusicLibrary.ScrobbleActivity, only: [localize_scrobbled_at: 2]
import MusicLibrary.ListeningStats, only: [localize_scrobbled_at: 2]
import MusicLibraryWeb.RecordComponents,
only: [
@@ -8,7 +8,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do
import MusicLibraryWeb.ScrobbleComponents
alias MusicLibrary.Assets.Transform
alias MusicLibrary.{Collection, Records, ScrobbleActivity, Wishlist}
alias MusicLibrary.{Collection, ListeningStats, Records, Wishlist}
alias MusicLibraryWeb.StatsLive.{TopAlbums, TopArtists}
@impl true
@@ -461,9 +461,9 @@ defmodule MusicLibraryWeb.StatsLive.Index do
%{
recent_tracks: recent_tracks,
recent_albums: recent_albums
} = ScrobbleActivity.recent_activity(socket.assigns.timezone)
} = ListeningStats.recent_activity(socket.assigns.timezone)
scrobble_count = ScrobbleActivity.scrobble_count()
scrobble_count = ListeningStats.scrobble_count()
last_updated_uts =
if rt = List.first(recent_tracks) do
@@ -2,7 +2,7 @@ defmodule MusicLibraryWeb.StatsLive.TopAlbums do
use MusicLibraryWeb, :live_component
alias MusicLibrary.Assets.Transform
alias MusicLibrary.ScrobbleActivity
alias MusicLibrary.ListeningStats
def live(assigns) do
~H"""
@@ -165,7 +165,7 @@ defmodule MusicLibraryWeb.StatsLive.TopAlbums do
:top_albums,
fn ->
top_albums =
ScrobbleActivity.get_top_albums_by_period(
ListeningStats.get_top_albums_by_period(
limit: 10,
current_time: current_time,
timezone: timezone,
@@ -3,7 +3,7 @@ defmodule MusicLibraryWeb.StatsLive.TopArtists do
import MusicLibraryWeb.RecordComponents, only: [artist_image: 1]
alias MusicLibrary.ScrobbleActivity
alias MusicLibrary.ListeningStats
def live(assigns) do
~H"""
@@ -153,7 +153,7 @@ defmodule MusicLibraryWeb.StatsLive.TopArtists do
:top_artists,
fn ->
top_artists =
ScrobbleActivity.get_top_artists_by_period(
ListeningStats.get_top_artists_by_period(
limit: 10,
current_time: current_time,
timezone: timezone,