aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-10-26 18:50:19 -0400
committerLuke <luke.pulverenti@gmail.com>2015-10-26 18:50:19 -0400
commit35778ebc02e5931142a1fe31a256b7488a07c5c2 (patch)
treeced0290be8820f5e507b51ca4c5165212b1879d1 /MediaBrowser.Server.Implementations/Sync
parentc0dc8d055bfd4d2f58591083beb9e9128357aad6 (diff)
parent8d77308593c3b16b733b0109323770d9dfe7e166 (diff)
Merge pull request #1222 from MediaBrowser/dev
3.0.5768.7
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/MediaSync.cs23
-rw-r--r--MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs21
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs64
-rw-r--r--MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs1
7 files changed, 38 insertions, 74 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs
index 86ef58e425..cff72ae583 100644
--- a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs
+++ b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs
@@ -18,6 +18,7 @@ using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using CommonIO;
using Interfaces.IO;
namespace MediaBrowser.Server.Implementations.Sync
@@ -83,12 +84,7 @@ namespace MediaBrowser.Server.Implementations.Sync
foreach (var localItem in localItems)
{
- // TODO: Remove this after a while
- if (string.IsNullOrWhiteSpace(localItem.FileId))
- {
- jobItemIds.Add(localItem.SyncJobItemId);
- }
- else if (remoteIds.Contains(localItem.FileId, StringComparer.OrdinalIgnoreCase))
+ if (remoteIds.Contains(localItem.FileId, StringComparer.OrdinalIgnoreCase))
{
jobItemIds.Add(localItem.SyncJobItemId);
}
@@ -147,7 +143,14 @@ namespace MediaBrowser.Server.Implementations.Sync
progress.Report(totalProgress);
});
- await GetItem(provider, dataProvider, target, serverId, serverName, jobItem, innerProgress, cancellationToken).ConfigureAwait(false);
+ try
+ {
+ await GetItem(provider, dataProvider, target, serverId, serverName, jobItem, innerProgress, cancellationToken).ConfigureAwait(false);
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error syncing item", ex);
+ }
numComplete++;
startingPercent = numComplete;
@@ -322,12 +325,6 @@ namespace MediaBrowser.Server.Implementations.Sync
{
var files = localItem.AdditionalFiles.ToList();
- // TODO: Remove this. Have to check it for now since this is a new property
- if (!string.IsNullOrWhiteSpace(localItem.FileId))
- {
- files.Insert(0, localItem.FileId);
- }
-
foreach (var file in files)
{
_logger.Debug("Removing {0} from {1}.", file, target.Name);
diff --git a/MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs b/MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs
index 6f09e96f0f..dca831f73f 100644
--- a/MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs
+++ b/MediaBrowser.Server.Implementations/Sync/MultiProviderSync.cs
@@ -10,6 +10,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using CommonIO;
namespace MediaBrowser.Server.Implementations.Sync
{
diff --git a/MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs b/MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs
index 9477a23f19..52c9f9ceef 100644
--- a/MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/Sync/ServerSyncScheduledTask.cs
@@ -9,6 +9,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using CommonIO;
namespace MediaBrowser.Server.Implementations.Sync
{
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs b/MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs
index 5347e1d83b..2efed79927 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncConvertScheduledTask.cs
@@ -10,6 +10,7 @@ using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using CommonIO;
namespace MediaBrowser.Server.Implementations.Sync
{
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
index 1061a373e9..95934908da 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
@@ -23,6 +23,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using CommonIO;
namespace MediaBrowser.Server.Implementations.Sync
{
@@ -178,9 +179,13 @@ namespace MediaBrowser.Server.Implementations.Sync
job.Progress = null;
}
- if (jobItems.All(i => i.Status == SyncJobItemStatus.Queued))
+ if (jobItems.Any(i => i.Status == SyncJobItemStatus.Transferring))
{
- job.Status = SyncJobStatus.Queued;
+ job.Status = SyncJobStatus.Transferring;
+ }
+ else if (jobItems.Any(i => i.Status == SyncJobItemStatus.Converting))
+ {
+ job.Status = SyncJobStatus.Converting;
}
else if (jobItems.All(i => i.Status == SyncJobItemStatus.Failed))
{
@@ -194,14 +199,6 @@ namespace MediaBrowser.Server.Implementations.Sync
{
job.Status = SyncJobStatus.ReadyToTransfer;
}
- else if (jobItems.All(i => i.Status == SyncJobItemStatus.Transferring))
- {
- job.Status = SyncJobStatus.Transferring;
- }
- else if (jobItems.Any(i => i.Status == SyncJobItemStatus.Converting))
- {
- job.Status = SyncJobStatus.Converting;
- }
else if (jobItems.All(i => i.Status == SyncJobItemStatus.Cancelled || i.Status == SyncJobItemStatus.Failed || i.Status == SyncJobItemStatus.Synced || i.Status == SyncJobItemStatus.RemovedFromDevice))
{
if (jobItems.Any(i => i.Status == SyncJobItemStatus.Failed))
@@ -702,7 +699,7 @@ namespace MediaBrowser.Server.Implementations.Sync
var path = Path.Combine(temporaryPath, filename);
- Directory.CreateDirectory(Path.GetDirectoryName(path));
+ _fileSystem.CreateDirectory(Path.GetDirectoryName(path));
using (var stream = await _subtitleEncoder.GetSubtitles(streamInfo.ItemId, streamInfo.MediaSourceId, subtitleStreamIndex, subtitleStreamInfo.Format, 0, null, cancellationToken).ConfigureAwait(false))
{
@@ -868,7 +865,7 @@ namespace MediaBrowser.Server.Implementations.Sync
private async Task<MediaSourceInfo> GetEncodedMediaSource(string path, User user, bool isVideo)
{
- var item = _libraryManager.ResolvePath(new FileInfo(path));
+ var item = _libraryManager.ResolvePath(_fileSystem.GetFileSystemInfo(path));
await item.RefreshMetadata(CancellationToken.None).ConfigureAwait(false);
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index 18fcb4e794..c715c3f50d 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -32,6 +32,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using CommonIO;
namespace MediaBrowser.Server.Implementations.Sync
{
@@ -516,60 +517,25 @@ namespace MediaBrowser.Server.Implementations.Sync
return false;
}
- if (!item.RunTimeTicks.HasValue)
- {
- return false;
- }
-
var video = item as Video;
if (video != null)
{
- if (video.VideoType == VideoType.Iso || video.VideoType == VideoType.HdDvd)
- {
- return false;
- }
-
if (video.IsPlaceHolder)
{
return false;
}
- if (video.IsArchive)
- {
- return false;
- }
-
- if (video.IsStacked)
- {
- return false;
- }
-
if (video.IsShortcut)
{
return false;
}
}
- var game = item as Game;
- if (game != null)
- {
- if (game.IsMultiPart)
- {
- return false;
- }
- }
-
if (item is LiveTvChannel || item is IChannelItem)
{
return false;
}
- // It would be nice to support these later
- if (item is Game || item is Book)
- {
- return false;
- }
-
return true;
}
@@ -784,27 +750,27 @@ namespace MediaBrowser.Server.Implementations.Sync
if (jobItem.IsMarkedForRemoval)
{
// Tell the device to remove it since it has been marked for removal
- _logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.ItemId);
+ _logger.Info("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.ItemId);
removeFromDevice = true;
}
else if (user == null)
{
// Tell the device to remove it since the user is gone now
- _logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.ItemId);
+ _logger.Info("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.ItemId);
removeFromDevice = true;
}
else if (!IsLibraryItemAvailable(libraryItem))
{
// Tell the device to remove it since it's no longer available
- _logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.ItemId);
+ _logger.Info("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.ItemId);
removeFromDevice = true;
}
else if (job.UnwatchedOnly)
{
- if (libraryItem.IsPlayed(user) && libraryItem is Video)
+ if (libraryItem is Video && libraryItem.IsPlayed(user))
{
// Tell the device to remove it since it has been played
- _logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.ItemId);
+ _logger.Info("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.ItemId);
removeFromDevice = true;
}
}
@@ -818,8 +784,9 @@ namespace MediaBrowser.Server.Implementations.Sync
}
else
{
- _logger.Debug("Setting status to Queued for {0} because it is no longer on the device.", jobItem.ItemId);
+ _logger.Info("Setting status to Queued for {0} because it is no longer on the device.", jobItem.ItemId);
jobItem.Status = SyncJobItemStatus.Queued;
+ jobItem.Progress = 0;
}
requiresSaving = true;
}
@@ -889,27 +856,27 @@ namespace MediaBrowser.Server.Implementations.Sync
if (jobItem.IsMarkedForRemoval)
{
// Tell the device to remove it since it has been marked for removal
- _logger.Debug("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.Id);
+ _logger.Info("Adding ItemIdsToRemove {0} because IsMarkedForRemoval is set.", jobItem.Id);
removeFromDevice = true;
}
else if (user == null)
{
// Tell the device to remove it since the user is gone now
- _logger.Debug("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.Id);
+ _logger.Info("Adding ItemIdsToRemove {0} because the user is no longer valid.", jobItem.Id);
removeFromDevice = true;
}
else if (!IsLibraryItemAvailable(libraryItem))
{
// Tell the device to remove it since it's no longer available
- _logger.Debug("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.Id);
+ _logger.Info("Adding ItemIdsToRemove {0} because it is no longer available.", jobItem.Id);
removeFromDevice = true;
}
else if (job.UnwatchedOnly)
{
- if (libraryItem.IsPlayed(user) && libraryItem is Video)
+ if (libraryItem is Video && libraryItem.IsPlayed(user))
{
// Tell the device to remove it since it has been played
- _logger.Debug("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.Id);
+ _logger.Info("Adding ItemIdsToRemove {0} because it has been marked played.", jobItem.Id);
removeFromDevice = true;
}
}
@@ -923,8 +890,9 @@ namespace MediaBrowser.Server.Implementations.Sync
}
else
{
- _logger.Debug("Setting status to Queued for {0} because it is no longer on the device.", jobItem.Id);
+ _logger.Info("Setting status to Queued for {0} because it is no longer on the device.", jobItem.Id);
jobItem.Status = SyncJobItemStatus.Queued;
+ jobItem.Progress = 0;
}
requiresSaving = true;
}
@@ -997,8 +965,6 @@ namespace MediaBrowser.Server.Implementations.Sync
return false;
}
- // TODO: Make sure it hasn't been deleted
-
return true;
}
diff --git a/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs b/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs
index 676adad342..41d56d9596 100644
--- a/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs
+++ b/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs
@@ -11,6 +11,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using CommonIO;
using Interfaces.IO;
namespace MediaBrowser.Server.Implementations.Sync