Files
MarietjeDjango/marietje/stats/views.py
2019-01-10 21:01:15 +01:00

45 lines
1.4 KiB
Python

from datetime import datetime, timedelta
from django.core.cache import caches
from django.shortcuts import render
def stats(request):
stats = caches['default'].get('stats')
status = 503
current_age = None
current_age_text = None
if stats:
status = 200
current_age_text = age_text(stats['last_updated'])
data = {'stats': stats, 'current_age': current_age, 'current_age_text': current_age_text}
return render(request, 'stats/stats.html', data, status=status)
def user_stats(request):
stats = caches['userstats'].get('userstats_{}'.format(request.user.id))
status = 503
current_age = None
current_age_text = None
if stats:
status = 200
current_age_text = age_text(stats['last_updated'])
data = {'stats': stats, 'current_age': current_age, 'current_age_text': current_age_text}
return render(request, 'stats/user.html', data, status=status)
def age_text(last_updated):
current_age = datetime.now() - last_updated
minutes = (current_age.seconds % 3600) / 60
hours = current_age.seconds / 3600
minutestr = "minute" if minutes == 1 else "minutes"
hourstr = "hour" if hours == 1 else "hours"
if current_age < timedelta(hours=1):
return 'Stats were updated {:.0f} {} ago.'.format(minutes, minutestr)
else:
return 'Stats were updated {:.0f} {} and {:.0f} {} ago.'.format(
hours, hourstr, minutes, minutestr)