def reviews(self, page=1): """Get all books and reviews on user's shelves""" resp = self._client.request("/review/list.xml", { "v": 2, "id": self.gid, "page": page }) return [GoodreadsReview(r) for r in resp["reviews"]["review"]]
def per_shelf_reviews(self, page=1, per_page=200, shelf_name="read"): """Get all books and reviews on a user's particular shelf""" total = 1 all_reviews = [] while len(all_reviews) < total: resp = self._client.request( "/review/list.xml", { "v": 2, "id": self.gid, "page": page, "shelf": shelf_name, "per_page": per_page, }, ) reviews = [GoodreadsReview(r) for r in resp["reviews"]["review"]] all_reviews.extend(reviews) page += 1 total = int(resp["reviews"]["@total"]) return all_reviews
def review(self, review_id): """Get a review""" resp = self.request("/review/show.xml", {"id": review_id}) return GoodreadsReview(resp["review"])
def review(self): """Review for the owned book""" return GoodreadsReview(self._owned_book_dict["review"])
def recent_reviews(self): """Get the recent reviews from all members""" resp = self.request("/review/recent_reviews.xml", {}) return [GoodreadsReview(r) for r in resp["reviews"]["review"]]