示例#1
0
def get_likes(entry_id, entry_type, owner=crawler.uid):
    param = {
        "stype":
        entry_type,
        "sourceId":
        entry_id,
        "owner":
        owner,
        "gid":
        "{entry_type}_{entry_id}".format(entry_type=entry_type,
                                         entry_id=entry_id),
        "uid":
        crawler.uid,
    }

    r = crawler.get_json(config.LIKE_URL, param)

    for like_item in r["likeList"]:
        save_user(like_item["id"], like_item["name"], like_item["headUrl"])

        like = {
            "entry_id": entry_id,
            "entry_type": entry_type,
            "uid": like_item["id"]
        }
        Like.insert(**like).on_conflict("replace").execute()

    logger.info(
        "        crawled {count} likes on {entry_type} {entry_id}".format(
            count=len(r["likeList"]), entry_type=entry_type,
            entry_id=entry_id))
    return r["likeCount"]
示例#2
0
文件: utils.py 项目: imfht/flaskapps
def get_likes(entry_id, entry_type, owner=crawler.uid):
    param = {
        "stype": entry_type,
        "sourceId": entry_id,
        "owner": owner,
        "gid": '{entry_type}_{entry_id}'.format(entry_type=entry_type, entry_id=entry_id),
        "uid": crawler.uid
    }

    r = crawler.get_json(config.LIKE_URL, param)

    for l in r['likeList']:
        save_user(l['id'], l['name'], l['headUrl'])

        like = {
            'entry_id': entry_id,
            'entry_type': entry_type,
            'uid': l['id']
        }
        Like.insert(**like).on_conflict('replace').execute()

    logger.info('        crawled {count} likes on {entry_type} {entry_id}'.format(
        count=len(r['likeList']),
        entry_type=entry_type,
        entry_id=entry_id
    ))
    return r['likeCount']
示例#3
0
def update_ratings():
    body = request.get_json()

    if 'liked_by' not in body or 'disliked_by' not in body or 'username' not in body or 'course_id' not in body:
        abort(422)

    liked_by = body['liked_by']
    disliked_by = body['disliked_by']
    username = body['username']
    course_id = body['course_id']

    rating = Rating.query.filter(Rating.user_id == username,
                                 Rating.course_id == course_id).first()
    user = User.query.get(liked_by)
    course = Course.query.get(course_id)
    if rating is None or course is None:
        abort(404)

    if len(disliked_by) == 0:
        user = User.query.get(liked_by)
        if user is None:
            abort(404)
        like = Like.query.get((rating.rating_id, liked_by))
        if like is not None:
            abort(422)
        dislike = DisLike.query.get((rating.rating_id, liked_by))
        if dislike is not None:
            dislike.delete()
        like = Like(rating_id=rating.rating_id, liked_by=liked_by)
        like.insert()

    else:
        user = User.query.get(disliked_by)
        if user is None:
            abort(404)
        dislike = DisLike.query.get((rating.rating_id, disliked_by))
        if dislike is not None:
            abort(422)
        like = Like.query.get((rating.rating_id, disliked_by))
        if like is not None:
            like.delete()
        dislike = DisLike(rating_id=rating.rating_id, disliked_by=disliked_by)
        dislike.insert()

    return jsonify({'ratings': [rating.format() for rating in course.ratings]})