mirror of
https://github.com/navidrome/navidrome.git
synced 2025-05-30 23:29:27 +03:00
Skip calling ffmpeg
if there are no files to probe
This commit is contained in:
parent
670be29d7b
commit
3d6ce8a77f
@ -169,33 +169,39 @@ func (s *TagScanner) processChangedDir(ctx context.Context, dir string, updatedA
|
|||||||
delete(currentTracks, filePath)
|
delete(currentTracks, filePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load tracks Metadata from the folder
|
|
||||||
newTracks, err := s.loadTracks(filesToUpdate)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// If track from folder is newer than the one in DB, update/insert in DB and delete from the current tracks
|
|
||||||
log.Trace("Updating mediaFiles in DB", "dir", dir, "files", filesToUpdate, "numFiles", len(filesToUpdate))
|
|
||||||
numUpdatedTracks := 0
|
numUpdatedTracks := 0
|
||||||
numPurgedTracks := 0
|
numPurgedTracks := 0
|
||||||
for _, n := range newTracks {
|
|
||||||
err := s.ds.MediaFile(ctx).Put(&n)
|
if len(filesToUpdate) > 0 {
|
||||||
updatedArtists[n.AlbumArtistID] = true
|
// Load tracks Metadata from the folder
|
||||||
updatedAlbums[n.AlbumID] = true
|
newTracks, err := s.loadTracks(filesToUpdate)
|
||||||
numUpdatedTracks++
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If track from folder is newer than the one in DB, update/insert in DB and delete from the current tracks
|
||||||
|
log.Trace("Updating mediaFiles in DB", "dir", dir, "files", filesToUpdate, "numFiles", len(filesToUpdate))
|
||||||
|
for _, n := range newTracks {
|
||||||
|
err := s.ds.MediaFile(ctx).Put(&n)
|
||||||
|
updatedArtists[n.AlbumArtistID] = true
|
||||||
|
updatedAlbums[n.AlbumID] = true
|
||||||
|
numUpdatedTracks++
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remaining tracks from DB that are not in the folder are deleted
|
if len(currentTracks) > 0 {
|
||||||
for _, ct := range currentTracks {
|
log.Trace("Deleting dangling tracks from DB", "dir", dir, "numTracks", len(currentTracks))
|
||||||
numPurgedTracks++
|
// Remaining tracks from DB that are not in the folder are deleted
|
||||||
updatedArtists[ct.AlbumArtistID] = true
|
for _, ct := range currentTracks {
|
||||||
updatedAlbums[ct.AlbumID] = true
|
numPurgedTracks++
|
||||||
if err := s.ds.MediaFile(ctx).Delete(ct.ID); err != nil {
|
updatedArtists[ct.AlbumArtistID] = true
|
||||||
return err
|
updatedAlbums[ct.AlbumID] = true
|
||||||
|
if err := s.ds.MediaFile(ctx).Delete(ct.ID); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user