ArtistSearchService
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 artist metadata with fallback strategy
- searchDiscogs() : array<string|int, mixed>|null
- Search Discogs for artist with improved error handling
- searchFuzzy() : array<string|int, mixed>
- Search for artist with fuzzy matching - returns structured results
- searchMusicBrainz() : array<string|int, mixed>|null
- Search MusicBrainz for artist
- canMakeDiscogsRequest() : bool
- canMakeMusicBrainzRequest() : bool
- convertDiscogsArtistToArray() : array<string|int, mixed>
- Convert Discogs artist object to array format expected by MatchingStrategy
- convertMusicBrainzArtistToArray() : array<string|int, mixed>
- Convert MusicBrainz artist object to array format expected by MatchingStrategy
- generateArtistNameVariations() : array<string|int, mixed>
- Generate artist name variations for fuzzy matching
- getDiscogsDetailedDataWithRetry() : mixed
- Get Discogs detailed data with retry logic
- getMusicBrainzDetailedDataWithRetry() : Artist|null
- Get MusicBrainz detailed data with retry logic
- isVariousArtist() : bool
- Check if artist is a "Various Artists" type
- 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 artist metadata with fallback strategy
public
searchAllSources(Artist $artist) : array<string|int, mixed>
Parameters
- $artist : Artist
Return values
array<string|int, mixed>searchDiscogs()
Search Discogs for artist with improved error handling
public
searchDiscogs(Artist $artist) : array<string|int, mixed>|null
Parameters
- $artist : Artist
Return values
array<string|int, mixed>|nullsearchFuzzy()
Search for artist with fuzzy matching - returns structured results
public
searchFuzzy(Artist $artist) : array<string|int, mixed>
Parameters
- $artist : Artist
Return values
array<string|int, mixed>searchMusicBrainz()
Search MusicBrainz for artist
public
searchMusicBrainz(Artist $artist) : array<string|int, mixed>|null
Parameters
- $artist : Artist
Return values
array<string|int, mixed>|nullcanMakeDiscogsRequest()
private
canMakeDiscogsRequest() : bool
Return values
boolcanMakeMusicBrainzRequest()
private
canMakeMusicBrainzRequest() : bool
Return values
boolconvertDiscogsArtistToArray()
Convert Discogs artist object to array format expected by MatchingStrategy
private
convertDiscogsArtistToArray(mixed $artist) : array<string|int, mixed>
Parameters
- $artist : mixed
Return values
array<string|int, mixed>convertMusicBrainzArtistToArray()
Convert MusicBrainz artist object to array format expected by MatchingStrategy
private
convertMusicBrainzArtistToArray(mixed $artist) : array<string|int, mixed>
Parameters
- $artist : mixed
Return values
array<string|int, mixed>generateArtistNameVariations()
Generate artist name variations for fuzzy matching
private
generateArtistNameVariations(string $name) : array<string|int, mixed>
Parameters
- $name : string
Return values
array<string|int, mixed>getDiscogsDetailedDataWithRetry()
Get Discogs detailed data with retry logic
private
getDiscogsDetailedDataWithRetry(string $artistId, int $localArtistId) : mixed
Parameters
- $artistId : string
- $localArtistId : int
getMusicBrainzDetailedDataWithRetry()
Get MusicBrainz detailed data with retry logic
private
getMusicBrainzDetailedDataWithRetry(string $artistId, int $localArtistId) : Artist|null
Parameters
- $artistId : string
- $localArtistId : int
Return values
Artist|nullisVariousArtist()
Check if artist is a "Various Artists" type
private
isVariousArtist(Artist $artist) : bool
Parameters
- $artist : Artist
Return values
boolrecordDiscogsFailure()
private
recordDiscogsFailure() : void
recordMusicBrainzFailure()
private
recordMusicBrainzFailure() : void