def like(request): '''喜欢''' strange_id = request.POST.get('strange_id') Swiper.like(request.user.id, strange_id) Friends.make_friend(request.user.id, strange_id) return render_json(None)
def dislike_someone(uid, sid): '''不喜欢左滑了某人''' if not sid or uid == sid: raise err.SidErr('SID 错误') Swiper.swipe(uid, sid, 'dislike') record_swipe_to_rds(uid, sid, 'dislike')
def superlike_someone(user, sid): # 添加滑动记录 Swiper.swipe(user.id, sid, 'superlike') # 检查对方是否喜欢过自己,如果互相喜欢就配对成好友 if Swiper.is_like(sid, user.id): Friend.make_friend(user.id, sid) return True else: return False
def like_someone(user, sid): '''喜欢某人''' # 添加滑动记录,由于滑动方式多样,对滑动进行封装 Swiper.swiper(user.id, sid, 'like') # 检查对方是否喜欢自己(对方喜欢自己,需要注意先后) if Swiper.is_liked(sid, user.id): # 如果对方喜欢自己,则匹配成好友 Friend.make_friends(user.id, sid) return True else: return False
def like_someone(uid, sid): '''喜欢右滑了某人''' if not sid or uid == sid: raise err.SidErr('SID 错误') Swiper.swipe(uid, sid, 'like') record_swipe_to_rds(uid, sid, 'like') # 检查对方是否喜欢过自己,如果是则匹配成好友 if Swiper.is_liked(sid, uid): Friend.make_friends(uid, sid) return True else: return False
def superlike_someone(user, sid): '''超级喜欢 自己超级喜欢过对方,则一定会出现在对方的推荐列表中 ''' # 使用有序集合存储[注意与列表,集合之间的区别] # 将自己的ID写入对方的优先推荐队列 Swiper.swiper(user.id, sid, 'superlike') rds.zadd(keys.SUPERLIKED_KEY % sid, user.id, time.time()) # 检查对方是否喜欢自己(对方喜欢自己,需要注意先后) if Swiper.is_liked(sid, user.id): # 如果对方超级喜欢自己,则匹配成好友 Friend.make_friends(user.id, sid) rds.zrem(keys.SUPERLIKED_KEY % user.id, sid) return True else: return False
def superlike_someone(uid, sid): '''超级喜欢上滑了某人''' if not sid or uid == sid: raise err.SidErr('SID 错误') Swiper.swipe(uid, sid, 'superlike') record_swipe_to_rds(uid, sid, 'superlike') # 检查对方是否喜欢过自己,如果是则匹配成好友 is_liked = Swiper.is_liked(sid, uid) if is_liked is True: Friend.make_friends(uid, sid) return True elif is_liked is None: other_first_q = keys.FIRST_RCMD_Q % sid rds.rpush(other_first_q, uid) # 将 UID 添加到对方的优先推荐队列 return False else: return False
def rcmd(user): today = datetime.date.today() max_birthday = today - datetime.timedelta( user.profile.min_dating_age * 365) min_birthday = today - datetime.timedelta( user.profile.max_dating_age * 365) swipe_ids = Swiper.swipe_uid_list(user.id) users = User.objects.filter( sex=user.profile.dating_sex, location=user.profile.dating_location, birthday__lte=max_birthday, birthday__gte=min_birthday, ).exclude(id__in=swipe_ids)[:20] # 排除掉id在已经滑过id的用户,一次只拿20个用户 return users
def dislike(request): sid = int(request.POST.get('sid')) # 添加滑动记录 Swiper.swipe(request.user.id, sid, 'dislike') inf_logger.info('%s dislike %s' % (request.user.id, sid)) return render_json()
def dislike_someone(user, sid): '''不喜欢某人''' Swiper.swiper(user.id, sid, 'dislike') # 如果对方超级喜欢过你,将对方从你的超级喜欢列表中删除 rds.zrem(keys.SUPERLIKED_KEY % user.id, sid)
def who_liked_me(request): '''查看谁喜欢我''' user_id_list = Swiper.who_liked_me(request.user.id) user = User.objects.filter(id__in=user_id_list) return render_json(user)
def dislike(request): '''不喜欢''' strange_id = request.POST.get('strange_id') Swiper.dislike(request.user.id, strange_id) return render_json(None)