Exemple #1
0
        private RemoteImageResult GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request)
        {
            var images = _providerManager.GetAvailableRemoteImages(item, CancellationToken.None, request.ProviderName, request.Type).Result;

            var imagesList = images.ToList();

            var result = new RemoteImageResult
            {
                TotalRecordCount = imagesList.Count,
                Providers        = _providerManager.GetImageProviders(item).Select(i => i.Name).ToList()
            };

            if (request.StartIndex.HasValue)
            {
                imagesList = imagesList.Skip(request.StartIndex.Value)
                             .ToList();
            }

            if (request.Limit.HasValue)
            {
                imagesList = imagesList.Take(request.Limit.Value)
                             .ToList();
            }

            result.Images = imagesList;

            return(result);
        }
Exemple #2
0
        public async Task <ActionResult <RemoteImageResult> > GetRemoteImages(
            [FromRoute, Required] Guid itemId,
            [FromQuery] ImageType?type,
            [FromQuery] int?startIndex,
            [FromQuery] int?limit,
            [FromQuery] string?providerName,
            [FromQuery] bool includeAllLanguages = false)
        {
            var item = _libraryManager.GetItemById(itemId);

            if (item == null)
            {
                return(NotFound());
            }

            var images = await _providerManager.GetAvailableRemoteImages(
                item,
                new RemoteImageQuery(providerName ?? string.Empty)
            {
                IncludeAllLanguages      = includeAllLanguages,
                IncludeDisabledProviders = true,
                ImageType = type
            },
                CancellationToken.None)
                         .ConfigureAwait(false);

            var imageArray   = images.ToArray();
            var allProviders = _providerManager.GetRemoteImageProviderInfo(item);

            if (type.HasValue)
            {
                allProviders = allProviders.Where(o => o.SupportedImages.Contains(type.Value));
            }

            var result = new RemoteImageResult
            {
                TotalRecordCount = imageArray.Length,
                Providers        = allProviders.Select(o => o.Name)
                                   .Distinct(StringComparer.OrdinalIgnoreCase)
                                   .ToArray()
            };

            if (startIndex.HasValue)
            {
                imageArray = imageArray.Skip(startIndex.Value).ToArray();
            }

            if (limit.HasValue)
            {
                imageArray = imageArray.Take(limit.Value).ToArray();
            }

            result.Images = imageArray;
            return(result);
        }
Exemple #3
0
        public async Task <object> Get(GetRemoteImages request)
        {
            var item = _libraryManager.GetItemById(request.Id);

            var images = await _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
            {
                ProviderName             = request.ProviderName,
                IncludeAllLanguages      = request.IncludeAllLanguages,
                IncludeDisabledProviders = true,
                ImageType = request.Type
            }, CancellationToken.None).ConfigureAwait(false);

            var imagesList = images.ToArray();

            var allProviders = _providerManager.GetRemoteImageProviderInfo(item);

            if (request.Type.HasValue)
            {
                allProviders = allProviders.Where(i => i.SupportedImages.Contains(request.Type.Value));
            }

            var result = new RemoteImageResult
            {
                TotalRecordCount = imagesList.Length,
                Providers        = allProviders.Select(i => i.Name)
                                   .Distinct(StringComparer.OrdinalIgnoreCase)
                                   .ToArray()
            };

            if (request.StartIndex.HasValue)
            {
                imagesList = imagesList.Skip(request.StartIndex.Value)
                             .ToArray();
            }

            if (request.Limit.HasValue)
            {
                imagesList = imagesList.Take(request.Limit.Value)
                             .ToArray();
            }

            result.Images = imagesList;

            return(result);
        }
        private RemoteImageResult GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request)
        {
            var images = _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
            {
                ProviderName             = request.ProviderName,
                IncludeAllLanguages      = request.IncludeAllLanguages,
                IncludeDisabledProviders = true,
                ImageType = request.Type
            }, CancellationToken.None).Result;

            var imagesList = images.ToList();

            var allProviders = _providerManager.GetRemoteImageProviderInfo(item);

            if (request.Type.HasValue)
            {
                allProviders = allProviders.Where(i => i.SupportedImages.Contains(request.Type.Value));
            }

            var result = new RemoteImageResult
            {
                TotalRecordCount = imagesList.Count,
                Providers        = allProviders.Select(i => i.Name)
                                   .Distinct(StringComparer.OrdinalIgnoreCase)
                                   .ToList()
            };

            if (request.StartIndex.HasValue)
            {
                imagesList = imagesList.Skip(request.StartIndex.Value)
                             .ToList();
            }

            if (request.Limit.HasValue)
            {
                imagesList = imagesList.Take(request.Limit.Value)
                             .ToList();
            }

            result.Images = imagesList;

            return(result);
        }