Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
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
Ejemplo n.º 15
0
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
Ejemplo n.º 16
0
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
Ejemplo n.º 17
0
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
Ejemplo n.º 18
0
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
Ejemplo n.º 19
0
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
Ejemplo n.º 20
0
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
Ejemplo n.º 21
0
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
Ejemplo n.º 22
0
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
Ejemplo n.º 23
0
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
Ejemplo n.º 24
0
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
Ejemplo n.º 25
0
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
Ejemplo n.º 26
0
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
Ejemplo n.º 27
0
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
Ejemplo n.º 28
0
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
Ejemplo n.º 29
0
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