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_someone(uid, sid): '''超级喜欢某人''' # 添加滑动记录 Swiped.swiper(uid, sid, 'superlike') # 将sid从自己的优先推荐队列中删除 rds.lrem(keys.FIRST_CRMD_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(int(uid), int(sid)) return True elif liked_me == False: return False else: # 对方没有滑动过自己,需要将自己的uid添加到对方的“优先推荐队列” rds.rpush(keys.FIRST_CRMD_K % sid, uid) 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 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 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(uid, sid): '''上滑:喜欢某人''' # 添加一条滑动记录 Swiped.swipe(uid, sid, 'superlike') # 强制从自己优先队列删除 sid rds.lrem(keys.FIRST_RCMD_K % uid, 1, sid) # 为被滑动用户增加积分 rds.zincrby('HotRank', conf.SWIPE_SCORE['superlike'], sid) # 检查是否对方是否右滑或上滑过自己 if Swiped.has_liked(sid, uid): # 匹配成好友关系 Friend.make_friends(uid, sid) return True else: # 将自己的 UID 添加到对方的优先推荐队列 rds.rpush(keys.FIRST_RCMD_K % sid, uid) return False
def superlike_someone(user_id, sid): '''超级喜欢某人''' '''添加滑动记录''' Swiped.swpied(user_id, sid, 'superlike') '''在自己的优先推荐列表里删除对方id''' rds.lrem(keys.PRIOR_RCMD_LIST % user_id, value=sid) '''超级喜欢对方,给对方的增加积分''' rds.zincrby(keys.HOT_RANK, sid, config.RANK_SCORE['superlike']) '''检查对方是否上滑(superlike)或右滑(like)过你''' liked = Swiped.is_liked(user_id, sid) if liked is True: # 对方喜欢你 '''如果对方也喜欢过你,将你们匹配为好友''' Friend.make_friends(user_id, sid) return True elif liked is False: # 对方不喜欢你 return False else: # 对方没有滑过你,将你的id给到对方的优先推荐列表 rds.rpush(keys.PRIOR_RCMD_LIST % sid, user_id) 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): '''超级喜欢(上滑)''' # 添加滑动记录 Slider.slide(uid, sid, 'superlike') # 删除优先从喜欢我的人队列里面的推荐 sid rds.lrem(keys.FIRST_RCMD_Q % uid, count=0, value=sid) # 检查对方是否喜欢(右滑或上滑)过自己 liked = Slider.is_like(sid, uid) if liked is True: # 将互相喜欢的两人添加好友 Friend.make_friends(uid, sid) return True elif liked is False: return False else: # 因为是临时存储,所以用redis做 # 对方尚未滑倒过自己,将自己优先推荐给对方 rds.rpush(keys.FIRST_RCMD_Q % sid, uid) 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 superlike_someone(uid, sid): '''超级喜欢某人(上滑)''' # 添加滑动记录 Swiped.swiped(uid, sid, 'superlike') # 强制删除优先推荐队列中的 sid rds.lrem(keys.FIRST_RCMD_Q + str(f'{uid}'), count=0, value=sid) # 增加对方的滑动积分 rds.zincrby(keys.HOT_RANK, config.SWIPE_SCORE['superlike'], sid) # 检查对方是否喜欢过自己 is_liked = Swiped.is_liked(sid, uid) if is_liked is True: # 将互相喜欢的两个人添加为好友 Friend.make_friends(uid, sid) return True elif is_liked is False: return False else: # 对方尚未滑动过自己,将自己优先推荐给对方 rds.rpush(keys.FIRST_RCMD_Q + str(f'{sid}'), uid) 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