update download progress reporting

This commit is contained in:
Luke Pulverenti
2017-11-03 14:11:04 -04:00
parent 7174ee66d5
commit 0d28929e17
40 changed files with 84 additions and 482 deletions

View File

@@ -1376,11 +1376,6 @@ namespace MediaBrowser.Controller.Entities
return list;
}
internal virtual bool IsValidFromResolver(BaseItem newItem)
{
return true;
}
internal virtual ItemUpdateType UpdateFromResolvedItem(BaseItem newItem)
{
var updateType = ItemUpdateType.None;

View File

@@ -265,21 +265,6 @@ namespace MediaBrowser.Controller.Entities
return changed;
}
internal override bool IsValidFromResolver(BaseItem newItem)
{
var newCollectionFolder = newItem as CollectionFolder;
if (newCollectionFolder != null)
{
if (!string.Equals(CollectionType, newCollectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
{
return false;
}
}
return base.IsValidFromResolver(newItem);
}
private ItemResolveArgs CreateResolveArgs(IDirectoryService directoryService, bool setPhysicalLocations)
{
var path = ContainingFolderPath;

View File

@@ -416,7 +416,7 @@ namespace MediaBrowser.Controller.Entities
{
BaseItem currentChild;
if (currentChildren.TryGetValue(child.Id, out currentChild) && currentChild.IsValidFromResolver(child))
if (currentChildren.TryGetValue(child.Id, out currentChild))
{
validChildren.Add(currentChild);

View File

@@ -1,6 +1,7 @@
using System.IO;
using System.Threading;
using System;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.IO
{
@@ -23,5 +24,27 @@ namespace MediaBrowser.Controller.IO
}
}
}
public static async Task CopyToAsync(Stream source, Stream destination, int bufferSize, IProgress<double> progress, long contentLength, CancellationToken cancellationToken)
{
byte[] buffer = new byte[bufferSize];
int read;
long totalRead = 0;
while ((read = source.Read(buffer, 0, buffer.Length)) != 0)
{
cancellationToken.ThrowIfCancellationRequested();
destination.Write(buffer, 0, read);
totalRead += read;
double pct = totalRead;
pct /= contentLength;
pct *= 100;
progress.Report(pct);
}
}
}
}