mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-06-05 22:26:40 +02:00
fix: normalize extension codec for built-in fallback, remove dead Tidal ISRC
This commit is contained in:
@@ -951,6 +951,19 @@ func isBuiltInDownloadProvider(providerID string) bool {
|
||||
}
|
||||
}
|
||||
|
||||
func normalizeQualityForBuiltIn(quality string) string {
|
||||
switch strings.ToLower(strings.TrimSpace(quality)) {
|
||||
case "alac", "hi_res_lossless", "lossless":
|
||||
return "HI_RES_LOSSLESS"
|
||||
case "atmos", "ac3", "dolby_atmos":
|
||||
return "LOSSLESS"
|
||||
case "aac", "aac-legacy":
|
||||
return "LOSSLESS"
|
||||
default:
|
||||
return quality
|
||||
}
|
||||
}
|
||||
|
||||
func normalizeBuiltInMetadataTrack(track TrackMetadata, providerID string) ExtTrackMetadata {
|
||||
deezerID := ""
|
||||
tidalID := ""
|
||||
@@ -1496,7 +1509,10 @@ func DownloadWithExtensionFallback(req DownloadRequest) (*DownloadResponse, erro
|
||||
enrichExtraMetadataByISRC("DownloadWithExtensionFallback", req.ISRC, &req.Genre, &req.Label, &req.Copyright)
|
||||
}
|
||||
|
||||
origQuality := req.Quality
|
||||
req.Quality = normalizeQualityForBuiltIn(req.Quality)
|
||||
result, err := tryBuiltInProvider(providerIDNormalized, req)
|
||||
req.Quality = origQuality
|
||||
if err == nil && result.Success {
|
||||
result.Service = providerIDNormalized
|
||||
if req.Label != "" {
|
||||
|
||||
@@ -2049,18 +2049,6 @@ func resolveTidalTrackForRequest(req DownloadRequest, downloader *TidalDownloade
|
||||
}
|
||||
}
|
||||
|
||||
if !gotTidalID && req.ISRC != "" {
|
||||
GoLog("[%s] Trying direct Tidal ISRC search: %s\n", logPrefix, req.ISRC)
|
||||
directTrack, directErr := downloader.SearchTrackByISRC(req.ISRC)
|
||||
if directErr == nil && directTrack != nil && directTrack.ID > 0 {
|
||||
trackID = directTrack.ID
|
||||
gotTidalID = true
|
||||
GoLog("[%s] Got Tidal ID %d from direct ISRC search\n", logPrefix, trackID)
|
||||
} else if directErr != nil {
|
||||
GoLog("[%s] Direct Tidal ISRC search failed: %v\n", logPrefix, directErr)
|
||||
}
|
||||
}
|
||||
|
||||
if !gotTidalID && req.ISRC != "" && req.TrackName != "" && req.ArtistName != "" {
|
||||
GoLog("[%s] Trying Tidal public metadata search with ISRC\n", logPrefix)
|
||||
searchTrack, searchErr := downloader.SearchTrackByMetadataWithISRC(
|
||||
|
||||
Reference in New Issue
Block a user