diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Sync/SyncManager.cs | 19 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Sync/SyncRepository.cs | 17 |
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> |
