Exemplo n.º 1
0
def change_likes_of_pic(pic_id, num=1):
    pic_list = Picture.objects(id=pic_id)
    if (len(pic_list) <= 0):
        current_app.logger.info('change_likes_of_pic find id=' + str(pic_id) +
                                ' cannot find the pic')
        return

    pic = pic_list[0]
    current_app.logger.info('change_likes_of_pic find id=' + str(pic_id) +
                            ' to change it num by ' + str(num) +
                            ' the original is :' + str(pic.likes))
    pic.likes = pic.likes + num
    pic.save()
Exemplo n.º 2
0
def randomly_get_pics(prefered_tags=[], num=20):
    pictures = []

    if len(prefered_tags) == 0:
        pictures = Picture.objects().aggregate(*[
            {
                '$sample': {
                    'size': num
                }
            },
        ])
    else:
        count_sum = 20
        for i in range(0, len(prefered_tags)):
            if i != len(prefered_tags) - 1:
                cnt = random.randint(0, count_sum)
            else:
                cnt = count_sum
            if cnt > 0:
                pictures.extend(Picture.objects().aggregate(*[
                    {
                        '$match': {
                            'tags': {
                                '$eq': prefered_tags[i]
                            }
                        }
                    },
                    {
                        '$sample': {
                            'size': cnt
                        }
                    },
                ]))
                count_sum -= cnt

    random.shuffle(pictures)
    return pictures
Exemplo n.º 3
0
def recommend_likes(user, num=5):
    rec_dict = select_random_user_and_likes(user)
    rec_dict = fill_dict_with_others(rec_dict)

    item_sim = calculate_similar_items(rec_dict)

    result = get_recommended_items(rec_dict, item_sim, user.username)
    result = result[:5]

    no_0_result = []
    for (r, pid) in result:
        if r > 0:
            no_0_result.append(pid)

    pics = Picture.objects(id__in=no_0_result)

    return pics