SongSearchService
in package
Table of Contents
Properties
- $discogsClient : DiscogsClient
- $matchingStrategy : MatchingStrategy
- $musicBrainzClient : MusicBrainzClient
- $qualityValidator : QualityValidator
Methods
- __construct() : mixed
- searchAllSources() : array<string|int, mixed>
- Search all sources for song metadata
- searchDiscogs() : array<string|int, mixed>|null
- Search Discogs for song (via release context)
- searchFuzzy() : array<string|int, mixed>
- Search for song with fuzzy matching - returns structured results
- searchMusicBrainz() : array<string|int, mixed>|null
- Search MusicBrainz for song
- searchWithAlbumContext() : array<string|int, mixed>
- calculateRelevanceScore() : float
- convertMusicBrainzRecordingToArray() : array<string|int, mixed>
- Convert MusicBrainz recording to standardized array format
- extractSongArtists() : array<string|int, mixed>
- extractSongGenres() : array<string|int, mixed>
- findSongInAlbumMetadata() : array<string|int, mixed>|null
- findSongInMusicBrainzRelease() : array<string|int, mixed>|null
- findTrackInDiscogs() : array<string|int, mixed>|null
- generateSongTitleVariations() : array<string|int, mixed>
- Generate song title variations for fuzzy matching
- isRelevantMatch() : bool
Properties
$discogsClient read-only
private
DiscogsClient
$discogsClient
$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 song metadata
public
searchAllSources(Song $song) : array<string|int, mixed>
Parameters
- $song : Song
Return values
array<string|int, mixed>searchDiscogs()
Search Discogs for song (via release context)
public
searchDiscogs(Song $song) : array<string|int, mixed>|null
Parameters
- $song : Song
Return values
array<string|int, mixed>|nullsearchFuzzy()
Search for song with fuzzy matching - returns structured results
public
searchFuzzy(Song $song) : array<string|int, mixed>
Parameters
- $song : Song
Return values
array<string|int, mixed>searchMusicBrainz()
Search MusicBrainz for song
public
searchMusicBrainz(Song $song) : array<string|int, mixed>|null
Parameters
- $song : Song
Return values
array<string|int, mixed>|nullsearchWithAlbumContext()
public
searchWithAlbumContext(Song $song, array<string|int, mixed> $albumMetadata) : array<string|int, mixed>
Parameters
- $song : Song
- $albumMetadata : array<string|int, mixed>
Return values
array<string|int, mixed>calculateRelevanceScore()
private
calculateRelevanceScore(mixed $recording, Song $song) : float
Parameters
- $recording : mixed
- $song : Song
Return values
floatconvertMusicBrainzRecordingToArray()
Convert MusicBrainz recording to standardized array format
private
convertMusicBrainzRecordingToArray(mixed $recording) : array<string|int, mixed>
Parameters
- $recording : mixed
Return values
array<string|int, mixed>extractSongArtists()
private
extractSongArtists(mixed $songData, string $source) : array<string|int, mixed>
Parameters
- $songData : mixed
- $source : string
Return values
array<string|int, mixed>extractSongGenres()
private
extractSongGenres(mixed $songData, string $source) : array<string|int, mixed>
Parameters
- $songData : mixed
- $source : string
Return values
array<string|int, mixed>findSongInAlbumMetadata()
private
findSongInAlbumMetadata(Song $song, array<string|int, mixed> $albumMetadata) : array<string|int, mixed>|null
Parameters
- $song : Song
- $albumMetadata : array<string|int, mixed>
Return values
array<string|int, mixed>|nullfindSongInMusicBrainzRelease()
private
findSongInMusicBrainzRelease(array<string|int, mixed> $releaseData, Song $song) : array<string|int, mixed>|null
Parameters
- $releaseData : array<string|int, mixed>
- $song : Song
Return values
array<string|int, mixed>|nullfindTrackInDiscogs()
private
findTrackInDiscogs(array<string|int, mixed> $releaseData, Song $song) : array<string|int, mixed>|null
Parameters
- $releaseData : array<string|int, mixed>
- $song : Song
Return values
array<string|int, mixed>|nullgenerateSongTitleVariations()
Generate song title variations for fuzzy matching
private
generateSongTitleVariations(string $title) : array<string|int, mixed>
Parameters
- $title : string
Return values
array<string|int, mixed>isRelevantMatch()
private
isRelevantMatch(mixed $recording, Song $song) : bool
Parameters
- $recording : mixed
- $song : Song