From abb7bb4fd2b244d0ad813695af7d75ea3bfa80d3 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 10 Nov 2016 16:06:00 -0500 Subject: [PATCH] resolve mono build failure --- MediaBrowser.Api/Images/ImageByNameService.cs | 5 +- .../Playback/Hls/DynamicHlsService.cs | 10 +-- .../Playback/Hls/HlsSegmentService.cs | 4 +- MediaBrowser.Api/Social/SharingService.cs | 4 +- .../Entities/UserViewBuilder.cs | 74 ++++++++++++++----- .../MediaBrowser.Server.Mono.csproj | 6 +- .../ApplicationHost.cs | 2 +- Nuget/MediaBrowser.Common.nuspec | 2 +- Nuget/MediaBrowser.Server.Core.nuspec | 4 +- 9 files changed, 73 insertions(+), 38 deletions(-) diff --git a/MediaBrowser.Api/Images/ImageByNameService.cs b/MediaBrowser.Api/Images/ImageByNameService.cs index 8fbc56ce31..189e0f84b8 100644 --- a/MediaBrowser.Api/Images/ImageByNameService.cs +++ b/MediaBrowser.Api/Images/ImageByNameService.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Threading.Tasks; using MediaBrowser.Common.IO; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; @@ -179,7 +180,7 @@ namespace MediaBrowser.Api.Images /// /// The request. /// System.Object. - public object Get(GetGeneralImage request) + public Task Get(GetGeneralImage request) { var filename = string.Equals(request.Type, "primary", StringComparison.OrdinalIgnoreCase) ? "folder" @@ -238,7 +239,7 @@ namespace MediaBrowser.Api.Images /// /// The request. /// System.Object. - public object Get(GetMediaInfoImage request) + public Task Get(GetMediaInfoImage request) { var themeFolder = Path.Combine(_appPaths.MediaInfoImagesPath, request.Theme); diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs index 471bfe6045..ab2cab2241 100644 --- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs @@ -421,7 +421,7 @@ namespace MediaBrowser.Api.Playback.Hls // If all transcoding has completed, just return immediately if (transcodingJob != null && transcodingJob.HasExited && FileSystem.FileExists(segmentPath)) { - return GetSegmentResult(state, segmentPath, segmentIndex, transcodingJob); + return await GetSegmentResult(state, segmentPath, segmentIndex, transcodingJob).ConfigureAwait(false); } var segmentFilename = Path.GetFileName(segmentPath); @@ -441,7 +441,7 @@ namespace MediaBrowser.Api.Playback.Hls { if (FileSystem.FileExists(segmentPath)) { - return GetSegmentResult(state, segmentPath, segmentIndex, transcodingJob); + return await GetSegmentResult(state, segmentPath, segmentIndex, transcodingJob).ConfigureAwait(false); } //break; } @@ -457,10 +457,10 @@ namespace MediaBrowser.Api.Playback.Hls } cancellationToken.ThrowIfCancellationRequested(); - return GetSegmentResult(state, segmentPath, segmentIndex, transcodingJob); + return await GetSegmentResult(state, segmentPath, segmentIndex, transcodingJob).ConfigureAwait(false); } - private object GetSegmentResult(StreamState state, string segmentPath, int index, TranscodingJob transcodingJob) + private Task GetSegmentResult(StreamState state, string segmentPath, int index, TranscodingJob transcodingJob) { var segmentEndingPositionTicks = GetEndPositionTicks(state, index); @@ -476,7 +476,7 @@ namespace MediaBrowser.Api.Playback.Hls ApiEntryPoint.Instance.OnTranscodeEndRequest(transcodingJob); } } - }).Result; + }); } private async Task GetMasterPlaylistInternal(StreamRequest request, string method) diff --git a/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs b/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs index 65c1af79e3..f3683c6cba 100644 --- a/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs +++ b/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs @@ -124,13 +124,13 @@ namespace MediaBrowser.Api.Playback.Hls /// /// The request. /// System.Object. - public object Get(GetHlsAudioSegmentLegacy request) + public Task Get(GetHlsAudioSegmentLegacy request) { // TODO: Deprecate with new iOS app var file = request.SegmentId + Path.GetExtension(Request.PathInfo); file = Path.Combine(_appPaths.TranscodingTempPath, file); - return ResultFactory.GetStaticFileResult(Request, file, FileShareMode.ReadWrite).Result; + return ResultFactory.GetStaticFileResult(Request, file, FileShareMode.ReadWrite); } private Task GetFileResult(string path, string playlistPath) diff --git a/MediaBrowser.Api/Social/SharingService.cs b/MediaBrowser.Api/Social/SharingService.cs index 86fe0a136c..37941bd4a3 100644 --- a/MediaBrowser.Api/Social/SharingService.cs +++ b/MediaBrowser.Api/Social/SharingService.cs @@ -146,14 +146,14 @@ namespace MediaBrowser.Api.Social { if (image.IsLocalFile) { - return _resultFactory.GetStaticFileResult(Request, image.Path); + return await _resultFactory.GetStaticFileResult(Request, image.Path).ConfigureAwait(false); } try { // Don't fail the request over this var updatedImage = await _libraryManager.ConvertImageToLocal(item, image, 0).ConfigureAwait(false); - return _resultFactory.GetStaticFileResult(Request, updatedImage.Path); + return await _resultFactory.GetStaticFileResult(Request, updatedImage.Path).ConfigureAwait(false); } catch { diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index 9debdf9bae..3820de83d1 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -566,18 +566,35 @@ namespace MediaBrowser.Controller.Entities private async Task> GetMovieGenres(Folder parent, User user, InternalItemsQuery query) { - var result = _libraryManager.GetGenres(new InternalItemsQuery(user) + var tasks = parent.QueryRecursive(new InternalItemsQuery(user) { - AncestorIds = new[] { parent.Id.ToString("N") }, - StartIndex = query.StartIndex, - Limit = query.Limit - }); + IncludeItemTypes = new[] { typeof(Movie).Name }, + Recursive = true, + EnableTotalRecordCount = false - return new QueryResult - { - TotalRecordCount = result.TotalRecordCount, - Items = result.Items.Select(i => i.Item1).ToArray() - }; + }).Items + .SelectMany(i => i.Genres) + .DistinctNames() + .Select(i => + { + try + { + return _libraryManager.GetGenre(i); + } + catch + { + // Full exception logged at lower levels + _logger.Error("Error getting genre"); + return null; + } + + }) + .Where(i => i != null) + .Select(i => GetUserView(i.Name, SpecialFolder.MovieGenre, i.SortName, parent)); + + var genres = await Task.WhenAll(tasks).ConfigureAwait(false); + + return GetResult(genres, parent, query); } private async Task> GetMovieGenreItems(Folder queryParent, Folder displayParent, User user, InternalItemsQuery query) @@ -692,18 +709,35 @@ namespace MediaBrowser.Controller.Entities private async Task> GetTvGenres(Folder parent, User user, InternalItemsQuery query) { - var result = _libraryManager.GetGenres(new InternalItemsQuery(user) + var tasks = parent.QueryRecursive(new InternalItemsQuery(user) { - AncestorIds = new[] { parent.Id.ToString("N") }, - StartIndex = query.StartIndex, - Limit = query.Limit - }); + IncludeItemTypes = new[] { typeof(Series).Name }, + Recursive = true, + EnableTotalRecordCount = false - return new QueryResult - { - TotalRecordCount = result.TotalRecordCount, - Items = result.Items.Select(i => i.Item1).ToArray() - }; + }).Items + .SelectMany(i => i.Genres) + .DistinctNames() + .Select(i => + { + try + { + return _libraryManager.GetGenre(i); + } + catch + { + // Full exception logged at lower levels + _logger.Error("Error getting genre"); + return null; + } + + }) + .Where(i => i != null) + .Select(i => GetUserView(i.Name, SpecialFolder.TvGenre, i.SortName, parent)); + + var genres = await Task.WhenAll(tasks).ConfigureAwait(false); + + return GetResult(genres, parent, query); } private QueryResult GetTvGenreItems(Folder queryParent, Folder displayParent, User user, InternalItemsQuery query) diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj index dcc409d3a1..c7de9a62b6 100644 --- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj +++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj @@ -24,7 +24,7 @@ 4 x86 true - true + false full @@ -35,7 +35,7 @@ AnyCPU true false - true + false false @@ -55,7 +55,7 @@ false - true + false diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index e8aa4de3e6..c155a968e9 100644 --- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs +++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs @@ -1037,7 +1037,7 @@ namespace MediaBrowser.Server.Startup.Common // Generate self-signed cert var certHost = GetHostnameFromExternalDns(ServerConfigurationManager.Configuration.WanDdns); - var certPath = Path.Combine(ServerConfigurationManager.ApplicationPaths.ProgramDataPath, "ssl", "cert_" + certHost.GetMD5().ToString("N") + ".pfx"); + var certPath = Path.Combine(ServerConfigurationManager.ApplicationPaths.ProgramDataPath, "ssl", "cert_" + (certHost + "1").GetMD5().ToString("N") + ".pfx"); if (generateCertificate) { diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec index 7b949fcb14..464a29eb23 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Common - 3.0.688 + 3.0.689 Emby.Common Emby Team ebr,Luke,scottisafool diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index 96986de9ba..96e9a697a2 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ MediaBrowser.Server.Core - 3.0.688 + 3.0.689 Emby.Server.Core Emby Team ebr,Luke,scottisafool @@ -12,7 +12,7 @@ Contains core components required to build plugins for Emby Server. Copyright © Emby 2013 - +