def like_someone(uid, sid): """ 创建喜欢的人,如果对方也喜欢,则建立好友关系 :param uid: :param sid: :return: """ if not User.objects.filter(id=sid).exists(): raise errors.SidError # 创建滑动记录 ret = Swiped.swipe(uid=uid, sid=sid, mark='like') # 只有滑动成功,才可以增加积分操作 if ret: add_swipe_score('like', sid) # 只有滑动成功,才可以进行好友匹配操作 # 如果被滑动人喜欢过我,则建立好友关系 if Swiped.is_liked(sid, uid): # Friend.make_friends(uid, sid) # TODO: 向 sid 用户发送推送通知 Friend.objects.make_friends(uid, sid) return True return False
def superlike_someone(user, sid): Swiped.like(user.id, sid) if Swiped.is_liked(sid, user.id): # 检查对方是否喜欢过自己 Friend.make_friends(user.id, sid) return True else: return False
def super_like_someone(uid, sid): '''超级喜欢(右划)某人''' # 1. 在数据库中添加滑动记录 try: Swiped.objects.create(uid=uid, sid=sid, stype='superlike') except IntegrityError: # 重复滑动时, 直接返回当前用户是否已匹配成好友 return Friend.is_friends(uid, sid) # 强制将对方从自己的优先推荐队列删除 rds.lrem(keys.FIRST_RCMD_Q % uid, 0, sid) # 2. 检查对方是否右划或者上划过自己 like_status = Swiped.is_liked(sid, uid) if like_status is True: # 3.如果双方互相喜欢的话, 匹配成好友 Friend.make_friends(uid, sid) return True elif like_status is False: return False else: # 对方未滑动过自己时, 将自己的uid 添加到对方'优先推荐'列表 key = keys.FIRST_RCMD_Q % sid # 从右边推进去 rds.rpush(key, uid) return False
def superlike(user, sid): '''喜欢一个用户''' Swiped.mark(user.id, sid, 'superlike') if Swiped.is_liked(sid, user.id): Friend.be_friends(user.id, sid) return True else: return False
def like(user, sid): '''喜欢一个用户''' Swiped.mark(user.id, sid, 'like') # 检查被滑动的用户是否喜欢过自己 if Swiped.is_liked(sid, user.id): Friend.be_friends(user.id, sid) return True else: return False
def superlike_someone(user, sid): # 添加滑动记录 uid = user.id Swiped.swipe(uid=user.id, sid=sid, flag='superlike') # 检查对方是否喜欢本user#如果喜欢 建立好友关系 if Swiped.is_liked(sid, uid): Friend.make_friends(uid, sid) # TODO:给对方 推送一条消息 通知新增了好友user 第三方平台 联系你喜欢的好友 进行提示 return True return False
def superlike_someone( user, sid, ): Swiped.mark(user.id, sid, 'superlike') if not Swiped.is_liked(sid, user.id): Friend.be_friends(user.id, sid) return True else: return False
def superlike_someone(user, sid): # 添加滑动记录 Swiped.swipe(user.id, sid, 'superlike') # 检查对方是否喜欢过自身, 如果喜欢过,建立好友关系 if Swiped.is_liked(sid, user.id): Friend.make_friends(user.id, sid) return True else: return False
def like_someone(user, sid): '''喜欢某人''' Swiped.swipe(user.id, sid, 'like') # 添加滑动记录 # 检查对方是否喜欢过自己,如果喜欢过自己匹配成好友关系 if Swiped.is_liked(sid, user.id): # 如果对方喜欢过自己匹配成好友 Friend.make_friends(user.id, sid) return True else: return False
def superlike(user, stranger_id): '''超级喜欢''' Swiped.swipe_up(user.id, stranger_id) # 检查对方是否喜欢过自己 if Swiped.is_liked(stranger_id, user.id): Friends.be_friends(user.id, stranger_id) # TODO: 向添加好友的双方实时推送消息 return True else: return False
def superlike_someone(user, sid): '''超级喜欢''' # 添加滑动记录 Swiped.swipe(user.id, sid, 'superlike') # 检查对方是否喜欢过我 if Swiped.is_liked(sid, user.id): # 如果喜欢过,建立好友关系 Friend.make_friends(user.id, sid) # TODO: 给 对方 推送一条消息,通知新增好友 return True return False
def like_someone(user, sid): '''喜欢某人''' Swiped.swipe(user.id, sid, 'like') # 添加滑动记录 # 检查对方是否喜欢过自己 if Swiped.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 super_like_someone(user, sid): """ :param user: :param sid: :return: """ Swiped.superlike(user.id, sid) # 检查对方是否喜欢自己 if Swiped.is_liked(sid, user.id): Friend.make_friend(uid1=user.id, uid2=sid) return True else: return False
def superlike_someone(user, sid): ''' 自己超级喜欢过对方,则一定会出现在对方的推荐列表里面 ''' Swiped.swipe(user.id, sid, 'superlike') rds.sadd(keys.SUPERLIKED_KEY % sid, {user.id: time.time()}) # 把自己的id写入到对方的优先推荐队列 # 检查对方是否喜欢过自己,如果喜欢过自己匹配成好友关系 if Swiped.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 like_someone(uid, sid): '''喜欢某人(右滑)''' # 添加滑动记录 Swiped.swipe(uid, sid, 'like') # 强制删除优先推荐队列中的 sid rds.lrem(keys.FIRST_RCMD_Q % uid, count=0, value=sid) # 检查对方是否喜欢(右滑或上滑)过自己 if Swiped.is_liked(sid, uid): # 将互相喜欢的两人添加成好友 Friend.make_friends(uid, sid) return True else: return False
def like_someone(uid, sid): """喜欢某人""" # 添加一条滑动记录 Swiped.swiped(uid, sid, 'like') # 将sid从优先队列中删除 rds.lrem(keys.FIRST_RCMD_K % uid, 0, sid) # 检查对方有没有右滑或者上滑过字节 if Swiped.is_liked(sid, uid): # 如果对方有喜欢过自己,匹配成好友 Friend.make_friend(uid, sid) return True else: return False
def like_someone(uid, sid): '''喜欢(右滑)了某人''' # 检查 sid 是否正确 if not sid or uid == sid: raise err.SidErr('您的 SID 错了') Swiped.swipe(uid, sid, 'like') record_swipe_to_rds(uid, sid, 'like') # 检查对方是否 喜欢 过自己,如果是,匹配成好友 if Swiped.is_liked(sid, uid): Friend.make_friends(uid, sid) return True else: return False
def super_like_someone(uid, sid): """超级喜欢""" # 添加滑动记录 Swiped.swiped(uid, sid, 'superlike') # 将sid从优先队列中删除 rds.lrem(keys.FIRST_RCMD_K % uid, 0, sid) liked_me = Swiped.is_liked(sid, uid) if liked_me: Friend.make_friend(uid, sid) return True elif not liked_me: return False else: # 对方没有滑动过自己,将自己的uid添加到对方的 “优先推荐队列” rds.rpush(keys.FIRST_RCMD_K % sid, uid) return False
def like_someone(uid, sid): '''喜欢某人''' # 添加滑动记录 Swiped.swipe(uid, sid, 'like') # 将 sid 从自己的优先推荐队列中删除 rds.lrem(keys.FIRST_RCMD_K % uid, 1, sid) # 调整对方的滑动积分 score = config.HOT_RANK_SCORE['like'] rds.zincrby(keys.HOT_RANK_K, score, sid) # 检查对方有没有右滑或者上滑过自己 if Swiped.is_liked(sid, uid): # 如果对方喜欢过自己,匹配成好友 Friend.make_friends(uid, sid) return True else: return False
def superlike_someone(uid, sid): """ 创建超级喜欢的人,如果对方也喜欢,则建立好友关系 :param uid: :param sid: :return: """ if not User.objects.filter(id=sid).exists(): raise errors.SidError # 创建滑动记录 ret = Swiped.swipe(uid=uid, sid=sid, mark='superlike') # 只有滑动成功,才可以进行好友匹配操作 # 如果被滑动人喜欢过我,则建立好友关系 if ret and Swiped.is_liked(sid, uid): Friend.make_friends(uid, sid) return ret
def like_someone(uid, sid): '''喜欢某人 (右滑)''' # 添加滑动记录 Swiped.swipe(uid, sid, 'like') # 强制删除优先推荐队列中的 sid rds.lrem(keys.FIRST_RCMD_Q % uid, count=0, value=sid) # 给被滑动者增加滑动积分 rds.zincrby(keys.HOT_RANK, config.SWIPE_SCORE['like'], sid) # 检查对方是否喜欢(右滑或上滑)过自己 if Swiped.is_liked(sid, uid): # 将互相喜欢的两人添加成好友 Friend.make_friends(uid, sid) return True else: return False
def superlike_someone(uid, sid): '''超级喜欢某人(上滑)''' # 添加滑动记录 Swiped.swipe(uid, sid, 'superlike') # 强制删除优先推荐队列中的 sid rds.lrem(keys.FIRST_RCMD_Q % uid, count=0, value=sid) # 检查对方是否喜欢(右滑或上滑)过自己 liked = Swiped.is_liked(sid, uid) if liked is True: # 将互相喜欢的两人添加成好友 Friend.make_friends(uid, sid) return True elif liked is False: return False else: # 对方尚未滑到过自己,将自己优先推荐给对方 rds.rpush(keys.FIRST_RCMD_Q % sid, uid) return False
def superlike_someone(user, sid): ''' 超级喜欢某人 自己超级喜欢过对方,则一定会出现在对方的推荐列表中 ''' Swiped.swipe(user.id, sid, 'superlike') # 添加滑动记录 # 将自己的 ID 写入到对方的优先推荐队列 rds.zadd(keys.SUPERLIKED_KEY % sid, {user.id: time.time()}) # 检查对方是否喜欢过自己 if Swiped.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): Swiped.swipe(uid, sid, stype='superlike') # 删除滑动过的推荐 rds.lrem(keys.FIRST_RCMD_K % uid, 1, sid) liked_me = Swiped.is_liked(sid, uid) # 调整用户的积分 score = config.HOT_RANK_SCORE['superlike'] rds.zincrby(keys.HOT_RANK_K, score, sid) if liked_me: Friends.make_friends(uid, sid) return True elif liked_me == False: return False else: # 对方并没有滑动过uid,将uid添加到对方的“优先推荐队列” rds.rpush(keys.FIRST_RCMD_K % sid, uid) return False
def superlike_someone(uid, sid): '''超级喜欢(上滑)了某人''' # 检查 sid 是否正确 if not sid or uid == sid: raise err.SidErr('您的 SID 错了') Swiped.swipe(uid, sid, 'superlike') record_swipe_to_rds(uid, sid, 'superlike') # 检查对方是否 喜欢 过自己,如果是,匹配成好友 is_liked = Swiped.is_liked(sid, uid) if is_liked == 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 like_someone(uid, sid): '''喜欢(右划)某人''' # 1. 在数据库中添加滑动记录 try: Swiped.objects.create(uid=uid, sid=sid, stype='like') # 前端的重复滑动: except IntegrityError: # 重复滑动时, 直接返回当前用户是否已匹配成好友 return Friend.is_friends(uid, sid) # 强制将对方从自己的优先推荐队列删除 rds.lrem(keys.FIRST_RCMD_Q % uid, 0, sid) # 2. 检查对方是否右划或者上划过自己 # 这里的uid 和 sid 需要换一下位置 # if Swiped.objects.filter(uid = sid).filter(sid = uid).filter(stype__in = ['like','superlike']): if Swiped.is_liked(sid, uid): # 3.如果双方互相喜欢的话, 匹配成好友 Friend.make_friends(uid, sid) return True else: return False
def superlike_someone(uid, sid): '''超级喜欢某人''' # 添加滑动记录 Swiped.swipe(uid, sid, 'superlike') # 将 sid 从自己的优先推荐队列中删除 rds.lrem(keys.FIRST_RCMD_K % uid, 1, sid) # 调整对方的滑动积分 score = config.HOT_RANK_SCORE['superlike'] rds.zincrby(keys.HOT_RANK_K, score, sid) # 检查对方有没有右滑或者上滑过自己 liked_me = Swiped.is_liked(sid, uid) if liked_me: # 如果对方喜欢过自己,匹配成好友 Friend.make_friends(uid, sid) return True elif liked_me == False: return False else: # 对方没有滑动过自己,需要将将自己的 uid 添加到对方的 “优先推荐队列” rds.rpush(keys.FIRST_RCMD_K % sid, uid) return False
def like_someone(uid, sid): """ 喜欢某人函数 1.Swiped表中记录喜欢某人 2.检查Swiped表中对方是否喜欢过我 3.如果喜欢匹配成好友 :param uid: :param sid: :return: True or False or None """ Swiped.swipe(uid, sid, stype='like') # 删除滑动过的推荐 rds.lrem(keys.FIRST_RCMD_K % uid, 1, sid) # 调整用户的积分 score = config.HOT_RANK_SCORE['like'] rds.zincrby(keys.HOT_RANK_K, score, sid) if Swiped.is_liked(sid, uid): Friends.make_friends(uid, sid) return True else: return False
def superlike_someone(uid, sid): '''超级喜欢某人 (上滑)''' # 添加滑动记录 Swiped.swipe(uid, sid, 'superlike') # 强制删除优先推荐队列中的 sid rds.lrem(keys.FIRST_RCMD_Q % uid, count=0, value=sid) # 给被滑动者增加滑动积分 rds.zincrby(keys.HOT_RANK, config.SWIPE_SCORE['superlike'], sid) # 检查对方是否喜欢(右滑或上滑)过自己 liked = Swiped.is_liked(sid, uid) if liked is True: # 将互相喜欢的两人添加成好友 Friend.make_friends(uid, sid) return True elif liked is False: return False else: # 对方尚未滑到过自己,把自己推荐给对方 rds.rpush(keys.FIRST_RCMD_Q % sid, uid) return False