|
|
@ -41,7 +41,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
_fileSystem = fileSystem;
|
|
|
|
_fileSystem = fileSystem;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool ValidateImages(IHasImages item, IEnumerable<IImageProvider> providers, IDirectoryService directoryService)
|
|
|
|
public bool ValidateImages(IHasMetadata item, IEnumerable<IImageProvider> providers, IDirectoryService directoryService)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var hasChanges = false;
|
|
|
|
var hasChanges = false;
|
|
|
|
|
|
|
|
|
|
|
@ -60,7 +60,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
return hasChanges;
|
|
|
|
return hasChanges;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<RefreshResult> RefreshImages(IHasImages item, LibraryOptions libraryOptions, IEnumerable<IImageProvider> imageProviders, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, CancellationToken cancellationToken)
|
|
|
|
public async Task<RefreshResult> RefreshImages(IHasMetadata item, LibraryOptions libraryOptions, IEnumerable<IImageProvider> imageProviders, ImageRefreshOptions refreshOptions, MetadataOptions savedOptions, CancellationToken cancellationToken)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (refreshOptions.IsReplacingImage(ImageType.Backdrop))
|
|
|
|
if (refreshOptions.IsReplacingImage(ImageType.Backdrop))
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -118,7 +118,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
/// <param name="result">The result.</param>
|
|
|
|
/// <param name="result">The result.</param>
|
|
|
|
/// <param name="cancellationToken">The cancellation token.</param>
|
|
|
|
/// <param name="cancellationToken">The cancellation token.</param>
|
|
|
|
/// <returns>Task.</returns>
|
|
|
|
/// <returns>Task.</returns>
|
|
|
|
private async Task RefreshFromProvider(IHasImages item,
|
|
|
|
private async Task RefreshFromProvider(IHasMetadata item,
|
|
|
|
IDynamicImageProvider provider,
|
|
|
|
IDynamicImageProvider provider,
|
|
|
|
ImageRefreshOptions refreshOptions,
|
|
|
|
ImageRefreshOptions refreshOptions,
|
|
|
|
MetadataOptions savedOptions,
|
|
|
|
MetadataOptions savedOptions,
|
|
|
@ -203,7 +203,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
ImageType.Thumb
|
|
|
|
ImageType.Thumb
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
private bool HasImage(IHasImages item, ImageType type)
|
|
|
|
private bool HasImage(IHasMetadata item, ImageType type)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var image = item.GetImageInfo(type, 0);
|
|
|
|
var image = item.GetImageInfo(type, 0);
|
|
|
|
|
|
|
|
|
|
|
@ -220,7 +220,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
/// <param name="backdropLimit">The backdrop limit.</param>
|
|
|
|
/// <param name="backdropLimit">The backdrop limit.</param>
|
|
|
|
/// <param name="screenshotLimit">The screenshot limit.</param>
|
|
|
|
/// <param name="screenshotLimit">The screenshot limit.</param>
|
|
|
|
/// <returns><c>true</c> if the specified item contains images; otherwise, <c>false</c>.</returns>
|
|
|
|
/// <returns><c>true</c> if the specified item contains images; otherwise, <c>false</c>.</returns>
|
|
|
|
private bool ContainsImages(IHasImages item, List<ImageType> images, MetadataOptions savedOptions, int backdropLimit, int screenshotLimit)
|
|
|
|
private bool ContainsImages(IHasMetadata item, List<ImageType> images, MetadataOptions savedOptions, int backdropLimit, int screenshotLimit)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (_singularImages.Any(i => images.Contains(i) && !HasImage(item, i) && savedOptions.GetLimit(i) > 0))
|
|
|
|
if (_singularImages.Any(i => images.Contains(i) && !HasImage(item, i) && savedOptions.GetLimit(i) > 0))
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -253,7 +253,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
/// <param name="result">The result.</param>
|
|
|
|
/// <param name="result">The result.</param>
|
|
|
|
/// <param name="cancellationToken">The cancellation token.</param>
|
|
|
|
/// <param name="cancellationToken">The cancellation token.</param>
|
|
|
|
/// <returns>Task.</returns>
|
|
|
|
/// <returns>Task.</returns>
|
|
|
|
private async Task RefreshFromProvider(IHasImages item, LibraryOptions libraryOptions,
|
|
|
|
private async Task RefreshFromProvider(IHasMetadata item, LibraryOptions libraryOptions,
|
|
|
|
IRemoteImageProvider provider,
|
|
|
|
IRemoteImageProvider provider,
|
|
|
|
ImageRefreshOptions refreshOptions,
|
|
|
|
ImageRefreshOptions refreshOptions,
|
|
|
|
MetadataOptions savedOptions,
|
|
|
|
MetadataOptions savedOptions,
|
|
|
@ -333,7 +333,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private bool IsEnabled(MetadataOptions options, ImageType type, IHasImages item)
|
|
|
|
private bool IsEnabled(MetadataOptions options, ImageType type, IHasMetadata item)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (type == ImageType.Backdrop)
|
|
|
|
if (type == ImageType.Backdrop)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -360,7 +360,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
return options.IsEnabled(type);
|
|
|
|
return options.IsEnabled(type);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void ClearImages(IHasImages item, ImageType type)
|
|
|
|
private void ClearImages(IHasMetadata item, ImageType type)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var deleted = false;
|
|
|
|
var deleted = false;
|
|
|
|
var deletedImages = new List<ItemImageInfo>();
|
|
|
|
var deletedImages = new List<ItemImageInfo>();
|
|
|
@ -395,7 +395,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool MergeImages(IHasImages item, List<LocalImageInfo> images)
|
|
|
|
public bool MergeImages(IHasMetadata item, List<LocalImageInfo> images)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var changed = false;
|
|
|
|
var changed = false;
|
|
|
|
|
|
|
|
|
|
|
@ -453,7 +453,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
return changed;
|
|
|
|
return changed;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private bool UpdateMultiImages(IHasImages item, List<LocalImageInfo> images, ImageType type)
|
|
|
|
private bool UpdateMultiImages(IHasMetadata item, List<LocalImageInfo> images, ImageType type)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var changed = false;
|
|
|
|
var changed = false;
|
|
|
|
|
|
|
|
|
|
|
@ -471,7 +471,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
return changed;
|
|
|
|
return changed;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private async Task<bool> DownloadImage(IHasImages item, LibraryOptions libraryOptions,
|
|
|
|
private async Task<bool> DownloadImage(IHasMetadata item, LibraryOptions libraryOptions,
|
|
|
|
IRemoteImageProvider provider,
|
|
|
|
IRemoteImageProvider provider,
|
|
|
|
RefreshResult result,
|
|
|
|
RefreshResult result,
|
|
|
|
IEnumerable<RemoteImageInfo> images,
|
|
|
|
IEnumerable<RemoteImageInfo> images,
|
|
|
@ -517,7 +517,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private bool EnableImageStub(IHasImages item, ImageType type, LibraryOptions libraryOptions)
|
|
|
|
private bool EnableImageStub(IHasMetadata item, ImageType type, LibraryOptions libraryOptions)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (item is LiveTvProgram)
|
|
|
|
if (item is LiveTvProgram)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -557,14 +557,14 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SaveImageStub(IHasImages item, ImageType imageType, IEnumerable<string> urls)
|
|
|
|
private void SaveImageStub(IHasMetadata item, ImageType imageType, IEnumerable<string> urls)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var newIndex = item.AllowsMultipleImages(imageType) ? item.GetImages(imageType).Count() : 0;
|
|
|
|
var newIndex = item.AllowsMultipleImages(imageType) ? item.GetImages(imageType).Count() : 0;
|
|
|
|
|
|
|
|
|
|
|
|
SaveImageStub(item, imageType, urls, newIndex);
|
|
|
|
SaveImageStub(item, imageType, urls, newIndex);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SaveImageStub(IHasImages item, ImageType imageType, IEnumerable<string> urls, int newIndex)
|
|
|
|
private void SaveImageStub(IHasMetadata item, ImageType imageType, IEnumerable<string> urls, int newIndex)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var path = string.Join("|", urls.Take(1).ToArray());
|
|
|
|
var path = string.Join("|", urls.Take(1).ToArray());
|
|
|
|
|
|
|
|
|
|
|
@ -576,7 +576,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
}, newIndex);
|
|
|
|
}, newIndex);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private async Task DownloadBackdrops(IHasImages item, LibraryOptions libraryOptions, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable<RemoteImageInfo> images, int minWidth, CancellationToken cancellationToken)
|
|
|
|
private async Task DownloadBackdrops(IHasMetadata item, LibraryOptions libraryOptions, ImageType imageType, int limit, IRemoteImageProvider provider, RefreshResult result, IEnumerable<RemoteImageInfo> images, int minWidth, CancellationToken cancellationToken)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
foreach (var image in images.Where(i => i.Type == imageType))
|
|
|
|
foreach (var image in images.Where(i => i.Type == imageType))
|
|
|
|
{
|
|
|
|
{
|
|
|
|