update sync folder structure

This commit is contained in:
Luke Pulverenti 2015-03-30 22:52:18 -04:00
parent 90b5ba9222
commit eaf70589ae
1 changed files with 47 additions and 23 deletions

View File

@ -1,4 +1,5 @@
using MediaBrowser.Common.IO; using System.Globalization;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Progress; using MediaBrowser.Common.Progress;
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Controller.Sync; using MediaBrowser.Controller.Sync;
@ -142,8 +143,9 @@ namespace MediaBrowser.Server.Implementations.Sync
{ {
var libraryItem = jobItem.Item; var libraryItem = jobItem.Item;
var internalSyncJobItem = _syncManager.GetJobItem(jobItem.SyncJobItemId); var internalSyncJobItem = _syncManager.GetJobItem(jobItem.SyncJobItemId);
var internalSyncJob = _syncManager.GetJob(jobItem.SyncJobId);
var localItem = CreateLocalItem(provider, jobItem, target, libraryItem, serverId, serverName, jobItem.OriginalFileName); var localItem = CreateLocalItem(provider, jobItem, internalSyncJob, target, libraryItem, serverId, serverName, jobItem.OriginalFileName);
await _syncManager.ReportSyncJobItemTransferBeginning(internalSyncJobItem.Id); await _syncManager.ReportSyncJobItemTransferBeginning(internalSyncJobItem.Id);
@ -329,9 +331,9 @@ namespace MediaBrowser.Server.Implementations.Sync
} }
} }
public LocalItem CreateLocalItem(IServerSyncProvider provider, SyncedItem syncedItem, SyncTarget target, BaseItemDto libraryItem, string serverId, string serverName, string originalFileName) public LocalItem CreateLocalItem(IServerSyncProvider provider, SyncedItem syncedItem, SyncJob job, SyncTarget target, BaseItemDto libraryItem, string serverId, string serverName, string originalFileName)
{ {
var path = GetDirectoryPath(provider, syncedItem, libraryItem, serverId, serverName); var path = GetDirectoryPath(provider, job, syncedItem, libraryItem, serverName);
path.Add(GetLocalFileName(provider, libraryItem, originalFileName)); path.Add(GetLocalFileName(provider, libraryItem, originalFileName));
var localPath = provider.GetFullPath(path, target); var localPath = provider.GetFullPath(path, target);
@ -352,29 +354,51 @@ namespace MediaBrowser.Server.Implementations.Sync
}; };
} }
private string GetSyncJobFolderName(SyncedItem syncedItem, IServerSyncProvider provider) private List<string> GetDirectoryPath(IServerSyncProvider provider, SyncJob job, SyncedItem syncedItem, BaseItemDto item, string serverName)
{
var name = syncedItem.SyncJobName + "-" + syncedItem.SyncJobDateCreated
.ToLocalTime()
.ToString("g")
.Replace(" ", "-");
name = GetValidFilename(provider, name);
return name;
}
private List<string> GetDirectoryPath(IServerSyncProvider provider, SyncedItem syncedItem, BaseItemDto item, string serverId, string serverName)
{ {
var parts = new List<string> var parts = new List<string>
{ {
serverName, serverName
GetSyncJobFolderName(syncedItem, provider)
}; };
var profileOption = _syncManager.GetProfileOptions(job.TargetId)
.FirstOrDefault(i => string.Equals(i.Id, job.Profile, StringComparison.OrdinalIgnoreCase));
string name;
if (profileOption != null && !string.IsNullOrWhiteSpace(profileOption.Name))
{
name = profileOption.Name;
if (job.Bitrate.HasValue)
{
name += "-" + job.Bitrate.Value.ToString(CultureInfo.InvariantCulture);
}
else
{
var qualityOption = _syncManager.GetQualityOptions(job.TargetId)
.FirstOrDefault(i => string.Equals(i.Id, job.Quality, StringComparison.OrdinalIgnoreCase));
if (qualityOption != null && !string.IsNullOrWhiteSpace(qualityOption.Name))
{
name += "-" + qualityOption.Name;
}
}
}
else
{
name = syncedItem.SyncJobName + "-" + syncedItem.SyncJobDateCreated
.ToLocalTime()
.ToString("g")
.Replace(" ", "-");
}
name = GetValidFilename(provider, name);
parts.Add(name);
if (item.IsType("episode")) if (item.IsType("episode"))
{ {
//parts.Add("TV"); parts.Add("TV");
if (!string.IsNullOrWhiteSpace(item.SeriesName)) if (!string.IsNullOrWhiteSpace(item.SeriesName))
{ {
parts.Add(item.SeriesName); parts.Add(item.SeriesName);
@ -382,12 +406,12 @@ namespace MediaBrowser.Server.Implementations.Sync
} }
else if (item.IsVideo) else if (item.IsVideo)
{ {
//parts.Add("Videos"); parts.Add("Videos");
parts.Add(item.Name); parts.Add(item.Name);
} }
else if (item.IsAudio) else if (item.IsAudio)
{ {
//parts.Add("Music"); parts.Add("Music");
if (!string.IsNullOrWhiteSpace(item.AlbumArtist)) if (!string.IsNullOrWhiteSpace(item.AlbumArtist))
{ {
@ -401,7 +425,7 @@ namespace MediaBrowser.Server.Implementations.Sync
} }
else if (string.Equals(item.MediaType, MediaType.Photo, StringComparison.OrdinalIgnoreCase)) else if (string.Equals(item.MediaType, MediaType.Photo, StringComparison.OrdinalIgnoreCase))
{ {
//parts.Add("Photos"); parts.Add("Photos");
if (!string.IsNullOrWhiteSpace(item.Album)) if (!string.IsNullOrWhiteSpace(item.Album))
{ {