|
@@ -157,6 +157,8 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
public bool? IsMovie { get; set; }
|
|
|
public bool? IsSeries { get; set; }
|
|
|
+ public bool? IsKids { get; set; }
|
|
|
+ public bool? IsSports { get; set; }
|
|
|
|
|
|
public GetRecordings()
|
|
|
{
|
|
@@ -164,6 +166,61 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ [Route("/LiveTv/Recordings/Series", "GET", Summary = "Gets live tv recordings")]
|
|
|
+ [Authenticated]
|
|
|
+ public class GetRecordingSeries : IReturn<QueryResult<BaseItemDto>>, IHasDtoOptions
|
|
|
+ {
|
|
|
+ [ApiMember(Name = "ChannelId", Description = "Optional filter by channel id.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
|
|
+ public string ChannelId { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "UserId", Description = "Optional filter by user and attach user data.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
|
|
+ public string UserId { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "GroupId", Description = "Optional filter by recording group.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
|
|
+ public string GroupId { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "StartIndex", Description = "Optional. The record index to start at. All items with a lower index will be dropped from the results.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
|
|
|
+ public int? StartIndex { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "Limit", Description = "Optional. The maximum number of records to return", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
|
|
|
+ public int? Limit { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "Status", Description = "Optional filter by recording status.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
|
|
+ public RecordingStatus? Status { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "Status", Description = "Optional filter by recordings that are in progress, or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
|
|
|
+ public bool? IsInProgress { 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; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "EnableImages", Description = "Optional, include image information in output", IsRequired = false, DataType = "boolean", ParameterType = "query", Verb = "GET")]
|
|
|
+ public bool? EnableImages { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "ImageTypeLimit", Description = "Optional, the max number of images to return, per image type", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
|
|
|
+ public int? ImageTypeLimit { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "EnableImageTypes", Description = "Optional. The image types to include in the output.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
|
|
+ public string EnableImageTypes { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Fields to return within the items, in addition to basic information
|
|
|
+ /// </summary>
|
|
|
+ /// <value>The fields.</value>
|
|
|
+ [ApiMember(Name = "Fields", Description = "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimeted. Options: Budget, Chapters, CriticRatingSummary, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
|
|
+ public string Fields { get; set; }
|
|
|
+
|
|
|
+ public bool EnableTotalRecordCount { get; set; }
|
|
|
+
|
|
|
+ [ApiMember(Name = "EnableUserData", Description = "Optional, include user data", IsRequired = false, DataType = "boolean", ParameterType = "query", Verb = "GET")]
|
|
|
+ public bool? EnableUserData { get; set; }
|
|
|
+
|
|
|
+ public GetRecordingSeries()
|
|
|
+ {
|
|
|
+ EnableTotalRecordCount = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
[Route("/LiveTv/Recordings/Groups", "GET", Summary = "Gets live tv recording groups")]
|
|
|
[Authenticated]
|
|
|
public class GetRecordingGroups : IReturn<QueryResult<BaseItemDto>>
|
|
@@ -862,7 +919,31 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
IsInProgress = request.IsInProgress,
|
|
|
EnableTotalRecordCount = request.EnableTotalRecordCount,
|
|
|
IsMovie = request.IsMovie,
|
|
|
- IsSeries = request.IsSeries
|
|
|
+ IsSeries = request.IsSeries,
|
|
|
+ IsKids = request.IsKids,
|
|
|
+ IsSports = request.IsSports
|
|
|
+
|
|
|
+ }, options, CancellationToken.None).ConfigureAwait(false);
|
|
|
+
|
|
|
+ return ToOptimizedResult(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ public async Task<object> Get(GetRecordingSeries request)
|
|
|
+ {
|
|
|
+ var options = GetDtoOptions(request);
|
|
|
+ options.DeviceId = AuthorizationContext.GetAuthorizationInfo(Request).DeviceId;
|
|
|
+
|
|
|
+ var result = await _liveTvManager.GetRecordingSeries(new RecordingQuery
|
|
|
+ {
|
|
|
+ ChannelId = request.ChannelId,
|
|
|
+ UserId = request.UserId,
|
|
|
+ GroupId = request.GroupId,
|
|
|
+ StartIndex = request.StartIndex,
|
|
|
+ Limit = request.Limit,
|
|
|
+ Status = request.Status,
|
|
|
+ SeriesTimerId = request.SeriesTimerId,
|
|
|
+ IsInProgress = request.IsInProgress,
|
|
|
+ EnableTotalRecordCount = request.EnableTotalRecordCount
|
|
|
|
|
|
}, options, CancellationToken.None).ConfigureAwait(false);
|
|
|
|