diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs | 44 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Channels/ChannelManager.cs | 21 |
2 files changed, 40 insertions, 25 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) { diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs index c12a1161b..37536a4ee 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs +++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs @@ -11,6 +11,7 @@ using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Channels; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Logging; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Net; @@ -179,7 +180,7 @@ namespace MediaBrowser.Server.Implementations.Channels var dtoOptions = new DtoOptions(); - var returnItems = internalResult.Items.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)) + var returnItems = _dtoService.GetBaseItemDtos(internalResult.Items, dtoOptions, user) .ToArray(); var result = new QueryResult<BaseItemDto> @@ -392,7 +393,9 @@ namespace MediaBrowser.Server.Implementations.Channels private async Task<Channel> GetChannel(IChannel channelInfo, CancellationToken cancellationToken) { - var path = Path.Combine(_config.ApplicationPaths.ItemsByNamePath, "channels", _fileSystem.GetValidFilename(channelInfo.Name)); + var id = GetInternalChannelId(channelInfo.Name); + + var path = Channel.GetInternalMetadataPath(_config.ApplicationPaths.InternalMetadataPath, id); var fileInfo = new DirectoryInfo(path); @@ -413,8 +416,6 @@ namespace MediaBrowser.Server.Implementations.Channels isNew = true; } - var id = GetInternalChannelId(channelInfo.Name); - var item = _libraryManager.GetItemById(id) as Channel; if (item == null) @@ -555,7 +556,7 @@ namespace MediaBrowser.Server.Implementations.Channels var dtoOptions = new DtoOptions(); - var returnItems = items.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)) + var returnItems = _dtoService.GetBaseItemDtos(items, dtoOptions, user) .ToArray(); var result = new QueryResult<BaseItemDto> @@ -822,7 +823,7 @@ namespace MediaBrowser.Server.Implementations.Channels var dtoOptions = new DtoOptions(); - var returnItems = internalResult.Items.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)) + var returnItems = _dtoService.GetBaseItemDtos(internalResult.Items, dtoOptions, user) .ToArray(); var result = new QueryResult<BaseItemDto> @@ -971,7 +972,7 @@ namespace MediaBrowser.Server.Implementations.Channels var dtoOptions = new DtoOptions(); - var returnItems = internalResult.Items.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)) + var returnItems = _dtoService.GetBaseItemDtos(internalResult.Items, dtoOptions, user) .ToArray(); var result = new QueryResult<BaseItemDto> @@ -1262,8 +1263,6 @@ namespace MediaBrowser.Server.Implementations.Channels var mediaSource = info.MediaSources.FirstOrDefault(); item.Path = mediaSource == null ? null : mediaSource.Path; - - item.DisplayMediaType = channelMediaItem.ContentType.ToString(); } if (isNew) @@ -1492,7 +1491,7 @@ namespace MediaBrowser.Server.Implementations.Channels } else { - File.Delete(response.TempFilePath); + _fileSystem.DeleteFile(response.TempFilePath); throw new ApplicationException("Unexpected response type encountered: " + response.ContentType); } @@ -1501,7 +1500,7 @@ namespace MediaBrowser.Server.Implementations.Channels try { - File.Delete(response.TempFilePath); + _fileSystem.DeleteFile(response.TempFilePath); } catch { |
