diff options
| author | Maksim A. Boyko <maksim.a.boyko@gmail.com> | 2012-08-17 05:37:22 -0400 |
|---|---|---|
| committer | Maksim A. Boyko <maksim.a.boyko@gmail.com> | 2012-08-17 05:37:22 -0400 |
| commit | 72128ec57a147a35466e47008f90f8a7f7904e9b (patch) | |
| tree | 74a308b5d3a14f7e4180b12c742be26a57412976 | |
| parent | fc8c1894ad2189e75f0c6069f8bdd59786e88f67 (diff) | |
Backend: Add api_room_watch view
| -rw-r--r-- | backend/views.py | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/backend/views.py b/backend/views.py index 5323490..91972c9 100644 --- a/backend/views.py +++ b/backend/views.py @@ -48,14 +48,14 @@ def response_error(error, response=None): response.write('0\t%s\n' % error) return response -def response_success(response=None): +def response_success(message='OK', response=None): """ Add API OK with setup headers to response """ if not response: response = HttpResponse() headers(response) response.write(API_HEADER) - response.write('OK\n') + response.write(message + '\n') return response def check_form_fields(request, form_fields): @@ -101,6 +101,9 @@ def freeze(settings): def now_timestamp(): return int(time.mktime(time.localtime())) +def datetime_to_timestamp(dt): + return int(time.mktime(dt.timetuple())) + # # AUTH API # @@ -338,11 +341,32 @@ def api_user_settings(request): def api_room_watch(request): """ Public API """ - form_fields = ['room', 'last'] + form_fields = ['room'] response = check_form_fields(request, form_fields) if response: return response - return HttpResponse('Not implemented yet!\n') + try: + room = SJRoom.objects.get(name=request.POST['room']) + except: + return response_error('no room') + response = response_success(str(now_timestamp())) + last = 0 + if 'last' in request.POST: + last =int(request.POST['last']) - 1 + videos = SJContent.objects.filter(room=room, content_type='video').order_by('-datetime') + if videos and last <= datetime_to_timestamp(videos[0].datetime): + for v in videos: + s = v.settings + response.write('VIDEO\t') + response.write('%s\n' % '\t'.join([ + str(v.id), + str(datetime_to_timestamp(v.datetime)), + str(v.user.id), + v.user.username, + s['url'], + s['title'], + ])) + return response @require_POST def api_room_list(request): |
