From 9f191a3598f8d1cc6764169943186987be33a707 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 25 Mar 2015 19:13:15 -0400 Subject: [PATCH] sync fixes --- MediaBrowser.Model/Sync/SyncedItem.cs | 11 +++++++++ .../Sync/MediaSync.cs | 23 ++++++++++++++----- .../Sync/SyncManager.cs | 2 ++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/MediaBrowser.Model/Sync/SyncedItem.cs b/MediaBrowser.Model/Sync/SyncedItem.cs index 2063506b16..4dedcfd2dc 100644 --- a/MediaBrowser.Model/Sync/SyncedItem.cs +++ b/MediaBrowser.Model/Sync/SyncedItem.cs @@ -1,4 +1,5 @@ using MediaBrowser.Model.Dto; +using System; using System.Collections.Generic; namespace MediaBrowser.Model.Sync @@ -16,6 +17,16 @@ namespace MediaBrowser.Model.Sync /// The synchronize job identifier. public string SyncJobId { get; set; } /// + /// Gets or sets the name of the synchronize job. + /// + /// The name of the synchronize job. + public string SyncJobName { get; set; } + /// + /// Gets or sets the synchronize job date created. + /// + /// The synchronize job date created. + public DateTime SyncJobDateCreated { get; set; } + /// /// Gets or sets the synchronize job item identifier. /// /// The synchronize job item identifier. diff --git a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs index 89076beb1b..429b724898 100644 --- a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs +++ b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs @@ -143,7 +143,7 @@ namespace MediaBrowser.Server.Implementations.Sync var fileTransferProgress = new ActionableProgress(); fileTransferProgress.RegisterAction(pct => progress.Report(pct * .92)); - var localItem = CreateLocalItem(provider, jobItem.SyncJobId, jobItem.SyncJobItemId, target, libraryItem, serverId, jobItem.OriginalFileName); + var localItem = CreateLocalItem(provider, jobItem, target, libraryItem, serverId, jobItem.OriginalFileName); await _syncManager.ReportSyncJobItemTransferBeginning(internalSyncJobItem.Id); @@ -232,6 +232,8 @@ namespace MediaBrowser.Server.Implementations.Sync foreach (var file in files) { + _logger.Debug("Removing {0} from {1}.", file.Path, target.Name); + await provider.DeleteFile(file.Path, target, cancellationToken).ConfigureAwait(false); } @@ -263,9 +265,9 @@ namespace MediaBrowser.Server.Implementations.Sync } } - public LocalItem CreateLocalItem(IServerSyncProvider provider, string syncJobId, string syncJobItemId, SyncTarget target, BaseItemDto libraryItem, string serverId, string originalFileName) + public LocalItem CreateLocalItem(IServerSyncProvider provider, SyncedItem syncedItem, SyncTarget target, BaseItemDto libraryItem, string serverId, string originalFileName) { - var path = GetDirectoryPath(provider, syncJobId, libraryItem, serverId); + var path = GetDirectoryPath(provider, syncedItem, libraryItem, serverId); path.Add(GetLocalFileName(provider, libraryItem, originalFileName)); var localPath = provider.GetFullPath(path, target); @@ -282,16 +284,25 @@ namespace MediaBrowser.Server.Implementations.Sync ItemId = libraryItem.Id, ServerId = serverId, LocalPath = localPath, - Id = GetLocalId(syncJobItemId, libraryItem.Id) + Id = GetLocalId(syncedItem.SyncJobItemId, libraryItem.Id) }; } - private List GetDirectoryPath(IServerSyncProvider provider, string syncJobId, BaseItemDto item, string serverId) + private string GetSyncJobFolderName(SyncedItem syncedItem, IServerSyncProvider provider) + { + var name = syncedItem.SyncJobName + syncedItem.SyncJobDateCreated.ToLocalTime().ToString("g"); + + name = GetValidFilename(provider, name); + + return name; + } + + private List GetDirectoryPath(IServerSyncProvider provider, SyncedItem syncedItem, BaseItemDto item, string serverId) { var parts = new List { serverId, - syncJobId + GetSyncJobFolderName(syncedItem, provider) }; if (item.IsType("episode")) diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index d489ac8d3f..2cf6c68539 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -646,6 +646,8 @@ namespace MediaBrowser.Server.Implementations.Sync SyncJobItemId = jobItem.Id, ServerId = _appHost.SystemId, UserId = job.UserId, + SyncJobName = job.Name, + SyncJobDateCreated = job.DateCreated, AdditionalFiles = jobItem.AdditionalFiles.Select(i => new ItemFileInfo { ImageType = i.ImageType,