aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-19 18:09:29 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-19 18:09:29 -0400
commit7f719e53a0525a89dabd95baf341cbe837b96241 (patch)
tree9829f2ffa98c511514f90bab58d4b41c26cf7241 /MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs
parentde038ac029f5c5a8203df8e50083608ad30feb36 (diff)
cleanup images task
Diffstat (limited to 'MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs')
-rw-r--r--MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs44
1 files changed, 13 insertions, 31 deletions
diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs b/MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs
index e5f6784a4..ded2247fb 100644
--- a/MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs
+++ b/MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs
@@ -64,7 +64,12 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
/// <returns>Task.</returns>
public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
{
- await EnsureChapterImages(cancellationToken).ConfigureAwait(false);
+ var items = _libraryManager.RootFolder.RecursiveChildren.ToList();
+
+ foreach (var video in items.OfType<Video>().Where(v => v.Chapters != null))
+ {
+ await _kernel.FFMpegManager.PopulateChapterImages(video, cancellationToken, false, true).ConfigureAwait(false);
+ }
// First gather all image files
var files = GetFiles(_kernel.FFMpegManager.AudioImagesDataPath)
@@ -73,7 +78,6 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
.ToList();
// Now gather all items
- var items = _libraryManager.RootFolder.RecursiveChildren.ToList();
items.Add(_libraryManager.RootFolder);
// Determine all possible image paths
@@ -83,14 +87,14 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
var numComplete = 0;
- var tasks = files.Select(file => Task.Run(() =>
+ foreach (var file in files)
{
cancellationToken.ThrowIfCancellationRequested();
if (!pathsInUse.ContainsKey(file))
{
cancellationToken.ThrowIfCancellationRequested();
-
+
try
{
File.Delete(file);
@@ -102,34 +106,12 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
}
// Update progress
- lock (progress)
- {
- numComplete++;
- double percent = numComplete;
- percent /= files.Count;
-
- progress.Report(100 * percent);
- }
- }));
-
- await Task.WhenAll(tasks).ConfigureAwait(false);
- }
-
- /// <summary>
- /// Ensures the chapter images.
- /// </summary>
- /// <param name="cancellationToken">The cancellation token.</param>
- /// <returns>Task.</returns>
- private Task EnsureChapterImages(CancellationToken cancellationToken)
- {
- var videos = _libraryManager.RootFolder.RecursiveChildren.OfType<Video>().Where(v => v.Chapters != null).ToList();
+ numComplete++;
+ double percent = numComplete;
+ percent /= files.Count;
- var tasks = videos.Select(v => Task.Run(async () =>
- {
- await _kernel.FFMpegManager.PopulateChapterImages(v, cancellationToken, false, true);
- }));
-
- return Task.WhenAll(tasks);
+ progress.Report(100 * percent);
+ }
}
/// <summary>