diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/views.py | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/backend/views.py b/backend/views.py index 0d50287..89140fb 100644 --- a/backend/views.py +++ b/backend/views.py @@ -881,23 +881,24 @@ def api_video_like(request): return response try: video = SJContent.objects.get(id=request.POST['video'], content_type='video') - settings = video.settings - if 'likes' not in settings: - settings['likes'] = 0 - settings['likes'] += 1 - video.settings = settings - video.save() - autor_profile = video.user.get_profile() - autor_profile.score += 1 - autor_profile.save() - like = SJLike.objects.create(user=user, datetime=datetime.now(), content=video) + if not SJLike.objects.filter(user=user, content=video): + settings = video.settings + if 'likes' not in settings: + settings['likes'] = 0 + settings['likes'] += 1 + video.settings = settings + video.save() + autor_profile = video.user.get_profile() + autor_profile.score += 1 + autor_profile.save() + like = SJLike.objects.create(user=user, datetime=datetime.now(), content=video) except: return response_error('NO VIDEO') return response_success('LIKED\t%s' % request.POST['video']) @require_POST def api_video_unlike(request): - """ Private API + """ Unlike video. Private API """ user = request.user if not user.is_authenticated(): @@ -907,7 +908,24 @@ def api_video_unlike(request): response = check_form_fields(request, form_fields) if response: return response - return HttpResponse('Not implemented yet!\n') + try: + video = SJContent.objects.get(id=request.POST['video'], content_type='video') + likes = SJLike.objects.filter(user=user, content=video) + if likes: + settings = video.settings + if 'likes' not in settings: + settings['likes'] = 0 + autor_profile = video.user.get_profile() + for like in likes: + settings['likes'] -= 1 + autor_profile.score -= 1 + like.delete() + video.settings = settings + video.save() + autor_profile.save() + except: + return response_error('NO VIDEO') + return response_success('UNLIKED\t%s' % request.POST['video']) @require_POST def api_video_remove(request): |
