aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Dto/DtoBuilder.cs16
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs43
-rw-r--r--MediaBrowser.Controller/IO/FileSystem.cs2
-rw-r--r--MediaBrowser.Controller/Providers/IProviderManager.cs9
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