diff options
Diffstat (limited to 'backend/views.py')
| -rw-r--r-- | backend/views.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/backend/views.py b/backend/views.py index eff7508..244a782 100644 --- a/backend/views.py +++ b/backend/views.py @@ -9,6 +9,8 @@ from django.template import Context from django.shortcuts import render_to_response from django.views.decorators.http import require_POST from django.db.models import Q +from django.db.models import Count +from datetime import date from datetime import datetime from datetime import timedelta @@ -819,13 +821,27 @@ def api_room_video(request): @require_POST def api_video_date(request): - """ Public API + """ View top videos by date. Public API """ form_fields = ['day', 'month', 'year'] response = check_form_fields(request, form_fields) if response: return response - return HttpResponse('Not implemented yet!\n') + p = request.POST + if is_number(p['year']) and is_number(p['month']) and is_number(p['day']): + today = datetime(int(p['year']), int(p['month']), int(p['day'])) + else: + today = datetime.fromtimestamp(time.mktime(date.today().timetuple())) + tomorrow = today + timedelta(days=1) + videos = SJContent.objects.filter(content_type='video').filter(Q(datetime__gt=today) & Q(datetime__lt=tomorrow)).annotate(likes=Count('sjlike')).order_by('-likes') + backgrounds = SJContent.objects.filter(content_type='background', datetime__lt=tomorrow).order_by('-datetime') + if backgrounds: + url = backgrounds[0].settings.get('url', DEFAULT_BG) + else: + url = DEFAULT_BG + response = response_success('BG\t%s' % url) + response.write(videos_response_str(videos)) + return response @require_POST def api_video_view(request): |
