aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Channels
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels')
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs44
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs21
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
{