diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-10-26 18:50:19 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-10-26 18:50:19 -0400 |
| commit | 35778ebc02e5931142a1fe31a256b7488a07c5c2 (patch) | |
| tree | ced0290be8820f5e507b51ca4c5165212b1879d1 /MediaBrowser.Server.Implementations/Sync | |
| parent | c0dc8d055bfd4d2f58591083beb9e9128357aad6 (diff) | |
| parent | 8d77308593c3b16b733b0109323770d9dfe7e166 (diff) | |
Merge pull request #1222 from MediaBrowser/dev
3.0.5768.7
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync')
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 |
