diff --git a/files/routes/static.py b/files/routes/static.py index 882d9757e..70bd9df06 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -74,14 +74,14 @@ def participation_stats(v): @app.get("/chart") @auth_required def chart(v): - file = cached_chart() + try: days = int(request.values.get('days', 0)) + except: days = 0 + file = cached_chart(days) return send_file(file) -#@cache.memoize(timeout=86400) -def cached_chart(): - days = int(request.values.get("days", 30)) - +@cache.memoize(timeout=86400) +def cached_chart(days): now = time.gmtime() midnight_this_morning = time.struct_time((now.tm_year, now.tm_mon, @@ -95,7 +95,12 @@ def cached_chart(): ) today_cutoff = calendar.timegm(midnight_this_morning) - day = 3600 * 200 + if not days: + firstsignup = g.db.query(User.created_utc).filter(User.created_utc != 0).order_by(User.created_utc).first()[0] - 86400 + nowstamp = int(time.time()) + days = int((nowstamp - firstsignup) / 86400) + + day = 3600 * days day_cutoffs = [today_cutoff - day * i for i in range(30)] day_cutoffs.insert(0, calendar.timegm(now))