aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-02 15:30:29 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-02 15:30:29 -0400
commited34b67f512b07ea2e97f8708811cc4150906f12 (patch)
treeb9abc36cc1a5868cb2f04e9b3d548b212a58aa0e /MediaBrowser.Server.Implementations/Providers
parentab490d7467967c40435828bb4fc6c0066955930c (diff)
fix library scan stopping and restarting itself
Diffstat (limited to 'MediaBrowser.Server.Implementations/Providers')
-rw-r--r--MediaBrowser.Server.Implementations/Providers/ImageSaver.cs29
1 files changed, 24 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs
index 7b5c0df34d..0653bcebd7 100644
--- a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs
+++ b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.IO;
+using System.Collections.Generic;
+using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
@@ -268,7 +269,7 @@ namespace MediaBrowser.Server.Implementations.Providers
{
item.ScreenshotImagePaths[imageIndex.Value] = path;
}
- else
+ else if (!item.ScreenshotImagePaths.Contains(path, StringComparer.OrdinalIgnoreCase))
{
item.ScreenshotImagePaths.Add(path);
}
@@ -282,7 +283,7 @@ namespace MediaBrowser.Server.Implementations.Providers
{
item.BackdropImagePaths[imageIndex.Value] = path;
}
- else
+ else if (!item.BackdropImagePaths.Contains(path, StringComparer.OrdinalIgnoreCase))
{
item.BackdropImagePaths.Add(path);
}
@@ -333,14 +334,14 @@ namespace MediaBrowser.Server.Implementations.Providers
{
throw new ArgumentNullException("imageIndex");
}
- filename = imageIndex.Value == 0 ? "backdrop" : "backdrop" + imageIndex.Value.ToString(UsCulture);
+ filename = GetBackdropSaveFilename(item.BackdropImagePaths, "backdrop", "backdrop", imageIndex.Value);
break;
case ImageType.Screenshot:
if (!imageIndex.HasValue)
{
throw new ArgumentNullException("imageIndex");
}
- filename = imageIndex.Value == 0 ? "screenshot" : "screenshot" + imageIndex.Value.ToString(UsCulture);
+ filename = GetBackdropSaveFilename(item.ScreenshotImagePaths, "screenshot", "screenshot", imageIndex.Value);
break;
default:
filename = type.ToString().ToLower();
@@ -380,6 +381,24 @@ namespace MediaBrowser.Server.Implementations.Providers
return path;
}
+ private string GetBackdropSaveFilename(List<string> images, string zeroIndexFilename, string numberedIndexPrefix, int index)
+ {
+ var filesnames = images.Select(Path.GetFileNameWithoutExtension).ToList();
+
+ if (index == 0)
+ {
+ return zeroIndexFilename;
+ }
+
+ var current = index;
+ while (filesnames.Contains(numberedIndexPrefix + current.ToString(UsCulture), StringComparer.OrdinalIgnoreCase))
+ {
+ current++;
+ }
+
+ return numberedIndexPrefix + current.ToString(UsCulture);
+ }
+
/// <summary>
/// Gets the compatible save paths.
/// </summary>