mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-19 04:34:18 +01:00
update download progress reporting
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user