discogs
¶
Discogs API client for music metadata retrieval.
This module provides the Discogs-specific implementation for fetching and scoring music releases from the Discogs database.
DiscogsFormat
¶
Bases: TypedDict
Type definition for Discogs format information.
DiscogsRelease
¶
Bases: TypedDict
Type definition for Discogs release from search results.
DiscogsSearchResponse
¶
Bases: TypedDict
Type definition for Discogs search API response.
DiscogsMasterRelease
¶
Bases: TypedDict
Type definition for Discogs master release response.
DiscogsClient
¶
DiscogsClient(
token,
console_logger,
error_logger,
analytics,
make_api_request_func,
*,
score_release_func,
cache_service,
scoring_config,
config,
cache_ttl_days=30
)
Bases: BaseApiClient
Discogs API client for fetching music metadata.
Initialize Discogs client.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Discogs API token |
required |
console_logger
|
Logger
|
Logger for console output |
required |
error_logger
|
Logger
|
Logger for error messages |
required |
analytics
|
Analytics
|
Analytics service for performance tracking |
required |
make_api_request_func
|
Callable[..., Awaitable[dict[str, Any] | None]]
|
Function to make API requests with rate-limiting |
required |
score_release_func
|
Callable[..., float]
|
Function to score releases for originality |
required |
cache_service
|
CacheServiceProtocol
|
Cache service for storing results |
required |
scoring_config
|
YearRetrievalConfig
|
Year retrieval configuration with scoring rules |
required |
config
|
AppConfig
|
Typed application configuration |
required |
cache_ttl_days
|
int
|
Cache TTL in days |
30
|
Source code in src/services/api/discogs.py
get_year_from_discogs
async
¶
Get year from Discogs (for backward compatibility).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
artist
|
str
|
Artist name |
required |
album
|
str
|
Album name |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Year string or None |
Source code in src/services/api/discogs.py
get_scored_releases
async
¶
Retrieve and score releases from Discogs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
artist_norm
|
str
|
Normalized artist name |
required |
album_norm
|
str
|
Normalized album name |
required |
artist_region
|
str | None
|
Artist's region for scoring |
required |
artist_orig
|
str | None
|
Original artist name (before normalization) |
None
|
album_orig
|
str | None
|
Original album name (before normalization) |
None
|
Returns:
| Type | Description |
|---|---|
list[ScoredRelease]
|
List of scored releases sorted by score |