diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs b/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs index ce939aeb4..0e0e4fbcb 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; @@ -95,7 +96,7 @@ namespace MediaBrowser.Server.Implementations.Channels public static string GetUserDistinctValue(User user) { - var channels = user.Policy.BlockedChannels + var channels = user.Policy.EnabledChannels .OrderBy(i => i) .ToList(); @@ -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); } } @@ -358,7 +374,7 @@ namespace MediaBrowser.Server.Implementations.Channels { try { - File.Delete(path); + _fileSystem.DeleteFile(path); } catch (IOException ex) { |
