MatchingStrategy
in package
Table of Contents
Properties
- $artistQualityValidator : ArtistQualityValidator
- $logger : LoggerInterface
Methods
- __construct() : mixed
- findBestAlbumMatch() : array<string|int, mixed>|null
- Find the best album match from search results with adaptive threshold
- findBestArtistMatch() : array<string|int, mixed>|null
- findBestSongMatch() : array<string|int, mixed>|null
- albumHasCover() : bool
- analyzeSongMetadataCompleteness() : float
- calculateAlbumMatchScore() : float
- calculateArtistSimilarity() : float
- calculateDurationSimilarity() : float
- calculateMetadataCompletenessBoost() : float
- calculateSongArtistSimilarity() : float
- calculateSongMatchScore() : float
- calculateStringSimilarity() : float
- calculateTrackCompatibilityScore() : float
- calculateYearScore() : float
- extractArtistNames() : array<string|int, mixed>
- extractTrackCount() : int|null
- filterMusicReleases() : array<string|int, mixed>
- normalizeString() : string
- removeDuplicateResults() : array<string|int, mixed>
Properties
$artistQualityValidator
private
ArtistQualityValidator
$artistQualityValidator
$logger
private
LoggerInterface
$logger
Attributes
- #[LogChannel]
- $channel: \App\Modules\Logging\Channel::Metadata
Methods
__construct()
public
__construct(ArtistQualityValidator $artistQualityValidator) : mixed
Parameters
- $artistQualityValidator : ArtistQualityValidator
findBestAlbumMatch()
Find the best album match from search results with adaptive threshold
public
findBestAlbumMatch(array<string|int, mixed> $results, Album $album) : array<string|int, mixed>|null
Parameters
- $results : array<string|int, mixed>
- $album : Album
Return values
array<string|int, mixed>|nullfindBestArtistMatch()
public
findBestArtistMatch(array<string|int, mixed> $results, Artist $artist) : array<string|int, mixed>|null
Parameters
- $results : array<string|int, mixed>
- $artist : Artist
Return values
array<string|int, mixed>|nullfindBestSongMatch()
public
findBestSongMatch(array<string|int, mixed> $results, Song $song) : array<string|int, mixed>|null
Parameters
- $results : array<string|int, mixed>
- $song : Song
Return values
array<string|int, mixed>|nullalbumHasCover()
private
albumHasCover(Album $album) : bool
Parameters
- $album : Album
Return values
boolanalyzeSongMetadataCompleteness()
private
analyzeSongMetadataCompleteness(Album $album) : float
Parameters
- $album : Album
Return values
floatcalculateAlbumMatchScore()
private
calculateAlbumMatchScore(array<string|int, mixed> $result, Album $album) : float
Parameters
- $result : array<string|int, mixed>
- $album : Album
Return values
floatcalculateArtistSimilarity()
private
calculateArtistSimilarity(array<string|int, mixed> $result, Album $album) : float
Parameters
- $result : array<string|int, mixed>
- $album : Album
Return values
floatcalculateDurationSimilarity()
private
calculateDurationSimilarity(array<string|int, mixed> $result, Song $song) : float
Parameters
- $result : array<string|int, mixed>
- $song : Song
Return values
floatcalculateMetadataCompletenessBoost()
private
calculateMetadataCompletenessBoost(Album $album) : float
Parameters
- $album : Album
Return values
floatcalculateSongArtistSimilarity()
private
calculateSongArtistSimilarity(array<string|int, mixed> $result, Song $song) : float
Parameters
- $result : array<string|int, mixed>
- $song : Song
Return values
floatcalculateSongMatchScore()
private
calculateSongMatchScore(array<string|int, mixed> $result, Song $song) : float
Parameters
- $result : array<string|int, mixed>
- $song : Song
Return values
floatcalculateStringSimilarity()
private
calculateStringSimilarity(string $str1, string $str2) : float
Parameters
- $str1 : string
- $str2 : string
Return values
floatcalculateTrackCompatibilityScore()
private
calculateTrackCompatibilityScore(array<string|int, mixed> $result, Album $album) : float
Parameters
- $result : array<string|int, mixed>
- $album : Album
Return values
floatcalculateYearScore()
private
calculateYearScore(array<string|int, mixed> $result, Album $album) : float
Parameters
- $result : array<string|int, mixed>
- $album : Album
Return values
floatextractArtistNames()
private
extractArtistNames(array<string|int, mixed> $result) : array<string|int, mixed>
Parameters
- $result : array<string|int, mixed>
Return values
array<string|int, mixed>extractTrackCount()
private
extractTrackCount(array<string|int, mixed> $result) : int|null
Parameters
- $result : array<string|int, mixed>
Return values
int|nullfilterMusicReleases()
private
filterMusicReleases(array<string|int, mixed> $results, Album $album) : array<string|int, mixed>
Parameters
- $results : array<string|int, mixed>
- $album : Album
Return values
array<string|int, mixed>normalizeString()
private
normalizeString(string $string) : string
Parameters
- $string : string
Return values
stringremoveDuplicateResults()
private
removeDuplicateResults(array<string|int, mixed> $results) : array<string|int, mixed>
Parameters
- $results : array<string|int, mixed>