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"]
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']
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]})