diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-11-10 16:06:00 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-11-10 16:06:00 -0500 |
| commit | abb7bb4fd2b244d0ad813695af7d75ea3bfa80d3 (patch) | |
| tree | 1e203f9b6871bd0c279dc1ba101aee60ee2c99fb | |
| parent | 9b891f2c9a4f37e2a914dc8fc5faba4e919e2b8f (diff) | |
resolve mono build failure
| -rw-r--r-- | MediaBrowser.Api/Images/ImageByNameService.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Api/Social/SharingService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserViewBuilder.cs | 74 | ||||
| -rw-r--r-- | MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj | 6 | ||||
| -rw-r--r-- | MediaBrowser.Server.Startup.Common/ApplicationHost.cs | 2 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Common.nuspec | 2 | ||||
| -rw-r--r-- | 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 8fbc56ce3..189e0f84b 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 /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> - public object Get(GetGeneralImage request) + public Task<object> Get(GetGeneralImage request) { var filename = string.Equals(request.Type, "primary", StringComparison.OrdinalIgnoreCase) ? "folder" @@ -238,7 +239,7 @@ namespace MediaBrowser.Api.Images /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> - public object Get(GetMediaInfoImage request) + public Task<object> 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 471bfe604..ab2cab224 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<object> 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<object> GetMasterPlaylistInternal(StreamRequest request, string method) diff --git a/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs b/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs index 65c1af79e..f3683c6cb 100644 --- a/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs +++ b/MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs @@ -124,13 +124,13 @@ namespace MediaBrowser.Api.Playback.Hls /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> - public object Get(GetHlsAudioSegmentLegacy request) + public Task<object> 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<object> GetFileResult(string path, string playlistPath) diff --git a/MediaBrowser.Api/Social/SharingService.cs b/MediaBrowser.Api/Social/SharingService.cs index 86fe0a136..37941bd4a 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 9debdf9ba..3820de83d 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -566,18 +566,35 @@ namespace MediaBrowser.Controller.Entities private async Task<QueryResult<BaseItem>> 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<BaseItem> - { - 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<QueryResult<BaseItem>> GetMovieGenreItems(Folder queryParent, Folder displayParent, User user, InternalItemsQuery query) @@ -692,18 +709,35 @@ namespace MediaBrowser.Controller.Entities private async Task<QueryResult<BaseItem>> 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<BaseItem> - { - 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<BaseItem> 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 dcc409d3a..c7de9a62b 100644 --- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj +++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj @@ -24,7 +24,7 @@ <WarningLevel>4</WarningLevel> <PlatformTarget>x86</PlatformTarget> <Externalconsole>true</Externalconsole> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <DebugType>full</DebugType> @@ -35,7 +35,7 @@ <PlatformTarget>AnyCPU</PlatformTarget> <Externalconsole>true</Externalconsole> <Prefer32Bit>false</Prefer32Bit> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <Optimize>false</Optimize> @@ -55,7 +55,7 @@ </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release Mono|x86'"> <Prefer32Bit>false</Prefer32Bit> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> </PropertyGroup> <ItemGroup> <Reference Include="Emby.Common.Implementations"> diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index e8aa4de3e..c155a968e 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 7b949fcb1..464a29eb2 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Common</id> - <version>3.0.688</version> + <version>3.0.689</version> <title>Emby.Common</title> <authors>Emby Team</authors> <owners>ebr,Luke,scottisafool</owners> diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index 96986de9b..96e9a697a 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>MediaBrowser.Server.Core</id> - <version>3.0.688</version> + <version>3.0.689</version> <title>Emby.Server.Core</title> <authors>Emby Team</authors> <owners>ebr,Luke,scottisafool</owners> @@ -12,7 +12,7 @@ <description>Contains core components required to build plugins for Emby Server.</description> <copyright>Copyright © Emby 2013</copyright> <dependencies> - <dependency id="MediaBrowser.Common" version="3.0.688" /> + <dependency id="MediaBrowser.Common" version="3.0.689" /> </dependencies> </metadata> <files> |
