aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs')
-rw-r--r--Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs44
1 files changed, 27 insertions, 17 deletions
diff --git a/Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs b/Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs
index cd9e109ff..123183c07 100644
--- a/Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs
+++ b/Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs
@@ -62,30 +62,40 @@ namespace Emby.Server.Implementations.Library.Validators
continue;
}
- var movies = _libraryManager.GetItemList(new InternalItemsQuery
- {
- MediaTypes = new string[] { MediaType.Video },
- IncludeItemTypes = new[] { nameof(Movie) },
- IsVirtualItem = false,
- OrderBy = new[] { (ItemSortBy.SortName, SortOrder.Ascending) },
- Parent = library,
- Recursive = true
- });
+ var startIndex = 0;
+ var pagesize = 1000;
- foreach (var m in movies)
+ while (true)
{
- if (m is Movie movie && !string.IsNullOrEmpty(movie.CollectionName))
+ var movies = _libraryManager.GetItemList(new InternalItemsQuery
+ {
+ MediaTypes = new string[] { MediaType.Video },
+ IncludeItemTypes = new[] { nameof(Movie) },
+ IsVirtualItem = false,
+ OrderBy = new[] { (ItemSortBy.SortName, SortOrder.Ascending) },
+ Parent = library,
+ StartIndex = startIndex,
+ Limit = pagesize,
+ Recursive = true
+ });
+ startIndex += pagesize;
+
+ if (!movies.Any()) {
+ break;
+ }
+
+ foreach (var m in movies)
{
- if (collectionNameMoviesMap.TryGetValue(movie.CollectionName, out var movieList))
+ if (m is Movie movie && !string.IsNullOrEmpty(movie.CollectionName))
{
- if (!movieList.Contains(movie.Id))
+ if (collectionNameMoviesMap.TryGetValue(movie.CollectionName, out var movieList))
{
movieList.Add(movie.Id);
}
- }
- else
- {
- collectionNameMoviesMap[movie.CollectionName] = new HashSet<Guid> { movie.Id };
+ else
+ {
+ collectionNameMoviesMap[movie.CollectionName] = new HashSet<Guid> { movie.Id };
+ }
}
}
}