diff options
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/FilterService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Api/GamesService.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Api/ItemUpdateService.cs | 25 | ||||
| -rw-r--r-- | MediaBrowser.Api/MediaBrowser.Api.csproj | 5 | ||||
| -rw-r--r-- | MediaBrowser.Api/Movies/MoviesService.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Api/PackageService.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/StreamState.cs | 1 | ||||
| -rw-r--r-- | MediaBrowser.Api/Reports/Data/ReportBuilder.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Api/Reports/Stat/ReportStatBuilder.cs | 25 | ||||
| -rw-r--r-- | MediaBrowser.Api/SimilarItemsHelper.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Api/StartupWizardService.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Api/TvShowsService.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 22 |
14 files changed, 52 insertions, 93 deletions
diff --git a/MediaBrowser.Api/FilterService.cs b/MediaBrowser.Api/FilterService.cs index b3b75359aa..557b1c625b 100644 --- a/MediaBrowser.Api/FilterService.cs +++ b/MediaBrowser.Api/FilterService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Net; using MediaBrowser.Model.Querying; using ServiceStack; using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -104,7 +105,8 @@ namespace MediaBrowser.Api MediaTypes = request.GetMediaTypes(), IncludeItemTypes = request.GetIncludeItemTypes(), Recursive = true, - EnableTotalRecordCount = false + EnableTotalRecordCount = false, + Fields = new List<ItemFields> { ItemFields.Genres, ItemFields.Tags } }; return query; diff --git a/MediaBrowser.Api/GamesService.cs b/MediaBrowser.Api/GamesService.cs index 0953b95e62..a2e065f306 100644 --- a/MediaBrowser.Api/GamesService.cs +++ b/MediaBrowser.Api/GamesService.cs @@ -200,6 +200,8 @@ namespace MediaBrowser.Api (!string.IsNullOrWhiteSpace(request.UserId) ? user.RootFolder : _libraryManager.RootFolder) : _libraryManager.GetItemById(request.Id); + var dtoOptions = GetDtoOptions(request); + var itemsResult = _libraryManager.GetItemList(new InternalItemsQuery(user) { Limit = request.Limit, @@ -207,12 +209,11 @@ namespace MediaBrowser.Api { typeof(Game).Name }, - SimilarTo = item + SimilarTo = item, + Fields = dtoOptions.Fields }).ToList(); - var dtoOptions = GetDtoOptions(request); - var result = new QueryResult<BaseItemDto> { Items = (await _dtoService.GetBaseItemDtos(itemsResult, dtoOptions, user).ConfigureAwait(false)).ToArray(), diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs index 64b6b18d6f..687a21a468 100644 --- a/MediaBrowser.Api/ItemUpdateService.cs +++ b/MediaBrowser.Api/ItemUpdateService.cs @@ -274,10 +274,9 @@ namespace MediaBrowser.Api item.Tags = request.Tags; - var hasTaglines = item as IHasTaglines; - if (hasTaglines != null) + if (request.Taglines != null) { - hasTaglines.Taglines = request.Taglines; + item.Tagline = request.Taglines.FirstOrDefault(); } var hasShortOverview = item as IHasShortOverview; @@ -304,8 +303,6 @@ namespace MediaBrowser.Api item.OfficialRating = string.IsNullOrWhiteSpace(request.OfficialRating) ? null : request.OfficialRating; item.CustomRating = request.CustomRating; - SetProductionLocations(item, request); - item.PreferredMetadataCountryCode = request.PreferredMetadataCountryCode; item.PreferredMetadataLanguage = request.PreferredMetadataLanguage; @@ -413,23 +410,5 @@ namespace MediaBrowser.Api series.AirTime = request.AirTime; } } - - private void SetProductionLocations(BaseItem item, BaseItemDto request) - { - var hasProductionLocations = item as IHasProductionLocations; - - if (hasProductionLocations != null) - { - hasProductionLocations.ProductionLocations = request.ProductionLocations; - } - - var person = item as Person; - if (person != null) - { - person.PlaceOfBirth = request.ProductionLocations == null - ? null - : request.ProductionLocations.FirstOrDefault(); - } - } } } diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj index 96d7874f0f..d7091df566 100644 --- a/MediaBrowser.Api/MediaBrowser.Api.csproj +++ b/MediaBrowser.Api/MediaBrowser.Api.csproj @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -11,9 +11,10 @@ <AssemblyName>MediaBrowser.Api</AssemblyName> <FileAlignment>512</FileAlignment> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion> <ReleaseVersion> </ReleaseVersion> + <TargetFrameworkProfile /> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> diff --git a/MediaBrowser.Api/Movies/MoviesService.cs b/MediaBrowser.Api/Movies/MoviesService.cs index f153a04753..dac4e9b50d 100644 --- a/MediaBrowser.Api/Movies/MoviesService.cs +++ b/MediaBrowser.Api/Movies/MoviesService.cs @@ -156,18 +156,19 @@ namespace MediaBrowser.Api.Movies itemTypes.Add(typeof(LiveTvProgram).Name); } + var dtoOptions = GetDtoOptions(request); + var itemsResult = _libraryManager.GetItemList(new InternalItemsQuery(user) { Limit = request.Limit, IncludeItemTypes = itemTypes.ToArray(), IsMovie = true, SimilarTo = item, - EnableGroupByMetadataKey = true + EnableGroupByMetadataKey = true, + Fields = dtoOptions.Fields }).ToList(); - var dtoOptions = GetDtoOptions(request); - var result = new QueryResult<BaseItemDto> { Items = (await _dtoService.GetBaseItemDtos(itemsResult, dtoOptions, user).ConfigureAwait(false)).ToArray(), @@ -198,7 +199,8 @@ namespace MediaBrowser.Api.Movies Limit = 7, ParentId = parentIdGuid, Recursive = true, - IsPlayed = true + IsPlayed = true, + Fields = dtoOptions.Fields }; var recentlyPlayedMovies = _libraryManager.GetItemList(query).ToList(); @@ -221,7 +223,8 @@ namespace MediaBrowser.Api.Movies ExcludeItemIds = recentlyPlayedMovies.Select(i => i.Id.ToString("N")).ToArray(), EnableGroupByMetadataKey = true, ParentId = parentIdGuid, - Recursive = true + Recursive = true, + Fields = dtoOptions.Fields }).ToList(); @@ -302,7 +305,8 @@ namespace MediaBrowser.Api.Movies PersonTypes = new[] { PersonType.Director }, IncludeItemTypes = itemTypes.ToArray(), IsMovie = true, - EnableGroupByMetadataKey = true + EnableGroupByMetadataKey = true, + Fields = dtoOptions.Fields }).DistinctBy(i => i.GetProviderId(MetadataProviders.Imdb) ?? Guid.NewGuid().ToString("N")) .Take(itemLimit) @@ -339,7 +343,8 @@ namespace MediaBrowser.Api.Movies Limit = itemLimit + 2, IncludeItemTypes = itemTypes.ToArray(), IsMovie = true, - EnableGroupByMetadataKey = true + EnableGroupByMetadataKey = true, + Fields = dtoOptions.Fields }).DistinctBy(i => i.GetProviderId(MetadataProviders.Imdb) ?? Guid.NewGuid().ToString("N")) .Take(itemLimit) @@ -375,7 +380,8 @@ namespace MediaBrowser.Api.Movies IncludeItemTypes = itemTypes.ToArray(), IsMovie = true, SimilarTo = item, - EnableGroupByMetadataKey = true + EnableGroupByMetadataKey = true, + Fields = dtoOptions.Fields }).ToList(); diff --git a/MediaBrowser.Api/PackageService.cs b/MediaBrowser.Api/PackageService.cs index 6d8378aaee..dc7c4c6c18 100644 --- a/MediaBrowser.Api/PackageService.cs +++ b/MediaBrowser.Api/PackageService.cs @@ -46,7 +46,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The name.</value> [ApiMember(Name = "PackageType", Description = "Optional package type filter (System/UserInstalled)", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] - public PackageType? PackageType { get; set; } + public string PackageType { get; set; } [ApiMember(Name = "TargetSystems", Description = "Optional. Filter by target system type. Allows multiple, comma delimited.", IsRequired = false, DataType = "string", ParameterType = "path", Verb = "GET", AllowMultiple = true)] public string TargetSystems { get; set; } @@ -72,7 +72,7 @@ namespace MediaBrowser.Api /// </summary> /// <value>The name.</value> [ApiMember(Name = "PackageType", Description = "Package type filter (System/UserInstalled)", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")] - public PackageType PackageType { get; set; } + public string PackageType { get; set; } } /// <summary> @@ -149,12 +149,12 @@ namespace MediaBrowser.Api { var result = new List<PackageVersionInfo>(); - if (request.PackageType == PackageType.UserInstalled || request.PackageType == PackageType.All) + if (string.Equals(request.PackageType, "UserInstalled", StringComparison.OrdinalIgnoreCase) || string.Equals(request.PackageType, "All", StringComparison.OrdinalIgnoreCase)) { result.AddRange(_installationManager.GetAvailablePluginUpdates(_appHost.ApplicationVersion, false, CancellationToken.None).Result.ToList()); } - else if (request.PackageType == PackageType.System || request.PackageType == PackageType.All) + else if (string.Equals(request.PackageType, "System", StringComparison.OrdinalIgnoreCase) || string.Equals(request.PackageType, "All", StringComparison.OrdinalIgnoreCase)) { var updateCheckResult = _appHost.CheckForApplicationUpdate(CancellationToken.None, new Progress<double>()).Result; diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 056c1d7aef..b5bef1ce9f 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -1857,9 +1857,6 @@ namespace MediaBrowser.Api.Playback state.IsInputVideo = string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase); - var archivable = item as IArchivable; - state.IsInputArchive = archivable != null && archivable.IsArchive; - MediaSourceInfo mediaSource = null; if (string.IsNullOrWhiteSpace(request.LiveStreamId)) { diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs index a59a7fe09e..003599390e 100644 --- a/MediaBrowser.Api/Playback/StreamState.cs +++ b/MediaBrowser.Api/Playback/StreamState.cs @@ -63,7 +63,6 @@ namespace MediaBrowser.Api.Playback get { return Request is VideoStreamRequest; } } public bool IsInputVideo { get; set; } - public bool IsInputArchive { get; set; } public VideoType VideoType { get; set; } public IsoType? IsoType { get; set; } diff --git a/MediaBrowser.Api/Reports/Data/ReportBuilder.cs b/MediaBrowser.Api/Reports/Data/ReportBuilder.cs index e4a5603837..c9c63847c9 100644 --- a/MediaBrowser.Api/Reports/Data/ReportBuilder.cs +++ b/MediaBrowser.Api/Reports/Data/ReportBuilder.cs @@ -517,10 +517,6 @@ namespace MediaBrowser.Api.Reports internalHeader = HeaderMetadata.Album; break; - case HeaderMetadata.Countries: - option.Column = (i, r) => this.GetListAsString(this.GetObject<IHasProductionLocations, List<string>>(i, (x) => x.ProductionLocations)); - break; - case HeaderMetadata.Disc: option.Column = (i, r) => i.ParentIndexNumber; break; diff --git a/MediaBrowser.Api/Reports/Stat/ReportStatBuilder.cs b/MediaBrowser.Api/Reports/Stat/ReportStatBuilder.cs index 0da4857ac1..52b095dee3 100644 --- a/MediaBrowser.Api/Reports/Stat/ReportStatBuilder.cs +++ b/MediaBrowser.Api/Reports/Stat/ReportStatBuilder.cs @@ -36,7 +36,6 @@ namespace MediaBrowser.Api.Reports result = this.GetResultStudios(result, items, topItem); result = this.GetResultPersons(result, items, topItem); result = this.GetResultProductionYears(result, items, topItem); - result = this.GetResulProductionLocations(result, items, topItem); result = this.GetResultCommunityRatings(result, items, topItem); result = this.GetResultParentalRatings(result, items, topItem); @@ -100,30 +99,6 @@ namespace MediaBrowser.Api.Reports } } - /// <summary> Gets resul production locations. </summary> - /// <param name="result"> The result. </param> - /// <param name="items"> The items. </param> - /// <param name="topItem"> The top item. </param> - /// <returns> The resul production locations. </returns> - private ReportStatResult GetResulProductionLocations(ReportStatResult result, BaseItem[] items, int topItem = 5) - { - this.GetGroups(result, GetLocalizedHeader(HeaderMetadata.Countries), topItem, - items.OfType<IHasProductionLocations>() - .Where(x => x.ProductionLocations != null) - .SelectMany(x => x.ProductionLocations) - .GroupBy(x => x) - .OrderByDescending(x => x.Count()) - .Take(topItem) - .Select(x => new ReportStatItem - { - Name = x.Key.ToString(), - Value = x.Count().ToString() - }) - ); - - return result; - } - /// <summary> Gets result community ratings. </summary> /// <param name="result"> The result. </param> /// <param name="items"> The items. </param> diff --git a/MediaBrowser.Api/SimilarItemsHelper.cs b/MediaBrowser.Api/SimilarItemsHelper.cs index 1621c80567..65cd3eaab7 100644 --- a/MediaBrowser.Api/SimilarItemsHelper.cs +++ b/MediaBrowser.Api/SimilarItemsHelper.cs @@ -81,7 +81,8 @@ namespace MediaBrowser.Api var query = new InternalItemsQuery(user) { IncludeItemTypes = includeTypes.Select(i => i.Name).ToArray(), - Recursive = true + Recursive = true, + Fields = dtoOptions.Fields }; // ExcludeArtistIds diff --git a/MediaBrowser.Api/StartupWizardService.cs b/MediaBrowser.Api/StartupWizardService.cs index 5caea2b151..d5158677ca 100644 --- a/MediaBrowser.Api/StartupWizardService.cs +++ b/MediaBrowser.Api/StartupWizardService.cs @@ -117,6 +117,8 @@ namespace MediaBrowser.Api config.EnableFolderView = true; config.SchemaVersion = 109; config.EnableSimpleArtistDetection = true; + config.SkipDeserializationForBasicTypes = true; + config.SkipDeserializationForPrograms = true; } public void Post(UpdateStartupConfiguration request) diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs index a0d69317c6..8c5d1c2f57 100644 --- a/MediaBrowser.Api/TvShowsService.cs +++ b/MediaBrowser.Api/TvShowsService.cs @@ -302,6 +302,8 @@ namespace MediaBrowser.Api (!string.IsNullOrWhiteSpace(request.UserId) ? user.RootFolder : _libraryManager.RootFolder) : _libraryManager.GetItemById(request.Id); + var dtoOptions = GetDtoOptions(request); + var itemsResult = _libraryManager.GetItemList(new InternalItemsQuery(user) { Limit = request.Limit, @@ -309,12 +311,11 @@ namespace MediaBrowser.Api { typeof(Series).Name }, - SimilarTo = item + SimilarTo = item, + Fields = dtoOptions.Fields }).ToList(); - var dtoOptions = GetDtoOptions(request); - var result = new QueryResult<BaseItemDto> { Items = (await _dtoService.GetBaseItemDtos(itemsResult, dtoOptions, user).ConfigureAwait(false)).ToArray(), @@ -333,6 +334,8 @@ namespace MediaBrowser.Api var parentIdGuid = string.IsNullOrWhiteSpace(request.ParentId) ? (Guid?)null : new Guid(request.ParentId); + var options = GetDtoOptions(request); + var itemsResult = _libraryManager.GetItemList(new InternalItemsQuery(user) { IncludeItemTypes = new[] { typeof(Episode).Name }, @@ -342,12 +345,11 @@ namespace MediaBrowser.Api StartIndex = request.StartIndex, Limit = request.Limit, ParentId = parentIdGuid, - Recursive = true + Recursive = true, + Fields = options.Fields }).ToList(); - var options = GetDtoOptions(request); - var returnItems = (await _dtoService.GetBaseItemDtos(itemsResult, options, user).ConfigureAwait(false)).ToArray(); var result = new ItemsResult diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 681624ba22..eabb2ab8fa 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -99,8 +99,10 @@ namespace MediaBrowser.Api.UserLibrary private async Task<ItemsResult> GetItems(GetItems request) { var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null; - - var result = await GetQueryResult(request, user).ConfigureAwait(false); + + var dtoOptions = GetDtoOptions(request); + + var result = await GetQueryResult(request, dtoOptions, user).ConfigureAwait(false); if (result == null) { @@ -112,8 +114,6 @@ namespace MediaBrowser.Api.UserLibrary throw new InvalidOperationException("GetItemsToSerialize result.Items returned null"); } - var dtoOptions = GetDtoOptions(request); - var dtoList = await _dtoService.GetBaseItemDtos(result.Items, dtoOptions, user).ConfigureAwait(false); if (dtoList == null) @@ -131,10 +131,7 @@ namespace MediaBrowser.Api.UserLibrary /// <summary> /// Gets the items to serialize. /// </summary> - /// <param name="request">The request.</param> - /// <param name="user">The user.</param> - /// <returns>IEnumerable{BaseItem}.</returns> - private async Task<QueryResult<BaseItem>> GetQueryResult(GetItems request, User user) + private async Task<QueryResult<BaseItem>> GetQueryResult(GetItems request, DtoOptions dtoOptions, User user) { var item = string.IsNullOrEmpty(request.ParentId) ? user == null ? _libraryManager.RootFolder : user.RootFolder : @@ -159,14 +156,14 @@ namespace MediaBrowser.Api.UserLibrary if (request.Recursive || !string.IsNullOrEmpty(request.Ids) || user == null) { - return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false); + return await folder.GetItems(GetItemsQuery(request, dtoOptions, user)).ConfigureAwait(false); } var userRoot = item as UserRootFolder; if (userRoot == null) { - return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false); + return await folder.GetItems(GetItemsQuery(request, dtoOptions, user)).ConfigureAwait(false); } IEnumerable<BaseItem> items = folder.GetChildren(user, true); @@ -180,7 +177,7 @@ namespace MediaBrowser.Api.UserLibrary }; } - private InternalItemsQuery GetItemsQuery(GetItems request, User user) + private InternalItemsQuery GetItemsQuery(GetItems request, DtoOptions dtoOptions, User user) { var query = new InternalItemsQuery(user) { @@ -241,7 +238,8 @@ namespace MediaBrowser.Api.UserLibrary AiredDuringSeason = request.AiredDuringSeason, AlbumArtistStartsWithOrGreater = request.AlbumArtistStartsWithOrGreater, EnableTotalRecordCount = request.EnableTotalRecordCount, - ExcludeItemIds = request.GetExcludeItemIds() + ExcludeItemIds = request.GetExcludeItemIds(), + Fields = dtoOptions.Fields }; if (!string.IsNullOrWhiteSpace(request.Ids)) |
