Split ScrobbleActivity into focused modules

Move track CRUD/listing to ListeningStats and diagnostics
to Maintenance, leaving ScrobbleActivity for scrobbling only.

Closes #111
This commit is contained in:
Claudio Ortolina
2026-03-12 16:51:33 +00:00
parent ee4d2555ee
commit d057f29ba1
13 changed files with 710 additions and 728 deletions
+30
View File
@@ -0,0 +1,30 @@
alias MusicLibrary.ListeningStats
Logger.configure(level: :error)
timezone = MusicLibrary.default_timezone()
Benchee.run(
%{
"get_top_albums(limit: 10)" => fn -> ListeningStats.get_top_albums(limit: 10) end,
"get_top_albums_by_days(7)" =>
fn -> ListeningStats.get_top_albums_by_days(7, limit: 10, timezone: timezone) end,
"get_top_albums_by_days(30)" =>
fn -> ListeningStats.get_top_albums_by_days(30, limit: 10, timezone: timezone) end,
"get_top_albums_by_days(365)" =>
fn -> ListeningStats.get_top_albums_by_days(365, limit: 10, timezone: timezone) end,
"get_top_artists(limit: 10)" => fn -> ListeningStats.get_top_artists(limit: 10) end,
"get_top_artists_by_days(7)" =>
fn -> ListeningStats.get_top_artists_by_days(7, limit: 10, timezone: timezone) end,
"get_top_artists_by_days(30)" =>
fn -> ListeningStats.get_top_artists_by_days(30, limit: 10, timezone: timezone) end,
"get_top_artists_by_days(365)" =>
fn -> ListeningStats.get_top_artists_by_days(365, limit: 10, timezone: timezone) end,
"recent_activity(tz, 100)" => fn -> ListeningStats.recent_activity(timezone, 100) end,
"list_tracks(page: 1, page_size: 200)" =>
fn -> ListeningStats.list_tracks(%{page: 1, page_size: 200}) end
},
warmup: 2,
time: 5,
memory_time: 2
)
-30
View File
@@ -1,30 +0,0 @@
alias MusicLibrary.ScrobbleActivity
Logger.configure(level: :error)
timezone = MusicLibrary.default_timezone()
Benchee.run(
%{
"get_top_albums(limit: 10)" => fn -> ScrobbleActivity.get_top_albums(limit: 10) end,
"get_top_albums_by_days(7)" =>
fn -> ScrobbleActivity.get_top_albums_by_days(7, limit: 10, timezone: timezone) end,
"get_top_albums_by_days(30)" =>
fn -> ScrobbleActivity.get_top_albums_by_days(30, limit: 10, timezone: timezone) end,
"get_top_albums_by_days(365)" =>
fn -> ScrobbleActivity.get_top_albums_by_days(365, limit: 10, timezone: timezone) end,
"get_top_artists(limit: 10)" => fn -> ScrobbleActivity.get_top_artists(limit: 10) end,
"get_top_artists_by_days(7)" =>
fn -> ScrobbleActivity.get_top_artists_by_days(7, limit: 10, timezone: timezone) end,
"get_top_artists_by_days(30)" =>
fn -> ScrobbleActivity.get_top_artists_by_days(30, limit: 10, timezone: timezone) end,
"get_top_artists_by_days(365)" =>
fn -> ScrobbleActivity.get_top_artists_by_days(365, limit: 10, timezone: timezone) end,
"recent_activity(tz, 100)" => fn -> ScrobbleActivity.recent_activity(timezone, 100) end,
"list_tracks(page: 1, page_size: 200)" =>
fn -> ScrobbleActivity.list_tracks(%{page: 1, page_size: 200}) end
},
warmup: 2,
time: 5,
memory_time: 2
)