mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-08 12:28:19 +02:00
Added api methods to get movie special features
This commit is contained in:
parent
29cdf55e44
commit
f68137ec4a
8 changed files with 104 additions and 0 deletions
|
@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using MediaBrowser.Model.Entities.Movies;
|
||||||
|
|
||||||
namespace MediaBrowser.Api
|
namespace MediaBrowser.Api
|
||||||
{
|
{
|
||||||
|
@ -237,6 +238,19 @@ namespace MediaBrowser.Api
|
||||||
Status = series.Status
|
Status = series.Status
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add MovieInfo
|
||||||
|
Movie movie = item as Movie;
|
||||||
|
|
||||||
|
if (movie != null)
|
||||||
|
{
|
||||||
|
int specialFeatureCount = movie.SpecialFeatures == null ? 0 : movie.SpecialFeatures.Count();
|
||||||
|
|
||||||
|
dto.MovieInfo = new MovieInfo()
|
||||||
|
{
|
||||||
|
SpecialFeatureCount = specialFeatureCount
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
49
MediaBrowser.Api/HttpHandlers/MovieSpecialFeaturesHandler.cs
Normal file
49
MediaBrowser.Api/HttpHandlers/MovieSpecialFeaturesHandler.cs
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
using MediaBrowser.Common.Net.Handlers;
|
||||||
|
using MediaBrowser.Model.DTO;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
using MediaBrowser.Model.Entities.Movies;
|
||||||
|
using System.ComponentModel.Composition;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Api.HttpHandlers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// This handler retrieves special features for movies
|
||||||
|
/// </summary>
|
||||||
|
[Export(typeof(BaseHandler))]
|
||||||
|
public class MovieSpecialFeaturesHandler : BaseSerializationHandler<DTOBaseItem[]>
|
||||||
|
{
|
||||||
|
public override bool HandlesRequest(HttpListenerRequest request)
|
||||||
|
{
|
||||||
|
return ApiService.IsApiUrlMatch("MovieSpecialFeatures", request);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override Task<DTOBaseItem[]> GetObjectToSerialize()
|
||||||
|
{
|
||||||
|
User user = ApiService.GetUserById(QueryString["userid"], true);
|
||||||
|
|
||||||
|
Movie movie = ApiService.GetItemById(ItemId) as Movie;
|
||||||
|
|
||||||
|
// If none
|
||||||
|
if (movie.SpecialFeatures == null)
|
||||||
|
{
|
||||||
|
return Task.FromResult<DTOBaseItem[]>(new DTOBaseItem[] { });
|
||||||
|
}
|
||||||
|
|
||||||
|
return Task.WhenAll<DTOBaseItem>(movie.SpecialFeatures.Select(i =>
|
||||||
|
{
|
||||||
|
return ApiService.GetDTOBaseItem(i, user, includeChildren: false, includePeople: true);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected string ItemId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return QueryString["id"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -61,6 +61,7 @@
|
||||||
<Compile Include="HttpHandlers\AudioHandler.cs" />
|
<Compile Include="HttpHandlers\AudioHandler.cs" />
|
||||||
<Compile Include="HttpHandlers\BaseMediaHandler.cs" />
|
<Compile Include="HttpHandlers\BaseMediaHandler.cs" />
|
||||||
<Compile Include="HttpHandlers\FavoriteStatusHandler.cs" />
|
<Compile Include="HttpHandlers\FavoriteStatusHandler.cs" />
|
||||||
|
<Compile Include="HttpHandlers\MovieSpecialFeaturesHandler.cs" />
|
||||||
<Compile Include="HttpHandlers\UserHandler.cs" />
|
<Compile Include="HttpHandlers\UserHandler.cs" />
|
||||||
<Compile Include="HttpHandlers\GenreHandler.cs" />
|
<Compile Include="HttpHandlers\GenreHandler.cs" />
|
||||||
<Compile Include="HttpHandlers\GenresHandler.cs" />
|
<Compile Include="HttpHandlers\GenresHandler.cs" />
|
||||||
|
|
|
@ -367,6 +367,17 @@ namespace MediaBrowser.ApiInteraction.Portable
|
||||||
GetDataAsync(url, callback);
|
GetDataAsync(url, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets special features for a Movie
|
||||||
|
/// </summary>
|
||||||
|
public void GetMovieSpecialFeaturesAsync(Guid itemId, Guid userId, Action<DTOBaseItem[]> callback)
|
||||||
|
{
|
||||||
|
string url = ApiUrl + "/MovieSpecialFeatures?id=" + itemId;
|
||||||
|
url += "&userid=" + userId;
|
||||||
|
|
||||||
|
GetDataAsync(url, callback);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Authenticates a user and returns the result
|
/// Authenticates a user and returns the result
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -450,6 +450,20 @@ namespace MediaBrowser.ApiInteraction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets special features for a Movie
|
||||||
|
/// </summary>
|
||||||
|
public async Task<DTOBaseItem[]> GetMovieSpecialFeaturesAsync(Guid itemId, Guid userId)
|
||||||
|
{
|
||||||
|
string url = ApiUrl + "/MovieSpecialFeatures?id=" + itemId;
|
||||||
|
url += "&userid=" + userId;
|
||||||
|
|
||||||
|
using (Stream stream = await GetSerializedStreamAsync(url).ConfigureAwait(false))
|
||||||
|
{
|
||||||
|
return DeserializeFromStream<DTOBaseItem[]>(stream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Updates a user's favorite status for an item and returns the updated UserItemData object.
|
/// Updates a user's favorite status for an item and returns the updated UserItemData object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -160,6 +160,9 @@ namespace MediaBrowser.Model.DTO
|
||||||
public SeriesInfo SeriesInfo { get; set; }
|
public SeriesInfo SeriesInfo { get; set; }
|
||||||
|
|
||||||
[ProtoMember(45)]
|
[ProtoMember(45)]
|
||||||
|
public MovieInfo MovieInfo { get; set; }
|
||||||
|
|
||||||
|
[ProtoMember(46)]
|
||||||
public bool IsNew { get; set; }
|
public bool IsNew { get; set; }
|
||||||
|
|
||||||
public bool IsType(Type type)
|
public bool IsType(Type type)
|
||||||
|
|
11
MediaBrowser.Model/DTO/MovieInfo.cs
Normal file
11
MediaBrowser.Model/DTO/MovieInfo.cs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
using ProtoBuf;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Model.DTO
|
||||||
|
{
|
||||||
|
[ProtoContract]
|
||||||
|
public class MovieInfo
|
||||||
|
{
|
||||||
|
[ProtoMember(1)]
|
||||||
|
public int SpecialFeatureCount { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,6 +37,7 @@
|
||||||
<Compile Include="DTO\AudioInfo.cs" />
|
<Compile Include="DTO\AudioInfo.cs" />
|
||||||
<Compile Include="DTO\AudioOutputFormats.cs" />
|
<Compile Include="DTO\AudioOutputFormats.cs" />
|
||||||
<Compile Include="DTO\DTOUserItemData.cs" />
|
<Compile Include="DTO\DTOUserItemData.cs" />
|
||||||
|
<Compile Include="DTO\MovieInfo.cs" />
|
||||||
<Compile Include="DTO\SeriesInfo.cs" />
|
<Compile Include="DTO\SeriesInfo.cs" />
|
||||||
<Compile Include="Authentication\AuthenticationResult.cs" />
|
<Compile Include="Authentication\AuthenticationResult.cs" />
|
||||||
<Compile Include="DTO\DTOBaseItem.cs" />
|
<Compile Include="DTO\DTOBaseItem.cs" />
|
||||||
|
|
Loading…
Reference in a new issue