diff --git a/app/api/scrobble/__init__.py b/app/api/scrobble/__init__.py index 73637c5d..b87c7864 100644 --- a/app/api/scrobble/__init__.py +++ b/app/api/scrobble/__init__.py @@ -223,6 +223,9 @@ def get_top_artists(query: ChartItemsQuery): "help_text": get_help_text( artist["playcount"], artist["playduration"], query.order_by ), + "extra": { + "playcount": artist["playcount"], + }, } response.append(artist) @@ -327,9 +330,9 @@ def get_stats(): return { "stats": [ + top_track, last_7_days_playcount, last_7_days_playduration, total_tracks, - top_track, ] } diff --git a/app/utils/stats.py b/app/utils/stats.py index ab4af25a..13c54713 100644 --- a/app/utils/stats.py +++ b/app/utils/stats.py @@ -1,4 +1,5 @@ from collections import defaultdict +import copy from typing import Any, Callable, TypeVar, Protocol, List from app.db.userdata import ScrobbleTable from app.models.track import Track @@ -40,6 +41,7 @@ def get_albums_in_period(start_time: int, end_time: int): album_entry = AlbumStore.albummap.get(track.albumhash) if not album_entry: continue + album_entry = copy.deepcopy(album_entry) albumhash = album_entry.album.albumhash if albumhash not in albums: @@ -61,7 +63,7 @@ def get_tracks_in_period(start_time: int, end_time: int): for scrobble in scrobbles: if scrobble.trackhash not in tracks: try: - track = TrackStore.get_tracks_by_trackhashes([scrobble.trackhash])[0] + track = copy.deepcopy(TrackStore.get_tracks_by_trackhashes([scrobble.trackhash])[0]) except IndexError: continue