AlbumSearchService
in package
Table of Contents
Properties
- $discogsClient : DiscogsClient
- $logger : LoggerInterface
- $matchingStrategy : MatchingStrategy
- $musicBrainzClient : MusicBrainzClient
- $qualityValidator : QualityValidator
Methods
- __construct() : mixed
- searchAllSources() : array<string|int, mixed>
- Search all sources for album metadata with fallback strategy
- searchDiscogs() : array<string|int, mixed>|null
- Search Discogs for album with improved error handling
- searchFuzzy() : array<string|int, mixed>
- Search for album with fuzzy matching - returns structured results
- searchMusicBrainz() : array<string|int, mixed>|null
- Search MusicBrainz for album
- canMakeDiscogsRequest() : bool
- canMakeMusicBrainzRequest() : bool
- convertDiscogsReleaseToArray() : array<string|int, mixed>
- Convert Discogs release object to array format expected by MatchingStrategy
- convertMusicBrainzReleaseToArray() : array<string|int, mixed>
- Convert MusicBrainz release object to array format expected by MatchingStrategy
- debugMusicBrainzHealth() : array<string|int, mixed>
- Debug MusicBrainz client health
- generateAlbumTitleVariations() : array<string|int, mixed>
- Generate album title variations for fuzzy matching
- getDiscogsDetailedDataWithRetry() : Release|null
- Get Discogs detailed data with retry logic
- getMusicBrainzDetailedDataWithRetry() : Release|null
- Get MusicBrainz detailed data with retry logic
- isVariousArtistsAlbum() : bool
- Check if album is a "Various Artists" compilation
- recordDiscogsFailure() : void
- recordMusicBrainzFailure() : void
Properties
$discogsClient read-only
private
DiscogsClient
$discogsClient
$logger
private
LoggerInterface
$logger
Attributes
- #[LogChannel]
- $channel: \App\Modules\Logging\Channel::Metadata
$matchingStrategy read-only
private
MatchingStrategy
$matchingStrategy
$musicBrainzClient read-only
private
MusicBrainzClient
$musicBrainzClient
$qualityValidator read-only
private
QualityValidator
$qualityValidator
Methods
__construct()
public
__construct(MusicBrainzClient $musicBrainzClient, DiscogsClient $discogsClient, MatchingStrategy $matchingStrategy, QualityValidator $qualityValidator) : mixed
Parameters
- $musicBrainzClient : MusicBrainzClient
- $discogsClient : DiscogsClient
- $matchingStrategy : MatchingStrategy
- $qualityValidator : QualityValidator
searchAllSources()
Search all sources for album metadata with fallback strategy
public
searchAllSources(Album $album) : array<string|int, mixed>
Parameters
- $album : Album
Return values
array<string|int, mixed>searchDiscogs()
Search Discogs for album with improved error handling
public
searchDiscogs(Album $album) : array<string|int, mixed>|null
Parameters
- $album : Album
Return values
array<string|int, mixed>|nullsearchFuzzy()
Search for album with fuzzy matching - returns structured results
public
searchFuzzy(Album $album) : array<string|int, mixed>
Parameters
- $album : Album
Return values
array<string|int, mixed>searchMusicBrainz()
Search MusicBrainz for album
public
searchMusicBrainz(Album $album) : array<string|int, mixed>|null
Parameters
- $album : Album
Return values
array<string|int, mixed>|nullcanMakeDiscogsRequest()
private
canMakeDiscogsRequest() : bool
Return values
boolcanMakeMusicBrainzRequest()
private
canMakeMusicBrainzRequest() : bool
Return values
boolconvertDiscogsReleaseToArray()
Convert Discogs release object to array format expected by MatchingStrategy
private
convertDiscogsReleaseToArray(Release $release) : array<string|int, mixed>
Parameters
- $release : Release
Return values
array<string|int, mixed>convertMusicBrainzReleaseToArray()
Convert MusicBrainz release object to array format expected by MatchingStrategy
private
convertMusicBrainzReleaseToArray(Release $release) : array<string|int, mixed>
Parameters
- $release : Release
Return values
array<string|int, mixed>debugMusicBrainzHealth()
Debug MusicBrainz client health
private
debugMusicBrainzHealth() : array<string|int, mixed>
Return values
array<string|int, mixed>generateAlbumTitleVariations()
Generate album title variations for fuzzy matching
private
generateAlbumTitleVariations(string $title) : array<string|int, mixed>
Parameters
- $title : string
Return values
array<string|int, mixed>getDiscogsDetailedDataWithRetry()
Get Discogs detailed data with retry logic
private
getDiscogsDetailedDataWithRetry(string $releaseId, int $albumId[, int $maxRetries = 2 ]) : Release|null
Parameters
- $releaseId : string
- $albumId : int
- $maxRetries : int = 2
Return values
Release|nullgetMusicBrainzDetailedDataWithRetry()
Get MusicBrainz detailed data with retry logic
private
getMusicBrainzDetailedDataWithRetry(string $releaseId, int $albumId) : Release|null
Parameters
- $releaseId : string
- $albumId : int
Return values
Release|nullisVariousArtistsAlbum()
Check if album is a "Various Artists" compilation
private
isVariousArtistsAlbum(Album $album) : bool
Parameters
- $album : Album
Return values
boolrecordDiscogsFailure()
private
recordDiscogsFailure() : void
recordMusicBrainzFailure()
private
recordMusicBrainzFailure() : void