Bläddra i källkod

add new tab to series timer page

Luke Pulverenti 11 år sedan
förälder
incheckning
2e499c60e0

+ 10 - 2
MediaBrowser.Api/LiveTv/LiveTvService.cs

@@ -65,6 +65,9 @@ namespace MediaBrowser.Api.LiveTv
 
         [ApiMember(Name = "IsRecording", Description = "Optional filter by recordings that are currently active, or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
         public bool? IsRecording { get; set; }
+
+        [ApiMember(Name = "SeriesTimerId", Description = "Optional filter by recordings belonging to a series timer", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
+        public string SeriesTimerId { get; set; }
     }
 
     [Route("/LiveTv/Recordings/Groups", "GET")]
@@ -108,6 +111,9 @@ namespace MediaBrowser.Api.LiveTv
     {
         [ApiMember(Name = "ChannelId", Description = "Optional filter by channel id.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
         public string ChannelId { get; set; }
+
+        [ApiMember(Name = "SeriesTimerId", Description = "Optional filter by timers belonging to a series timer", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
+        public string SeriesTimerId { get; set; }
     }
 
     [Route("/LiveTv/Programs", "GET")]
@@ -312,7 +318,8 @@ namespace MediaBrowser.Api.LiveTv
                 GroupId = request.GroupId,
                 StartIndex = request.StartIndex,
                 Limit = request.Limit,
-                IsRecording = request.IsRecording
+                IsRecording = request.IsRecording,
+                SeriesTimerId = request.SeriesTimerId
 
             }, CancellationToken.None).Result;
 
@@ -339,7 +346,8 @@ namespace MediaBrowser.Api.LiveTv
         {
             var result = _liveTvManager.GetTimers(new TimerQuery
             {
-                ChannelId = request.ChannelId
+                ChannelId = request.ChannelId,
+                SeriesTimerId = request.SeriesTimerId
 
             }, CancellationToken.None).Result;
 

+ 12 - 0
MediaBrowser.Model/LiveTv/RecordingQuery.cs

@@ -46,6 +46,12 @@
         /// </summary>
         /// <value><c>null</c> if [is recording] contains no value, <c>true</c> if [is recording]; otherwise, <c>false</c>.</value>
         public bool? IsRecording { get; set; }
+
+        /// <summary>
+        /// Gets or sets the series timer identifier.
+        /// </summary>
+        /// <value>The series timer identifier.</value>
+        public string SeriesTimerId { get; set; }
     }
 
     public class RecordingGroupQuery
@@ -64,6 +70,12 @@
         /// </summary>
         /// <value>The channel identifier.</value>
         public string ChannelId { get; set; }
+
+        /// <summary>
+        /// Gets or sets the series timer identifier.
+        /// </summary>
+        /// <value>The series timer identifier.</value>
+        public string SeriesTimerId { get; set; }
     }
 
     public class SeriesTimerQuery

+ 20 - 0
MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -565,6 +565,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv
                 recordings = recordings.Where(i => (i.Status == RecordingStatus.InProgress) == val);
             }
 
+            if (!string.IsNullOrEmpty(query.SeriesTimerId))
+            {
+                var guid = new Guid(query.SeriesTimerId);
+
+                var currentServiceName = service.Name;
+
+                recordings = recordings
+                    .Where(i => _tvDtoService.GetInternalSeriesTimerId(currentServiceName, i.SeriesTimerId) == guid);
+            }
+
             IEnumerable<ILiveTvRecording> entities = await GetEntities(recordings, service.Name, cancellationToken).ConfigureAwait(false);
 
             entities = entities.OrderByDescending(i => i.RecordingInfo.StartDate);
@@ -640,6 +650,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv
                 timers = timers.Where(i => guid == _tvDtoService.GetInternalChannelId(service.Name, i.ChannelId));
             }
 
+            if (!string.IsNullOrEmpty(query.SeriesTimerId))
+            {
+                var guid = new Guid(query.SeriesTimerId);
+
+                var currentServiceName = service.Name;
+
+                timers = timers
+                    .Where(i => _tvDtoService.GetInternalSeriesTimerId(currentServiceName, i.SeriesTimerId) == guid);
+            }
+
             var returnArray = timers
                 .Select(i =>
                 {