mirror of https://github.com/lidarr/Lidarr
Fixed: Don't scan all folders on artist add
This commit is contained in:
parent
95cfa0d09a
commit
fb88017821
|
@ -34,7 +34,8 @@ namespace NzbDrone.Core.Music
|
||||||
tracks.ForEach(x => x.TrackFileId = 0);
|
tracks.ForEach(x => x.TrackFileId = 0);
|
||||||
_trackService.SetFileIds(tracks);
|
_trackService.SetFileIds(tracks);
|
||||||
|
|
||||||
_commandQueueManager.Push(new RescanFoldersCommand(null, FilterFilesType.Matched, false, null));
|
var folders = new List<string> { message.Album.Artist.Value.Path };
|
||||||
|
_commandQueueManager.Push(new RescanFoldersCommand(folders, FilterFilesType.Matched, false, null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -265,15 +265,20 @@ namespace NzbDrone.Core.Music
|
||||||
_eventAggregator.PublishEvent(new AlbumInfoRefreshedEvent(entity, newChildren, updateChildren));
|
_eventAggregator.PublishEvent(new AlbumInfoRefreshedEvent(entity, newChildren, updateChildren));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Rescan(List<int> artistIds, bool isNew, CommandTrigger trigger, bool infoUpdated)
|
private void Rescan(List<Artist> artists, bool isNew, CommandTrigger trigger, bool infoUpdated)
|
||||||
{
|
{
|
||||||
var rescanAfterRefresh = _configService.RescanAfterRefresh;
|
var rescanAfterRefresh = _configService.RescanAfterRefresh;
|
||||||
var shouldRescan = true;
|
var shouldRescan = true;
|
||||||
|
var folders = _rootFolderService.All().Select(x => x.Path).ToList();
|
||||||
|
|
||||||
if (isNew)
|
if (isNew)
|
||||||
{
|
{
|
||||||
_logger.Trace("Forcing rescan. Reason: New artist added");
|
_logger.Trace("Forcing rescan. Reason: New artist added");
|
||||||
shouldRescan = true;
|
shouldRescan = true;
|
||||||
|
|
||||||
|
// only rescan artist folders - otherwise it can be super slow for
|
||||||
|
// badly organized / partly matched libraries
|
||||||
|
folders = artists.Select(x => x.Path).ToList();
|
||||||
}
|
}
|
||||||
else if (rescanAfterRefresh == RescanAfterRefreshType.Never)
|
else if (rescanAfterRefresh == RescanAfterRefreshType.Never)
|
||||||
{
|
{
|
||||||
|
@ -295,9 +300,7 @@ namespace NzbDrone.Core.Music
|
||||||
{
|
{
|
||||||
// some metadata has updated so rescan unmatched
|
// some metadata has updated so rescan unmatched
|
||||||
// (but don't add new artists to reduce repeated searches against api)
|
// (but don't add new artists to reduce repeated searches against api)
|
||||||
var folders = _rootFolderService.All().Select(x => x.Path).ToList();
|
_commandQueueManager.Push(new RescanFoldersCommand(folders, FilterFilesType.Matched, false, artists.Select(x => x.Id).ToList()));
|
||||||
|
|
||||||
_commandQueueManager.Push(new RescanFoldersCommand(folders, FilterFilesType.Matched, false, artistIds));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,7 +321,7 @@ namespace NzbDrone.Core.Music
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rescan(artistIds, isNew, trigger, updated);
|
Rescan(artists, isNew, trigger, updated);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Execute(BulkRefreshArtistCommand message)
|
public void Execute(BulkRefreshArtistCommand message)
|
||||||
|
@ -371,7 +374,7 @@ namespace NzbDrone.Core.Music
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rescan(artistIds, isNew, trigger, updated);
|
Rescan(artists, isNew, trigger, updated);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue