From 5aa748058e65eb18e1981b111715efd73922f737 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Fri, 14 Jan 2022 22:54:29 +0300 Subject: Fix duplication of local trailers --- Jellyfin.Api/Controllers/UserLibraryController.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'Jellyfin.Api/Controllers/UserLibraryController.cs') diff --git a/Jellyfin.Api/Controllers/UserLibraryController.cs b/Jellyfin.Api/Controllers/UserLibraryController.cs index 8b99170d9..fa07d8085 100644 --- a/Jellyfin.Api/Controllers/UserLibraryController.cs +++ b/Jellyfin.Api/Controllers/UserLibraryController.cs @@ -206,21 +206,19 @@ namespace Jellyfin.Api.Controllers : _libraryManager.GetItemById(itemId); var dtoOptions = new DtoOptions().AddClientFields(Request); - var dtosExtras = item.GetExtras(new[] { ExtraType.Trailer }) - .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item)) - .ToArray(); if (item is IHasTrailers hasTrailers) { var trailers = hasTrailers.LocalTrailers; var dtosTrailers = _dtoService.GetBaseItemDtos(trailers, dtoOptions, user, item); - var allTrailers = new BaseItemDto[dtosExtras.Length + dtosTrailers.Count]; - dtosExtras.CopyTo(allTrailers, 0); - dtosTrailers.CopyTo(allTrailers, dtosExtras.Length); + var allTrailers = new BaseItemDto[dtosTrailers.Count]; + dtosTrailers.CopyTo(allTrailers, 0); return allTrailers; } - return dtosExtras; + return item.GetExtras(new[] { ExtraType.Trailer }) + .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item)) + .ToArray(); } /// -- cgit v1.2.3 From 60fe77c089217211f3632e3a0528df75132d6bac Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com> Date: Sun, 16 Jan 2022 13:34:52 +0300 Subject: Remove unnecessary array allocation Co-authored-by: Claus Vium --- Jellyfin.Api/Controllers/UserLibraryController.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'Jellyfin.Api/Controllers/UserLibraryController.cs') diff --git a/Jellyfin.Api/Controllers/UserLibraryController.cs b/Jellyfin.Api/Controllers/UserLibraryController.cs index fa07d8085..90cb4a74a 100644 --- a/Jellyfin.Api/Controllers/UserLibraryController.cs +++ b/Jellyfin.Api/Controllers/UserLibraryController.cs @@ -210,15 +210,12 @@ namespace Jellyfin.Api.Controllers if (item is IHasTrailers hasTrailers) { var trailers = hasTrailers.LocalTrailers; - var dtosTrailers = _dtoService.GetBaseItemDtos(trailers, dtoOptions, user, item); - var allTrailers = new BaseItemDto[dtosTrailers.Count]; - dtosTrailers.CopyTo(allTrailers, 0); - return allTrailers; + return Ok(_dtoService.GetBaseItemDtos(trailers, dtoOptions, user, item)); } - return item.GetExtras(new[] { ExtraType.Trailer }) - .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item)) - .ToArray(); + return Ok(item.GetExtras() + .Where(e => e.ExtraType == ExtraType.Trailer) + .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item))); } /// -- cgit v1.2.3