From eb45e67c81811451cb64cb24dd8b136b4147d6e8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 5 May 2013 00:49:49 -0400 Subject: more on image uploading --- MediaBrowser.Controller/Dto/DtoBuilder.cs | 16 ++++++++ MediaBrowser.Controller/Entities/BaseItem.cs | 43 ++++++++++++++++++---- MediaBrowser.Controller/IO/FileSystem.cs | 2 +- .../Providers/IProviderManager.cs | 9 +++++ 4 files changed, 61 insertions(+), 9 deletions(-) (limited to 'MediaBrowser.Controller') 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(); } + + /// + /// Gets the screenshot image tags. + /// + /// The item. + /// List{Guid}. + private List GetScreenshotImageTags(BaseItem item) + { + if (item.ScreenshotImagePaths == null) + { + return new List(); + } + + 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. /// /// The type. + /// The index. /// Task. - 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 /// /// The providers. void AddMetadataProviders(IEnumerable providers); + + /// + /// Gets the save path. + /// + /// The item. + /// Name of the target file. + /// if set to true [save locally]. + /// System.String. + string GetSavePath(BaseItem item, string targetFileName, bool saveLocally); } } \ No newline at end of file -- cgit v1.2.3