diff options
| author | root <root@lalalizard.com> | 2012-12-21 13:55:14 -0500 |
|---|---|---|
| committer | root <root@lalalizard.com> | 2012-12-21 13:55:14 -0500 |
| commit | e6c5db3580b09fc7b14a0c1e3d41b419eeec9d13 (patch) | |
| tree | 34e8c8c90e380fa22e1cbcf42740dadeb471fce2 /backend | |
| parent | ae649c9d44407053d13d59cfd75c7c5ea9d59fde (diff) | |
fixes in poll and join handlers
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/views.py | 73 |
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 |
