aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/LiveTv/LiveTvService.cs12
-rw-r--r--MediaBrowser.Model/LiveTv/RecordingQuery.cs12
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs20
3 files changed, 42 insertions, 2 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs
index df6d9389b..98cc8ddda 100644
--- a/MediaBrowser.Api/LiveTv/LiveTvService.cs
+++ b/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;
diff --git a/MediaBrowser.Model/LiveTv/RecordingQuery.cs b/MediaBrowser.Model/LiveTv/RecordingQuery.cs
index 731247672..a08b7dc30 100644
--- a/MediaBrowser.Model/LiveTv/RecordingQuery.cs
+++ b/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
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index d49410b4e..7dc210ccc 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/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 =>
{