diff options
7 files changed, 34 insertions, 13 deletions
diff --git a/MediaBrowser.Api/Sync/SyncService.cs b/MediaBrowser.Api/Sync/SyncService.cs index 9c6d05452..3f57ca2a0 100644 --- a/MediaBrowser.Api/Sync/SyncService.cs +++ b/MediaBrowser.Api/Sync/SyncService.cs @@ -272,9 +272,11 @@ namespace MediaBrowser.Api.Sync } } - public object Get(GetReadySyncItems request) + public async Task<object> Get(GetReadySyncItems request) { - return ToOptimizedResult(_syncManager.GetReadySyncItems(request.TargetId)); + var result = await _syncManager.GetReadySyncItems(request.TargetId).ConfigureAwait(false); + + return ToOptimizedResult(result); } public async Task<object> Post(SyncData request) diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs index 4d654575e..4b800cac9 100644 --- a/MediaBrowser.Controller/Sync/ISyncManager.cs +++ b/MediaBrowser.Controller/Sync/ISyncManager.cs @@ -123,7 +123,7 @@ namespace MediaBrowser.Controller.Sync /// </summary> /// <param name="targetId">The target identifier.</param> /// <returns>List<SyncedItem>.</returns> - List<SyncedItem> GetReadySyncItems(string targetId); + Task<List<SyncedItem>> GetReadySyncItems(string targetId); /// <summary> /// Synchronizes the data. diff --git a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs index 4f0f42f3e..106e3c76b 100644 --- a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs +++ b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs @@ -210,9 +210,8 @@ namespace MediaBrowser.Server.Implementations.FileOrganization _libraryMonitor.ReportFileSystemChangeBeginning(path); - var renameRelatedFiles = false; - //var renameRelatedFiles = !hasRenamedFiles && - // string.Equals(Path.GetDirectoryName(path), Path.GetDirectoryName(result.TargetPath), StringComparison.OrdinalIgnoreCase); + var renameRelatedFiles = !hasRenamedFiles && + string.Equals(Path.GetDirectoryName(path), Path.GetDirectoryName(result.TargetPath), StringComparison.OrdinalIgnoreCase); if (renameRelatedFiles) { diff --git a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs index efdfbb086..099e45a6e 100644 --- a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs +++ b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs @@ -82,7 +82,7 @@ namespace MediaBrowser.Server.Implementations.Sync IProgress<double> progress, CancellationToken cancellationToken) { - var jobItems = _syncManager.GetReadySyncItems(target.Id); + var jobItems = await _syncManager.GetReadySyncItems(target.Id).ConfigureAwait(false); var numComplete = 0; double startingPercent = 0; diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs index 139d752fa..72dc1bdb6 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs @@ -336,11 +336,12 @@ namespace MediaBrowser.Server.Implementations.Sync return new[] { item }; } - public async Task EnsureSyncJobItems(CancellationToken cancellationToken) + private async Task EnsureSyncJobItems(string targetId, CancellationToken cancellationToken) { var jobResult = _syncRepo.GetJobs(new SyncJobQuery { - SyncNewContent = true + SyncNewContent = true, + TargetId = targetId }); foreach (var job in jobResult.Items) @@ -356,7 +357,7 @@ namespace MediaBrowser.Server.Implementations.Sync public async Task Sync(IProgress<double> progress, CancellationToken cancellationToken) { - await EnsureSyncJobItems(cancellationToken).ConfigureAwait(false); + await EnsureSyncJobItems(null, cancellationToken).ConfigureAwait(false); // If it already has a converting status then is must have been aborted during conversion var result = _syncRepo.GetJobItems(new SyncJobItemQuery @@ -375,6 +376,21 @@ namespace MediaBrowser.Server.Implementations.Sync // Clean files in sync temp folder that are not linked to any sync jobs } + public async Task SyncJobItems(string targetId, bool enableConversion, IProgress<double> progress, + CancellationToken cancellationToken) + { + await EnsureSyncJobItems(targetId, cancellationToken).ConfigureAwait(false); + + // If it already has a converting status then is must have been aborted during conversion + var result = _syncRepo.GetJobItems(new SyncJobItemQuery + { + Statuses = new List<SyncJobItemStatus> { SyncJobItemStatus.Queued, SyncJobItemStatus.Converting }, + TargetId = targetId + }); + + await SyncJobItems(result.Items, true, progress, cancellationToken).ConfigureAwait(false); + } + public async Task SyncJobItems(SyncJobItem[] items, bool enableConversion, IProgress<double> progress, CancellationToken cancellationToken) { if (items.Length > 0) diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index fc3d54150..a2fd92bf5 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -695,8 +695,12 @@ namespace MediaBrowser.Server.Implementations.Sync return _userDataManager.SaveUserData(new Guid(action.UserId), item, userData, UserDataSaveReason.Import, CancellationToken.None); } - public List<SyncedItem> GetReadySyncItems(string targetId) + public async Task<List<SyncedItem>> GetReadySyncItems(string targetId) { + var processor = GetSyncJobProcessor(); + + await processor.SyncJobItems(targetId, false, new Progress<double>(), CancellationToken.None).ConfigureAwait(false); + var jobItemResult = GetJobItems(new SyncJobItemQuery { TargetId = targetId, diff --git a/SharedVersion.cs b/SharedVersion.cs index 97fa02a8a..c4a874f64 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("3.0.*")] -//[assembly: AssemblyVersion("3.0.5518.4")] +//[assembly: AssemblyVersion("3.0.*")] +[assembly: AssemblyVersion("3.0.5518.5")] |
