Bandcamp Rate Limiting (#3069)
feat(bandcamp): add rate limiting and retry logic to all API methods
- Upgrade bandcamp-async-api to 0.0.7
- Add BandcampRateLimitError import and handling throughout
- Configure ThrottlerManager with 50 req/10s rate limit and 10 retry attempts
- Add @throttle_with_retries decorator to: get_artist, get_album, get_track,
get_album_tracks, get_artist_albums, get_artist_toptracks
- Add throttler.acquire() context manager to async generator methods:
get_library_artists, get_library_albums
- Add proper BandcampRateLimitError handling converting to
ResourceTemporarilyUnavailable with backoff_time
- Remove redundant exception handlers from get_library_tracks,
get_stream_details, get_artist_toptracks (called methods handle exceptions)
- Update tests for new default_retry_after parameter