예제 #1
0
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)
예제 #2
0
파일: logics.py 프로젝트: yaowuwu/Gaoziyi
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')
예제 #3
0
파일: logics.py 프로젝트: Ba-Gai/swiper
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
예제 #4
0
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
예제 #5
0
파일: logics.py 프로젝트: yaowuwu/Gaoziyi
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
예제 #6
0
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
예제 #7
0
파일: logics.py 프로젝트: yaowuwu/Gaoziyi
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
예제 #8
0
파일: logics.py 프로젝트: Ba-Gai/swiper
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
예제 #9
0
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()
예제 #10
0
def dislike_someone(user, sid):
    '''不喜欢某人'''
    Swiper.swiper(user.id, sid, 'dislike')
    # 如果对方超级喜欢过你,将对方从你的超级喜欢列表中删除
    rds.zrem(keys.SUPERLIKED_KEY % user.id, sid)
예제 #11
0
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)
예제 #12
0
def dislike(request):
    '''不喜欢'''
    strange_id = request.POST.get('strange_id')
    Swiper.dislike(request.user.id, strange_id)
    return render_json(None)