diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 1c60ea8e68..fb50deb660 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -319,6 +319,7 @@ + diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs new file mode 100644 index 0000000000..fc92718cac --- /dev/null +++ b/MediaBrowser.Controller/Sync/ISyncManager.cs @@ -0,0 +1,50 @@ +using MediaBrowser.Model.Querying; +using MediaBrowser.Model.Sync; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace MediaBrowser.Controller.Sync +{ + public interface ISyncManager + { + /// + /// Creates the job. + /// + /// The request. + /// Task. + Task> CreateJob(SyncJobRequest request); + + /// + /// Creates the schedule. + /// + /// The request. + /// Task. + Task CreateSchedule(SyncScheduleRequest request); + + /// + /// Gets the jobs. + /// + /// QueryResult<SyncJob>. + QueryResult GetJobs(SyncJobQuery query); + + /// + /// Gets the schedules. + /// + /// QueryResult<SyncSchedule>. + QueryResult GetSchedules(SyncScheduleQuery query); + + /// + /// Cancels the job. + /// + /// The identifier. + /// Task. + Task CancelJob(string id); + + /// + /// Cancels the schedule. + /// + /// The identifier. + /// Task. + Task CancelSchedule(string id); + } +} diff --git a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj index baa9f933d3..9a5cf81f5c 100644 --- a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj +++ b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj @@ -842,6 +842,30 @@ Session\UserDataChangeInfo.cs + + Sync\SyncJob.cs + + + Sync\SyncJobQuery.cs + + + Sync\SyncJobRequest.cs + + + Sync\SyncJobStatus.cs + + + Sync\SyncQuality.cs + + + Sync\SyncSchedule.cs + + + Sync\SyncScheduleQuery.cs + + + Sync\SyncScheduleRequest.cs + System\LogFile.cs diff --git a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj index 782e8524db..d967174296 100644 --- a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj +++ b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj @@ -799,6 +799,30 @@ Session\UserDataChangeInfo.cs + + Sync\SyncJob.cs + + + Sync\SyncJobQuery.cs + + + Sync\SyncJobRequest.cs + + + Sync\SyncJobStatus.cs + + + Sync\SyncQuality.cs + + + Sync\SyncSchedule.cs + + + Sync\SyncScheduleQuery.cs + + + Sync\SyncScheduleRequest.cs + System\LogFile.cs diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index 4d4ca8e20c..d82e64aa33 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -295,6 +295,14 @@ + + + + + + + + diff --git a/MediaBrowser.Model/Sync/SyncJob.cs b/MediaBrowser.Model/Sync/SyncJob.cs new file mode 100644 index 0000000000..09049a196b --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncJob.cs @@ -0,0 +1,47 @@ + +namespace MediaBrowser.Model.Sync +{ + public class SyncJob + { + /// + /// Gets or sets the identifier. + /// + /// The identifier. + public string Id { get; set; } + /// + /// Gets or sets the device identifier. + /// + /// The device identifier. + public string DeviceId { get; set; } + /// + /// Gets or sets the item identifier. + /// + /// The item identifier. + public string ItemId { get; set; } + /// + /// Gets or sets the quality. + /// + /// The quality. + public SyncQuality Quality { get; set; } + /// + /// Gets or sets the status. + /// + /// The status. + public SyncJobStatus Status { get; set; } + /// + /// Gets or sets the current progress. + /// + /// The current progress. + public double? CurrentProgress { get; set; } + /// + /// Gets or sets the synchronize rule identifier. + /// + /// The synchronize rule identifier. + public string SyncScheduleId { get; set; } + /// + /// Gets or sets the transcoded path. + /// + /// The transcoded path. + public string TranscodedPath { get; set; } + } +} diff --git a/MediaBrowser.Model/Sync/SyncJobQuery.cs b/MediaBrowser.Model/Sync/SyncJobQuery.cs new file mode 100644 index 0000000000..f41544db9a --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncJobQuery.cs @@ -0,0 +1,7 @@ + +namespace MediaBrowser.Model.Sync +{ + public class SyncJobQuery + { + } +} diff --git a/MediaBrowser.Model/Sync/SyncJobRequest.cs b/MediaBrowser.Model/Sync/SyncJobRequest.cs new file mode 100644 index 0000000000..9871f976d2 --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncJobRequest.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +namespace MediaBrowser.Model.Sync +{ + public class SyncJobRequest + { + /// + /// Gets or sets the device identifier. + /// + /// The device identifier. + public List DeviceIds { get; set; } + /// + /// Gets or sets the item identifier. + /// + /// The item identifier. + public string ItemId { get; set; } + /// + /// Gets or sets the quality. + /// + /// The quality. + public SyncQuality Quality { get; set; } + + public SyncJobRequest() + { + DeviceIds = new List(); + } + } +} diff --git a/MediaBrowser.Model/Sync/SyncJobStatus.cs b/MediaBrowser.Model/Sync/SyncJobStatus.cs new file mode 100644 index 0000000000..2a216fe044 --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncJobStatus.cs @@ -0,0 +1,35 @@ + +namespace MediaBrowser.Model.Sync +{ + public enum SyncJobStatus + { + /// + /// The queued + /// + Queued = 0, + /// + /// The transcoding + /// + Transcoding = 1, + /// + /// The transcoding failed + /// + TranscodingFailed = 2, + /// + /// The transcoding completed + /// + TranscodingCompleted = 3, + /// + /// The transfering + /// + Transfering = 4, + /// + /// The transfer failed + /// + TransferFailed = 4, + /// + /// The completed + /// + Completed = 6 + } +} diff --git a/MediaBrowser.Model/Sync/SyncQuality.cs b/MediaBrowser.Model/Sync/SyncQuality.cs new file mode 100644 index 0000000000..f915e27686 --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncQuality.cs @@ -0,0 +1,21 @@ + +namespace MediaBrowser.Model.Sync +{ + public enum SyncQuality + { + /// + /// The good + /// + Good = 0, + + /// + /// The better + /// + Better = 1, + + /// + /// The best + /// + Best = 2 + } +} diff --git a/MediaBrowser.Model/Sync/SyncSchedule.cs b/MediaBrowser.Model/Sync/SyncSchedule.cs new file mode 100644 index 0000000000..297cbd1450 --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncSchedule.cs @@ -0,0 +1,12 @@ + +namespace MediaBrowser.Model.Sync +{ + public class SyncSchedule + { + /// + /// Gets or sets the identifier. + /// + /// The identifier. + public string Id { get; set; } + } +} diff --git a/MediaBrowser.Model/Sync/SyncScheduleQuery.cs b/MediaBrowser.Model/Sync/SyncScheduleQuery.cs new file mode 100644 index 0000000000..b704a358ca --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncScheduleQuery.cs @@ -0,0 +1,7 @@ + +namespace MediaBrowser.Model.Sync +{ + public class SyncScheduleQuery + { + } +} diff --git a/MediaBrowser.Model/Sync/SyncScheduleRequest.cs b/MediaBrowser.Model/Sync/SyncScheduleRequest.cs new file mode 100644 index 0000000000..e1ba4b1154 --- /dev/null +++ b/MediaBrowser.Model/Sync/SyncScheduleRequest.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; + +namespace MediaBrowser.Model.Sync +{ + public class SyncScheduleRequest + { + /// + /// Gets or sets the device identifier. + /// + /// The device identifier. + public List DeviceIds { get; set; } + /// + /// Gets or sets the quality. + /// + /// The quality. + public SyncQuality Quality { get; set; } + + public SyncScheduleRequest() + { + DeviceIds = new List(); + } + } +} diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 335fb97699..b84d060d73 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -339,7 +339,6 @@ namespace MediaBrowser.Providers.Manager break; } - failedProviderCount++; Logger.Debug("{0} returned no metadata for {1}", providerName, item.Path ?? item.Name); } catch (OperationCanceledException)