Skip to content

add credits support for extended tags. #361

@AlexSh77

Description

@AlexSh77

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": []}
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions