summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorMaksim A. Boyko <maksim.a.boyko@gmail.com>2012-08-25 15:39:13 -0400
committerMaksim A. Boyko <maksim.a.boyko@gmail.com>2012-08-25 15:39:13 -0400
commit5cd27ce9393debcc73f97510dfdc567fd024eb33 (patch)
tree366bc6bb08061f05490f29046680343135a0b7b2 /backend
parent1ed450fc2fb9b03f60b4509f5b2ca0728c8a2611 (diff)
Backend: Add api_video_date view
Diffstat (limited to 'backend')
-rw-r--r--backend/views.py20
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):