Fix charts to do rolling day counts
This commit is contained in:
@ -95,6 +95,8 @@ def live_charts(
|
||||
now = now_user_timezone(user.profile)
|
||||
tzinfo = now.tzinfo
|
||||
|
||||
seven_days_ago = now - timedelta(days=7)
|
||||
thirty_days_ago = now - timedelta(days=30)
|
||||
start_of_today = datetime.combine(now, datetime.min.time(), tzinfo)
|
||||
start_day_of_week = now - timedelta(days=now.today().isoweekday() % 7)
|
||||
start_day_of_month = now.replace(day=1)
|
||||
@ -105,6 +107,8 @@ def live_charts(
|
||||
period_queries = {
|
||||
"today": {"scrobble__timestamp__gte": start_of_today},
|
||||
"week": {"scrobble__timestamp__gte": start_day_of_week},
|
||||
"last7": {"scrobble__timestamp__gte": seven_days_ago},
|
||||
"last30": {"scrobble__timestamp__gte": thirty_days_ago},
|
||||
"month": {"scrobble__timestamp__gte": start_day_of_month},
|
||||
"year": {"scrobble__timestamp__gte": start_day_of_year},
|
||||
"all": {},
|
||||
|
||||
@ -102,10 +102,17 @@ class RecentScrobbleList(ListView):
|
||||
limit = 14
|
||||
artist = {"user": user, "media_type": "Artist", "limit": limit}
|
||||
# This is weird. They don't display properly as QuerySets, so we cast to lists
|
||||
data["chart_keys"] = {
|
||||
"today": "Today",
|
||||
"last7": "Last 7 days",
|
||||
"last30": "Last 30 days",
|
||||
"year": "This year",
|
||||
"all": "All time",
|
||||
}
|
||||
data["current_artist_charts"] = {
|
||||
"today": list(live_charts(**artist, chart_period="today")),
|
||||
"week": list(live_charts(**artist, chart_period="week")),
|
||||
"month": list(live_charts(**artist, chart_period="month")),
|
||||
"last7": list(live_charts(**artist, chart_period="last7")),
|
||||
"last30": list(live_charts(**artist, chart_period="last30")),
|
||||
"year": list(live_charts(**artist, chart_period="year")),
|
||||
"all": list(live_charts(**artist)),
|
||||
}
|
||||
@ -113,8 +120,8 @@ class RecentScrobbleList(ListView):
|
||||
track = {"user": user, "media_type": "Track", "limit": limit}
|
||||
data["current_track_charts"] = {
|
||||
"today": list(live_charts(**track, chart_period="today")),
|
||||
"week": list(live_charts(**track, chart_period="week")),
|
||||
"month": list(live_charts(**track, chart_period="month")),
|
||||
"last7": list(live_charts(**track, chart_period="last7")),
|
||||
"last30": list(live_charts(**track, chart_period="last30")),
|
||||
"year": list(live_charts(**track, chart_period="year")),
|
||||
"all": list(live_charts(**track)),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user