|
@@ -29,7 +29,7 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
[Route("/LiveTv/Channels", "GET", Summary = "Gets available live tv channels.")]
|
|
|
[Authenticated]
|
|
|
- public class GetChannels : IReturn<QueryResult<ChannelInfoDto>>
|
|
|
+ public class GetChannels : IReturn<QueryResult<ChannelInfoDto>>, IHasDtoOptions
|
|
|
{
|
|
|
[ApiMember(Name = "Type", Description = "Optional filter by channel type.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
|
|
|
public ChannelType? Type { get; set; }
|
|
@@ -62,6 +62,22 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
[ApiMember(Name = "EnableFavoriteSorting", Description = "Incorporate favorite and like status into channel sorting.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
|
|
|
public bool EnableFavoriteSorting { 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; }
|
|
|
}
|
|
|
|
|
|
[Route("/LiveTv/Channels/{Id}", "GET", Summary = "Gets a live tv channel")]
|
|
@@ -81,7 +97,7 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
[Route("/LiveTv/Recordings", "GET", Summary = "Gets live tv recordings")]
|
|
|
[Authenticated]
|
|
|
- public class GetRecordings : IReturn<QueryResult<BaseItemDto>>
|
|
|
+ public class GetRecordings : 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; }
|
|
@@ -106,6 +122,22 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
[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; }
|
|
|
}
|
|
|
|
|
|
[Route("/LiveTv/Recordings/Groups", "GET", Summary = "Gets live tv recording groups")]
|
|
@@ -164,7 +196,7 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
[Route("/LiveTv/Programs", "GET,POST", Summary = "Gets available live tv epgs..")]
|
|
|
[Authenticated]
|
|
|
- public class GetPrograms : IReturn<QueryResult<BaseItemDto>>
|
|
|
+ public class GetPrograms : IReturn<QueryResult<BaseItemDto>>, IHasDtoOptions
|
|
|
{
|
|
|
[ApiMember(Name = "ChannelIds", Description = "The channels to return guide information for.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET,POST")]
|
|
|
public string ChannelIds { get; set; }
|
|
@@ -207,11 +239,27 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
[ApiMember(Name = "Genres", Description = "The genres to return guide information for.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET,POST")]
|
|
|
public string Genres { 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; }
|
|
|
}
|
|
|
|
|
|
[Route("/LiveTv/Programs/Recommended", "GET", Summary = "Gets available live tv epgs..")]
|
|
|
[Authenticated]
|
|
|
- public class GetRecommendedPrograms : IReturn<QueryResult<BaseItemDto>>
|
|
|
+ public class GetRecommendedPrograms : IReturn<QueryResult<BaseItemDto>>, IHasDtoOptions
|
|
|
{
|
|
|
[ApiMember(Name = "UserId", Description = "Optional filter by user id.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET,POST")]
|
|
|
public string UserId { get; set; }
|
|
@@ -230,6 +278,22 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
[ApiMember(Name = "IsMovie", Description = "Optional filter for movies.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
|
|
|
public bool? IsMovie { 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; }
|
|
|
}
|
|
|
|
|
|
[Route("/LiveTv/Programs/{Id}", "GET", Summary = "Gets a live tv program")]
|
|
@@ -490,7 +554,7 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
IsDisliked = request.IsDisliked,
|
|
|
EnableFavoriteSorting = request.EnableFavoriteSorting
|
|
|
|
|
|
- }, CancellationToken.None).ConfigureAwait(false);
|
|
|
+ }, GetDtoOptions(request), CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
|
return ToOptimizedSerializedResultUsingCache(result);
|
|
|
}
|
|
@@ -546,7 +610,7 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
query.IsSports = request.IsSports;
|
|
|
query.Genres = (request.Genres ?? String.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
|
- var result = await _liveTvManager.GetPrograms(query, CancellationToken.None).ConfigureAwait(false);
|
|
|
+ var result = await _liveTvManager.GetPrograms(query, GetDtoOptions(request), CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
|
return ToOptimizedResult(result);
|
|
|
}
|
|
@@ -563,7 +627,7 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
IsSports = request.IsSports
|
|
|
};
|
|
|
|
|
|
- var result = await _liveTvManager.GetRecommendedPrograms(query, CancellationToken.None).ConfigureAwait(false);
|
|
|
+ var result = await _liveTvManager.GetRecommendedPrograms(query, GetDtoOptions(request), CancellationToken.None).ConfigureAwait(false);
|
|
|
|
|
|
return ToOptimizedResult(result);
|
|
|
}
|
|
@@ -575,7 +639,7 @@ namespace MediaBrowser.Api.LiveTv
|
|
|
|
|
|
public async Task<object> Get(GetRecordings request)
|
|
|
{
|
|
|
- var options = new DtoOptions();
|
|
|
+ var options = GetDtoOptions(request);
|
|
|
options.DeviceId = AuthorizationContext.GetAuthorizationInfo(Request).DeviceId;
|
|
|
|
|
|
var result = await _liveTvManager.GetRecordings(new RecordingQuery
|