aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs19
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncRepository.cs17
2 files changed, 28 insertions, 8 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index d47135c65..6c71a90a0 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 MediaBrowser.Common.ScheduledTasks;
namespace MediaBrowser.Server.Implementations.Sync
{
@@ -51,7 +52,8 @@ namespace MediaBrowser.Server.Implementations.Sync
private readonly IConfigurationManager _config;
private readonly IUserDataManager _userDataManager;
private readonly Func<IMediaSourceManager> _mediaSourceManager;
- private readonly IJsonSerializer _json;
+ private readonly IJsonSerializer _json;
+ private readonly ITaskManager _taskManager;
private ISyncProvider[] _providers = { };
@@ -61,7 +63,7 @@ namespace MediaBrowser.Server.Implementations.Sync
public event EventHandler<GenericEventArgs<SyncJobItem>> SyncJobItemUpdated;
public event EventHandler<GenericEventArgs<SyncJobItem>> SyncJobItemCreated;
- public SyncManager(ILibraryManager libraryManager, ISyncRepository repo, IImageProcessor imageProcessor, ILogger logger, IUserManager userManager, Func<IDtoService> dtoService, IServerApplicationHost appHost, ITVSeriesManager tvSeriesManager, Func<IMediaEncoder> mediaEncoder, IFileSystem fileSystem, Func<ISubtitleEncoder> subtitleEncoder, IConfigurationManager config, IUserDataManager userDataManager, Func<IMediaSourceManager> mediaSourceManager, IJsonSerializer json)
+ public SyncManager(ILibraryManager libraryManager, ISyncRepository repo, IImageProcessor imageProcessor, ILogger logger, IUserManager userManager, Func<IDtoService> dtoService, IServerApplicationHost appHost, ITVSeriesManager tvSeriesManager, Func<IMediaEncoder> mediaEncoder, IFileSystem fileSystem, Func<ISubtitleEncoder> subtitleEncoder, IConfigurationManager config, IUserDataManager userDataManager, Func<IMediaSourceManager> mediaSourceManager, IJsonSerializer json, ITaskManager taskManager)
{
_libraryManager = libraryManager;
_repo = repo;
@@ -78,6 +80,7 @@ namespace MediaBrowser.Server.Implementations.Sync
_userDataManager = userDataManager;
_mediaSourceManager = mediaSourceManager;
_json = json;
+ _taskManager = taskManager;
}
public void AddParts(IEnumerable<ISyncProvider> providers)
@@ -214,6 +217,10 @@ namespace MediaBrowser.Server.Implementations.Sync
}, _logger);
}
+ if (returnResult.JobItems.Any (i => i.Status == SyncJobItemStatus.Queued || i.Status == SyncJobItemStatus.Converting)) {
+ _taskManager.QueueScheduledTask<SyncConvertScheduledTask> ();
+ }
+
return returnResult;
}
@@ -691,6 +698,10 @@ namespace MediaBrowser.Server.Implementations.Sync
syncedItem.OriginalFileName = Path.ChangeExtension(syncedItem.OriginalFileName, Path.GetExtension(mediaSource.Path));
syncedItem.Item.MediaSources.Add(mediaSource);
}
+ if (string.IsNullOrWhiteSpace(syncedItem.OriginalFileName))
+ {
+ syncedItem.OriginalFileName = libraryItem.Name;
+ }
return syncedItem;
}
@@ -1131,9 +1142,9 @@ namespace MediaBrowser.Server.Implementations.Sync
await processor.UpdateJobStatus(jobItem.JobId).ConfigureAwait(false);
}
- public QueryResult<string> GetLibraryItemIds(SyncJobItemQuery query)
+ public QueryResult<SyncedItemProgress> GetSyncedItemProgresses(SyncJobItemQuery query)
{
- return _repo.GetLibraryItemIds(query);
+ return _repo.GetSyncedItemProgresses(query);
}
public SyncJobOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job)
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
index 5ad351af5..75c929016 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
@@ -627,9 +627,9 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
- public QueryResult<string> GetLibraryItemIds(SyncJobItemQuery query)
+ public QueryResult<SyncedItemProgress> GetSyncedItemProgresses(SyncJobItemQuery query)
{
- return GetJobItemReader(query, "select ItemId from SyncJobItems", GetItemId);
+ return GetJobItemReader(query, "select ItemId,Status from SyncJobItems", GetSyncedItemProgress);
}
public QueryResult<SyncJobItem> GetJobItems(SyncJobItemQuery query)
@@ -788,9 +788,18 @@ namespace MediaBrowser.Server.Implementations.Sync
return info;
}
- private string GetItemId(IDataReader reader)
+ private SyncedItemProgress GetSyncedItemProgress(IDataReader reader)
{
- return reader.GetString(0);
+ var item = new SyncedItemProgress();
+
+ item.ItemId = reader.GetString(0);
+
+ if (!reader.IsDBNull(1))
+ {
+ item.Status = (SyncJobItemStatus)Enum.Parse(typeof(SyncJobItemStatus), reader.GetString(1), true);
+ }
+
+ return item;
}
/// <summary>