summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/views.py73
1 files changed, 51 insertions, 22 deletions
diff --git a/backend/views.py b/backend/views.py
index 96f38c4..8bb20a5 100644
--- a/backend/views.py
+++ b/backend/views.py
@@ -670,14 +670,16 @@ def api_room_join(request):
user_profile.save()
response = response_success('%d\t%s\t%d' % (user.id, user.username, user_profile.access))
response.write('%s\n' % '\t'.join([u.username for u in room.users.all()]))
+
+ texts = SJContent.objects.filter(room=room, content_type='text').order_by('-datetime').distinct()[0:ROOM_CHAT_LOG_SIZE]
videos = SJContent.objects.filter(room=room, content_type='video').order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
+
response.write(videos_response_str(videos))
if 'enqueue' in request.POST and request.POST['enqueue']:
#print 'EXPECTED TO ENQUEUE', request.POST['enqueue']
videos = SJContent.objects.filter(room=room, content_type='video', id=request.POST['enqueue'])
response.write(videos_response_str(videos))
response.write(settings_response_str('ROOM', room.settings))
- texts = SJContent.objects.filter(room=room, content_type='text').order_by('-datetime').distinct()[0:ROOM_CHAT_LOG_SIZE]
response.write(texts_response_str(texts))
return response
@@ -700,16 +702,25 @@ def api_room_read(request):
response = response_success(str(datetime_to_timestamp(datetime.now())))
response.write('%s\n' % '\t'.join([u.username for u in room.users.all()]))
last = 0
+
if 'last' in request.POST:
- last =int(request.POST['last']) - 15
- if last <= datetime_to_timestamp(room.settings_update):
+ #last =int(request.POST['last']) - 15
+ last = datetime.fromtimestamp(int(request.POST['last'])) # - 15
+ if datetime_to_timestamp(last) <= datetime_to_timestamp(room.settings_update):
response.write(settings_response_str('ROOM', room.settings))
- videos = SJContent.objects.filter(room=room, content_type='video').order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
- if videos and last <= datetime_to_timestamp(videos[0].datetime):
- response.write(videos_response_str([v for v in videos if last <= datetime_to_timestamp(v.datetime)]))
- texts = SJContent.objects.filter(room=room, content_type='text').order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
- if texts and last <= datetime_to_timestamp(texts[0].datetime):
- response.write(texts_response_str([t for t in texts if last <= datetime_to_timestamp(t.datetime)]))
+
+ texts = SJContent.objects.filter(room=room, content_type='text', datetime__gte=last).order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
+ #video_last = datetime.fromtimestamp(max(datetime_to_timestamp(last), datetime_to_timestamp(texts[ROOM_CHAT_LOG_SIZE-1].datetime)))
+ videos = SJContent.objects.filter(room=room, content_type='video', datetime__gte=last).order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
+ response.write(videos_response_str(videos))
+ response.write(texts_response_str(texts))
+
+ #videos = SJContent.objects.filter(room=room, content_type='video').order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
+ #if videos and last <= datetime_to_timestamp(videos[0].datetime):
+ # response.write(videos_response_str([v for v in videos if last <= datetime_to_timestamp(v.datetime)]))
+ #texts = SJContent.objects.filter(room=room, content_type='text').order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
+ #if texts and last <= datetime_to_timestamp(texts[0].datetime):
+ # response.write(texts_response_str([t for t in texts if last <= datetime_to_timestamp(t.datetime)]))
return response
@require_POST
@@ -732,29 +743,47 @@ def api_room_poll(request):
lastseentime = lastseen_datetime()
if user not in room.users.all():
room.users.add(user)
- room.save()
+ #room.save()
+ lastseen_likes = user_profile.lastseen_chat
+
user_profile.lastseen_chat = nowtime
+ if 'cam' in request.POST and request.POST['cam'] == "true":
+ user_profile.lastseen_webcam = nowtime
+ else:
+ user_profile.lastseen_webcam = datetime.fromtimestamp(0) # never
user_profile.save()
+
room.users.filter(sjuserprofile__lastseen_chat__lt=lastseentime).delete()
room.save()
- if 'cam' in request.POST and request.POST['cam']:
- user_profile.lastseen_webcam = nowtime
- user_profile.save()
+
response = response_success(str(datetime_to_timestamp(nowtime)))
response.write('%s\n' % '\t'.join([u.username for u in room.users.all()]))
+
last = 0
if 'last' in request.POST:
- last =int(request.POST['last']) - 15
- if last <= datetime_to_timestamp(room.settings_update):
+ last = datetime.fromtimestamp(int(request.POST['last'])) # - 15
+ if datetime_to_timestamp(last) <= datetime_to_timestamp(room.settings_update):
response.write(settings_response_str('ROOM', room.settings))
- videos = SJContent.objects.filter(room=room, content_type='video').order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
- if videos and last <= datetime_to_timestamp(videos[0].datetime):
- response.write(videos_response_str([v for v in videos if last <= datetime_to_timestamp(v.datetime)]))
- texts = SJContent.objects.filter(room=room, content_type='text').order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
- if texts and last <= datetime_to_timestamp(texts[0].datetime):
- response.write(texts_response_str([t for t in texts if last <= datetime_to_timestamp(t.datetime)]))
- likes = SJLike.objects.filter(content__content_type='video', content__user=user)[0:ROOM_CHAT_LOG_SIZE]
+
+ videos = []
+ texts = SJContent.objects.filter(room=room, content_type='text', datetime__gte=last).order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
+ if texts:
+ #video_last = datetime.fromtimestamp(max(datetime_to_timestamp(last), datetime_to_timestamp(texts[ROOM_CHAT_LOG_SIZE-1].datetime)))
+ videos = SJContent.objects.filter(room=room, content_type='video', datetime__gte=last).order_by('-datetime')[0:ROOM_CHAT_LOG_SIZE]
+
+ #if videos and last <= datetime_to_timestamp(videos[0].datetime):
+ # response.write(videos_response_str([v for v in videos if last <= datetime_to_timestamp(v.datetime)]))
+ if videos:
+ response.write(videos_response_str(videos))
+
+ #if texts and last <= datetime_to_timestamp(texts[0].datetime):
+ # response.write(texts_response_str([t for t in texts if last <= datetime_to_timestamp(t.datetime)]))
+ if texts:
+ response.write(texts_response_str(texts))
+
+ likes = SJLike.objects.filter(content__content_type='video', content__user=user, datetime__gte=lastseen_likes)[0:ROOM_CHAT_LOG_SIZE]
response.write(likes_response_str(likes))
+
user_webcams = room.users.filter(sjuserprofile__lastseen_webcam__gt=lastseentime)
response.write('CAM\t%d\n' % user_webcams.count())
return response