diff options
Diffstat (limited to 'Emby.Server.Implementations/Dto/DtoService.cs')
| -rw-r--r-- | Emby.Server.Implementations/Dto/DtoService.cs | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs index 9f08c6462..0a316fcf1 100644 --- a/Emby.Server.Implementations/Dto/DtoService.cs +++ b/Emby.Server.Implementations/Dto/DtoService.cs @@ -116,9 +116,11 @@ namespace Emby.Server.Implementations.Dto var channelTuples = new List<Tuple<BaseItemDto, LiveTvChannel>>(); var index = 0; + var allCollectionFolders = _libraryManager.GetUserRootFolder().Children.OfType<Folder>().ToList(); + foreach (var item in items) { - var dto = GetBaseItemDtoInternal(item, options, user, owner); + var dto = GetBaseItemDtoInternal(item, options, allCollectionFolders, user, owner); var tvChannel = item as LiveTvChannel; if (tvChannel != null) @@ -173,7 +175,8 @@ namespace Emby.Server.Implementations.Dto { var syncDictionary = GetSyncedItemProgress(options); - var dto = GetBaseItemDtoInternal(item, options, user, owner); + var allCollectionFolders = _libraryManager.GetUserRootFolder().Children.OfType<Folder>().ToList(); + var dto = GetBaseItemDtoInternal(item, options, allCollectionFolders, user, owner); var tvChannel = item as LiveTvChannel; if (tvChannel != null) { @@ -303,7 +306,7 @@ namespace Emby.Server.Implementations.Dto } } - private BaseItemDto GetBaseItemDtoInternal(BaseItem item, DtoOptions options, User user = null, BaseItem owner = null) + private BaseItemDto GetBaseItemDtoInternal(BaseItem item, DtoOptions options, List<Folder> allCollectionFolders, User user = null, BaseItem owner = null) { var fields = options.Fields; @@ -472,7 +475,8 @@ namespace Emby.Server.Implementations.Dto public BaseItemDto GetItemByNameDto(BaseItem item, DtoOptions options, List<BaseItem> taggedItems, Dictionary<string, SyncedItemProgress> syncProgress, User user = null) { - var dto = GetBaseItemDtoInternal(item, options, user); + var allCollectionFolders = _libraryManager.GetUserRootFolder().Children.OfType<Folder>().ToList(); + var dto = GetBaseItemDtoInternal(item, options, allCollectionFolders, user); if (taggedItems != null && options.Fields.Contains(ItemFields.ItemCounts)) { @@ -1604,12 +1608,12 @@ namespace Emby.Server.Implementations.Dto /// <param name="dto">The dto.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> - public void AttachPrimaryImageAspectRatio(IItemDto dto, IHasMetadata item) + public void AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem item) { dto.PrimaryImageAspectRatio = GetPrimaryImageAspectRatio(item); } - public double? GetPrimaryImageAspectRatio(IHasMetadata item) + public double? GetPrimaryImageAspectRatio(BaseItem item) { var imageInfo = item.GetImageInfo(ImageType.Primary, 0); @@ -1642,16 +1646,18 @@ namespace Emby.Server.Implementations.Dto return null; } - return null; - _logger.Info("Getting image size for item type {0}", item.GetType().Name); - try { - size = _imageProcessor.GetImageSize(imageInfo); + size = _imageProcessor.GetImageSize(item, imageInfo); + + if (size.Width <= 0 || size.Height <= 0) + { + return null; + } } - catch + catch (Exception ex) { - //_logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); + //_logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, imageInfo.Path); return null; } } |
