-
Notifications
You must be signed in to change notification settings - Fork 122
Open
Description
add credits support for extended tags.
In my project I did this:
album.py
...
def review(self) -> str:
"""Retrieve the album review.
:return: A :class:`str` containing the album review, with wimp links
:raises: :class:`requests.HTTPError` if there isn't a review yet
"""
review = self.request.request("GET", "albums/%s/review" % self.id).json()[
"text"
]
assert isinstance(review, str)
return review
def credits(self):
# Get album credits with pagination
try:
base_params = {
'countryCode': self.session.country_code,
'limit': 100
}
all_items = []
offset = 0
total_items = None
while total_items is None or offset < total_items:
params = {**base_params, 'offset': offset}
response = self.request.request("GET", f"albums/{self.id}/items/credits", params=params)
data = response.json()
if 'items' in data:
all_items.extend(data['items'])
total_items = data.get('totalNumberOfItems', 0)
returned_items = len(data.get('items', []))
offset += returned_items
if returned_items == 0 or offset >= total_items:
break
return {
"limit": base_params['limit'],
"offset": 0,
"totalNumberOfItems": len(all_items),
"items": all_items
}
except ObjectNotFound:
return {"limit": 0, "offset": 0, "totalNumberOfItems": 0, "items": []}
except TooManyRequests:
return {"limit": 0, "offset": 0, "totalNumberOfItems": 0, "items": []}
except Exception as e:
# Log the error if necessary
# self.fn_logger.error(f"Error getting album credits: {e}")
return {"limit": 0, "offset": 0, "totalNumberOfItems": 0, "items": []}
...
tehkillerbee and nyabinary
Metadata
Metadata
Assignees
Labels
No labels