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