From 5cd27ce9393debcc73f97510dfdc567fd024eb33 Mon Sep 17 00:00:00 2001 From: "Maksim A. Boyko" Date: Sat, 25 Aug 2012 15:39:13 -0400 Subject: Backend: Add api_video_date view --- backend/views.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'backend') 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): -- cgit v1.2.3-70-g09d2