diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs b/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs index ce939aeb4..7179395b4 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs +++ b/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs @@ -7,6 +7,7 @@ using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Channels; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Dto; @@ -208,16 +209,6 @@ namespace MediaBrowser.Server.Implementations.Channels CancellationToken cancellationToken, string path) { - var limit = GetDownloadLimit(channelOptions); - - if (limit.HasValue) - { - if (IsSizeLimitReached(path, limit.Value)) - { - return; - } - } - var itemId = item.Id.ToString("N"); var sources = await _manager.GetChannelItemMediaSources(itemId, false, cancellationToken) .ConfigureAwait(false); @@ -230,6 +221,16 @@ namespace MediaBrowser.Server.Implementations.Channels return; } + var limit = GetDownloadLimit(channelOptions); + + if (limit.HasValue) + { + if (IsSizeLimitReached(path, limit.Value)) + { + return; + } + } + var channelItem = (IChannelMediaItem)item; var destination = Path.Combine(path, channelItem.ChannelId, itemId); @@ -254,10 +255,25 @@ namespace MediaBrowser.Server.Implementations.Channels if (item != null) { + var forceSave = false; + // Get the version from the database - item = _libraryManager.GetItemById(item.Id) ?? item; + var dbItem = _libraryManager.GetItemById(item.Id); + + if (dbItem == null) + { + forceSave = true; + } + else + { + item = dbItem; + } + + await item.RefreshMetadata(new MetadataRefreshOptions + { + ForceSave = forceSave - await item.RefreshMetadata(cancellationToken).ConfigureAwait(false); + }, cancellationToken).ConfigureAwait(false); } } |
