From 080b02cc4c9879d92de725a763527fb7285cb181 Mon Sep 17 00:00:00 2001
From: Joe Rogers <1337joe@gmail.com>
Date: Sun, 31 Oct 2021 02:40:15 +0200
Subject: Add comments, minor cleanup, add tests
---
.../Manager/ItemImageProvider.cs | 52 +++++++++++++++++-----
1 file changed, 40 insertions(+), 12 deletions(-)
(limited to 'MediaBrowser.Providers/Manager')
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
index 39372acb94..49b7a5d6b8 100644
--- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs
+++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
@@ -1,7 +1,5 @@
#nullable disable
-#pragma warning disable CA1002, CS1591
-
using System;
using System.Collections.Generic;
using System.IO;
@@ -25,6 +23,9 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Manager
{
+ ///
+ /// Utilities for managing images attached to items.
+ ///
public class ItemImageProvider
{
private readonly ILogger _logger;
@@ -47,6 +48,12 @@ namespace MediaBrowser.Providers.Manager
ImageType.Thumb
};
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The logger.
+ /// The provider manager for interacting with provider image references.
+ /// The filesystem.
public ItemImageProvider(ILogger logger, IProviderManager providerManager, IFileSystem fileSystem)
{
_logger = logger;
@@ -54,6 +61,13 @@ namespace MediaBrowser.Providers.Manager
_fileSystem = fileSystem;
}
+ ///
+ /// Verifies existing images have valid paths and adds any new local images provided.
+ ///
+ /// The to validate images for.
+ /// The providers to use, must include (s) for local scanning.
+ /// The directory service for s to use.
+ /// true if changes were made to the item; otherwise false.
public bool ValidateImages(BaseItem item, IEnumerable providers, IDirectoryService directoryService)
{
var hasChanges = false;
@@ -73,6 +87,15 @@ namespace MediaBrowser.Providers.Manager
return hasChanges;
}
+ ///
+ /// Refreshes from the providers according to the given options.
+ ///
+ /// The to gather images for.
+ /// The library options.
+ /// The providers to query for images.
+ /// The refresh options.
+ /// The cancellation token.
+ /// The refresh result.
public async Task RefreshImages(
BaseItem item,
LibraryOptions libraryOptions,
@@ -118,7 +141,7 @@ namespace MediaBrowser.Providers.Manager
}
///
- /// Refreshes from provider.
+ /// Refreshes from a dynamic provider.
///
private async Task RefreshFromProvider(
BaseItem item,
@@ -234,7 +257,7 @@ namespace MediaBrowser.Providers.Manager
}
///
- /// Refreshes from provider.
+ /// Refreshes from a remote provider.
///
/// The item.
/// The provider.
@@ -305,12 +328,12 @@ namespace MediaBrowser.Providers.Manager
}
minWidth = savedOptions.GetMinWidth(ImageType.Backdrop);
- await DownloadBackdrops(item, ImageType.Backdrop, backdropLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
+ await DownloadMultiImages(item, ImageType.Backdrop, backdropLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
- if (item is IHasScreenshots hasScreenshots)
+ if (item is IHasScreenshots)
{
minWidth = savedOptions.GetMinWidth(ImageType.Screenshot);
- await DownloadBackdrops(item, ImageType.Screenshot, screenshotLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
+ await DownloadMultiImages(item, ImageType.Screenshot, screenshotLimit, provider, result, list, minWidth, cancellationToken).ConfigureAwait(false);
}
}
catch (OperationCanceledException)
@@ -360,6 +383,12 @@ namespace MediaBrowser.Providers.Manager
}
}
+ ///
+ /// Merges a list of images into the provided item, validating existing images and replacing them or adding new images as necessary.
+ ///
+ /// The to modify.
+ /// The new images to place in item.
+ /// true if changes were made to the item; otherwise false.
public bool MergeImages(BaseItem item, IReadOnlyList images)
{
var changed = false;
@@ -417,8 +446,7 @@ namespace MediaBrowser.Providers.Manager
changed = true;
}
- var hasScreenshots = item as IHasScreenshots;
- if (hasScreenshots != null)
+ if (item is IHasScreenshots)
{
if (UpdateMultiImages(item, images, ImageType.Screenshot))
{
@@ -536,7 +564,7 @@ namespace MediaBrowser.Providers.Manager
return true;
}
- if (item is IItemByName && item is not MusicArtist)
+ if (item is IItemByName and not MusicArtist)
{
var hasDualAccess = item as IHasDualAccess;
if (hasDualAccess == null || hasDualAccess.IsAccessedByName)
@@ -569,7 +597,7 @@ namespace MediaBrowser.Providers.Manager
newIndex);
}
- private async Task DownloadBackdrops(BaseItem item, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable images, int minWidth, CancellationToken cancellationToken)
+ private async Task DownloadMultiImages(BaseItem item, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable images, int minWidth, CancellationToken cancellationToken)
{
foreach (var image in images.Where(i => i.Type == imageType))
{
@@ -609,7 +637,7 @@ namespace MediaBrowser.Providers.Manager
break;
}
- // If there's already an image of the same size, skip it
+ // If there's already an image of the same file size, skip it
if (response.Content.Headers.ContentLength.HasValue)
{
try
--
cgit v1.2.3