aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Entities/UserView.cs5
-rw-r--r--MediaBrowser.Model/Dto/BaseItemDto.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs12
-rw-r--r--MediaBrowser.Server.Implementations/Sync/MediaSync.cs19
4 files changed, 27 insertions, 10 deletions
diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs
index 84d7ea40d..d0378821f 100644
--- a/MediaBrowser.Controller/Entities/UserView.cs
+++ b/MediaBrowser.Controller/Entities/UserView.cs
@@ -16,6 +16,11 @@ namespace MediaBrowser.Controller.Entities
public static ITVSeriesManager TVSeriesManager;
+ public bool ContainsDynamicCategories(User user)
+ {
+ return true;
+ }
+
public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
var parent = this as Folder;
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index be3cd99be..113a4c6f4 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -67,6 +67,7 @@ namespace MediaBrowser.Model.Dto
public float? Metascore { get; set; }
public bool? IsUnidentified { get; set; }
+ public bool? HasDynamicCategories { get; set; }
public int? AnimeSeriesIndex { get; set; }
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index 75037159c..48408b4ea 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -395,6 +395,18 @@ namespace MediaBrowser.Server.Implementations.Dto
}
}
}
+
+ var userView = item as UserView;
+ if (userView != null)
+ {
+ dto.HasDynamicCategories = userView.ContainsDynamicCategories(user);
+ }
+
+ var collectionFolder = item as ICollectionFolder;
+ if (collectionFolder != null)
+ {
+ dto.HasDynamicCategories = false;
+ }
}
private int GetChildCount(Folder folder, User user)
diff --git a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs
index 0407510a8..70c366bf5 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<double>();
fileTransferProgress.RegisterAction(pct => progress.Report(pct * .92));
- var localItem = CreateLocalItem(provider, target, libraryItem, serverId, jobItem.OriginalFileName);
+ var localItem = CreateLocalItem(provider, jobItem.SyncJobId, target, libraryItem, serverId, jobItem.OriginalFileName);
await _syncManager.ReportSyncJobItemTransferBeginning(internalSyncJobItem.Id);
@@ -226,9 +226,9 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
- public LocalItem CreateLocalItem(IServerSyncProvider provider, SyncTarget target, BaseItemDto libraryItem, string serverId, string originalFileName)
+ public LocalItem CreateLocalItem(IServerSyncProvider provider, string syncJobId, SyncTarget target, BaseItemDto libraryItem, string serverId, string originalFileName)
{
- var path = GetDirectoryPath(provider, libraryItem, serverId);
+ var path = GetDirectoryPath(provider, syncJobId, libraryItem, serverId);
path.Add(GetLocalFileName(provider, libraryItem, originalFileName));
var localPath = provider.GetFullPath(path, target);
@@ -249,21 +249,20 @@ namespace MediaBrowser.Server.Implementations.Sync
};
}
- private List<string> GetDirectoryPath(IServerSyncProvider provider, BaseItemDto item, string serverId)
+ private List<string> GetDirectoryPath(IServerSyncProvider provider, string syncJobId, BaseItemDto item, string serverId)
{
var parts = new List<string>
{
- serverId
+ serverId,
+ syncJobId
};
if (item.IsType("episode"))
{
parts.Add("TV");
- parts.Add(item.SeriesName);
-
- if (!string.IsNullOrWhiteSpace(item.SeasonName))
+ if (!string.IsNullOrWhiteSpace(item.SeriesName))
{
- parts.Add(item.SeasonName);
+ parts.Add(item.SeriesName);
}
}
else if (item.IsVideo)
@@ -302,7 +301,7 @@ namespace MediaBrowser.Server.Implementations.Sync
{
var filename = originalFileName;
- if (string.IsNullOrEmpty(filename))
+ if (string.IsNullOrWhiteSpace(filename))
{
filename = item.Name;
}