diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Dto/DtoBuilder.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 43 | ||||
| -rw-r--r-- | MediaBrowser.Controller/IO/FileSystem.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/IProviderManager.cs | 9 |
4 files changed, 61 insertions, 9 deletions
diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index 39b139f02..803e198bf 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -287,6 +287,7 @@ namespace MediaBrowser.Controller.Dto dto.AspectRatio = item.AspectRatio; dto.BackdropImageTags = GetBackdropImageTags(item); + dto.ScreenshotImageTags = GetScreenshotImageTags(item); if (fields.Contains(ItemFields.Genres)) { @@ -981,5 +982,20 @@ namespace MediaBrowser.Controller.Dto return item.BackdropImagePaths.Select(p => Kernel.Instance.ImageManager.GetImageCacheTag(item, ImageType.Backdrop, p)).ToList(); } + + /// <summary> + /// Gets the screenshot image tags. + /// </summary> + /// <param name="item">The item.</param> + /// <returns>List{Guid}.</returns> + private List<Guid> GetScreenshotImageTags(BaseItem item) + { + if (item.ScreenshotImagePaths == null) + { + return new List<Guid>(); + } + + return item.ScreenshotImagePaths.Select(p => Kernel.Instance.ImageManager.GetImageCacheTag(item, ImageType.Screenshot, p)).ToList(); + } } } diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 48bfd8075..a4cbd1b07 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1475,22 +1475,49 @@ namespace MediaBrowser.Controller.Entities /// Deletes the image. /// </summary> /// <param name="type">The type.</param> + /// <param name="index">The index.</param> /// <returns>Task.</returns> - public async Task DeleteImage(ImageType type) + public Task DeleteImage(ImageType type, int? index) { - if (!HasImage(type)) + if (type == ImageType.Backdrop) { - return; + if (!index.HasValue) + { + throw new ArgumentException("Please specify a backdrop image index to delete."); + } + + var file = BackdropImagePaths[index.Value]; + + BackdropImagePaths.Remove(file); + + // Delete the source file + File.Delete(file); } + else if (type == ImageType.Screenshot) + { + if (!index.HasValue) + { + throw new ArgumentException("Please specify a screenshot image index to delete."); + } + + var file = ScreenshotImagePaths[index.Value]; - // Delete the source file - File.Delete(GetImage(type)); + ScreenshotImagePaths.Remove(file); + + // Delete the source file + File.Delete(file); + } + else + { + // Delete the source file + File.Delete(GetImage(type)); - // Remove it from the item - SetImage(type, null); + // Remove it from the item + SetImage(type, null); + } // Refresh metadata - await RefreshMetadata(CancellationToken.None).ConfigureAwait(false); + return RefreshMetadata(CancellationToken.None); } } } diff --git a/MediaBrowser.Controller/IO/FileSystem.cs b/MediaBrowser.Controller/IO/FileSystem.cs index cbe561fdf..e5f80533a 100644 --- a/MediaBrowser.Controller/IO/FileSystem.cs +++ b/MediaBrowser.Controller/IO/FileSystem.cs @@ -55,7 +55,7 @@ namespace MediaBrowser.Controller.IO try { - return info.LastAccessTimeUtc; + return info.LastWriteTimeUtc; } catch (Exception ex) { diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index fa10c8585..da46c0bce 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -47,5 +47,14 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <param name="providers">The providers.</param> void AddMetadataProviders(IEnumerable<BaseMetadataProvider> providers); + + /// <summary> + /// Gets the save path. + /// </summary> + /// <param name="item">The item.</param> + /// <param name="targetFileName">Name of the target file.</param> + /// <param name="saveLocally">if set to <c>true</c> [save locally].</param> + /// <returns>System.String.</returns> + string GetSavePath(BaseItem item, string targetFileName, bool saveLocally); } }
\ No newline at end of file |
