From ee67e875320c74ab4b06ab136c5b5e89a9aa24d3 Mon Sep 17 00:00:00 2001 From: cwilvx Date: Sun, 13 Oct 2024 20:04:10 +0300 Subject: [PATCH] rearrange stat items --- app/api/scrobble/__init__.py | 5 ++++- app/utils/stats.py | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) 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