from datetime import datetime, timedelta from django.core.cache import caches from django.shortcuts import render def stats(request): stats_data = caches['default'].get('stats') status = 503 current_age = None current_age_text = None if stats_data: status = 200 current_age_text = age_text(stats_data['last_updated']) data = {'stats': stats_data, 'current_age': current_age, 'current_age_text': current_age_text} return render(request, 'stats/stats.html', data, status=status) def user_stats(request): stats_data = caches['default'].get('userstats_{}'.format(request.user.id)) status = 503 current_age = None current_age_text = None if stats_data: status = 200 current_age_text = age_text(stats_data['last_updated']) data = {'stats': stats_data, '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) return 'Stats were updated {:.0f} {} and {:.0f} {} ago.'.format( hours, hourstr, minutes, minutestr)